Sunday, 10 December 2017

Tic Tac Toe Game In C

#include <stdio.h>
#include <stdlib.h>

char matrix[3][3]; /* the tic tac toe matrix */

char check(void);
void init_matrix(void);
void get_player_move(void);
void get_computer_move(void);
void disp_matrix(void);

int main(void)


{
char done;

printf("This is the game of Tic Tac Toe.\n");
printf("You will be playing against the computer.\n");

done = ' ';


init_matrix();
do {


disp_matrix();
get_player_move();
done = check(); /* see if winner */
if(done!= ' ') break; /* winner!*/


get_computer_move();
done = check(); /* see if winner */
} while(done== ' ');

if(done=='X') printf("You won!\n");
else printf("I won!!!!\n");
disp_matrix(); /* show final positions */

return 0;


}
/* Initialize the matrix. */
void init_matrix(void)


{
int i, j;

for(i=0; i<3; i++)
for(j=0; j<3; j++) matrix[i][j] = ' ';


}
/* Get a player's move. */
void get_player_move(void)


{
int x, y;

printf("Enter X,Y coordinates for your move: ");
scanf("%d%*c%d", &x, &y);



x--; y--;
if(matrix[x][y]!= ' '){
printf("Invalid move, try again.\n");


get_player_move();
}
else matrix[x][y] = 'X';


}
/* Get a move from the computer. */
void get_computer_move(void)


{
int i, j;
for(i=0; i<3; i++){
for(j=0; j<3; j++)
if(matrix[i][j]==' ') break;
if(matrix[i][j]==' ') break;


}
if(i*j==9) {
printf("draw\n");


exit(0);
}
else
matrix[i][j] = 'O';


}
/* Display the matrix on the screen. */
void disp_matrix(void)


{
int t;

for(t=0; t<3; t++) {
printf(" %c | %c | %c ",matrix[t][0],


matrix[t][1], matrix [t][2]);
if(t!=2) printf("\n---|---|---\n");


}
printf("\n");


}
/* See if there is a winner. */
char check(void)


{
int i;

for(i=0; i<3; i++) /* check rows */
if(matrix[i][0]==matrix[i][1] &&
matrix[i][0]==matrix[i][2]) return matrix[i][0];

for(i=0; i<3; i++) /* check columns */
if(matrix[0][i]==matrix[1][i] &&
matrix[0][i]==matrix[2][i]) return matrix[0][i];

/* test diagonals */
if(matrix[0][0]==matrix[1][1] &&


matrix[1][1]==matrix[2][2])
return matrix[0][0];

if(matrix[0][2]==matrix[1][1] &&


matrix[1][1]==matrix[2][0])
return matrix[0][2];

return ' ';


}

 
 

0 comments:

Post a Comment

Tech UOG