Stap 2: De broncode
#include < stdio.h >#include < conio.h >
#include < stdlib.h >
#include < windows.h >
int bestuur [10] = {2,2,2,2,2,2,2,2,2,2};
int zetten = 1, vlag = 0;
int speler, comp;
nietig menu();
VOID go (int n);
nietig start_game();
nietig check_draw();
nietig draw_board();
nietig player_first();
VOID put_X_O (char ch, int pos);
COORD coord = {0,0}; Dit is globale variabele
midden van as is ingesteld op de hoogste linker cornor van het scherm
VOID gotoxy (int x, int y)
{
coord. X = x;
coord. Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);
}
int main()
{
System("CLS");
menu();
getch();
}
VOID menu()
{
int de keuze;
System("CLS");
printf("\n---menu---");
printf ("\n1: spelen met X");
printf ("\n2: spelen met O");
printf ("\n3: afslag");
printf ("\nEnter uw keuze: >");
scanf ("%d", & keuze);
Draai = 1;
schakelaar (keuze)
{
Case 1:
speler = 1;
Comp = 0;
player_first();
breken;
Case 2:
speler = 0;
Comp = 1;
start_game();
breken;
Case 3:
Exit(1);
standaard:
menu();
}
}
int make2()
{
Als (boord [5] == 2)
terug 5;
Als (boord [2] == 2)
terug 2;
Als (boord [4] == 2)
terug 4;
Als (boord [6] == 2)
terug 6;
Als (boord [8] == 2)
terug 8;
keren 0;
}
int make4()
{
Als (bestuur [1] == 2).
return 1;
Als (boord [3] == 2)
terug 3;
Als (boord [7] == 2)
terug 7;
Als (boord [9] == 2)
retourneren van 9;
keren 0;
}
int posswin (int p)
{
p 1 dan X p == == 0 dan O
int i;
int check_val, pos;
if(p == 1)
check_val = 18;
anders
check_val = 50;
Ik = 1;
terwijl (ik < = 9) //row selectievakje
{
Als (boord [i] * [i + 1] aan boord * board [i + 2] == check_val)
{
Als (boord [i] == 2).
terug i;
Als (board [i + 1] == 2).
Return ik + 1;
Als (board [i + 2] == 2)
Return ik + 2;
}
Ik += 3;
}
Ik = 1;
terwijl (ik < = 3) //column selectievakje
{
Als (bestuur [i] * [i + 3] aan boord * board [i + 6] == check_val)
{
Als (boord [i] == 2).
terug i;
Als (board [i + 3] == 2).
Return ik + 3;
Als (board [i + 6] == 2).
Return ik + 6;
}
i ++;
}
Als (bestuur [1] * [5] aan boord * boord [9] == check_val)
{
Als (bestuur [1] == 2).
return 1;
Als (boord [5] == 2)
terug 5;
Als (boord [9] == 2)
retourneren van 9;
}
Als (boord [3] * [5] aan boord * boord [7] == check_val)
{
Als (boord [3] == 2)
terug 3;
Als (boord [5] == 2)
terug 5;
Als (boord [7] == 2)
terug 7;
}
keren 0;
}
VOID go (int n)
{
if(Turn % 2)
bestuur [n] = 3;
anders
bestuur [n] = 5;
beurt ++;
}
VOID player_first()
{
int pos;
check_draw();
draw_board();
gotoxy(30,18);
printf ("Your Turn: >");
scanf ("%d", & pos);
Als (boord [pos]! = 2)
player_first();
if(POS == posswin(Player))
{
Go(POS);
draw_board();
gotoxy(30,20);
TextColor(128+Red);
printf ("speler wint");
getch();
Exit(0);
}
Go(POS);
draw_board();
start_game();
}
VOID start_game()
{
p 1 dan X p == == 0 dan O
if(posswin(comp))
{
Go(posswin(comp));
vlag = 1;
}
anders
if(posswin(Player))
Go(posswin(Player));
anders
if(make2())
Go(make2());
anders
Go(make4());
draw_board();
if(Flag)
{
gotoxy(30,20);
TextColor(128+Red);
printf ("Computer wint");
getch();
}
anders
player_first();
}
VOID check_draw()
{
if(Turn > 9)
{
gotoxy(30,20);
TextColor(128+Red);
printf ("Game Draw");
getch();
Exit(0);
}
}
VOID draw_board()
{
int j;
voor (j = 9; j < 17; j ++)
{
gotoxy(35,j);
printf("| |");
}
gotoxy(28,11);
printf("-----------------------");
gotoxy(28,14);
printf("-----------------------");
voor (j = 1; j < 10; j ++)
{
Als (bestuur [j] == 3)
put_X_O('X',j);
anders
Als (bestuur [j] == 5)
put_X_O('O',j);
}
}
VOID put_X_O (char ch, int pos)
{
int m;
int x = 31, y = 10;
m = pos;
if(m > 3)
{
terwijl (m > 3)
{
y += 3;
m-= 3;
}
}
Als (pos % 3 == 0)
x += 16;
anders
{
POS % = 3;
POS--;
while(POS)
{
x+= 8;
POS--;
}
}
gotoxy(x,y);
printf("%c",CH);
}