Você está na página 1de 4

/* Um exemplo de jogo-da-velha simples */

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <time.h> //usarei para a funo time()
char matrix[3][3]; /* a matriz do jogo */
char
void
void
void
void

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

int main()
{
char done;
setlocale(LC_ALL, "Portuguese");
srand(time(NULL)); //a rand() nunca vai gerar
valores iguais
printf("Este o jogo da velha.\n");
printf("Voc est jogando contra o
computador.\n");
done = ' ';
init_matrix();
do {

disp_matrix();
get_player_move();
done = check(); /* verifica se h
vencedor */
if(done!=' ')
break; /* vencedor! */
get_computer_move();
done = check(); /* verifica se h
vencedor */
} while(done ==' ');

if(done =='X')
{
printf("Voc ganhou!\n");
}
else
{
printf("Eu ganhei!!!\n");
}
disp_matrix();

/* mostra as posies finais

*/
system("PAUSE"); //pressione uma tecla para
continuar
return 0;
}
/* Inicializa a matriz */
void init_matrix(void)
{
int i, j;
for (i = 0; i < 3; i++)
for (j = 0; j < 3; j++)
matrix[i][j] = '.';
}
/* Obtem a sua jogada */
void get_player_move(void)
{
int i, j;
printf("Insira as coordenadas da sua jogada:
");
scanf("%d" "%d", &i, &j);
i = i -1;
j = j -1;
if (matrix[i][j] == '.')
matrix[i][j] = 'x';
else
return get_player_move();
}

/* Obtem uma jogada do computador */


void get_computer_move(void)
{
int i, j;
i = rand()%3;
j = rand()%3;
if (matrix[i][j] == '.')
matrix[i][j] = 'o';
else
return get_computer_move();
}
/* Mostra a matriz na tela */
void disp_matrix(void)
{
int i, j;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
printf("%c", matrix[i][j]);
printf("\n");
}
}
/* Verifica se h um vencedor */
char check(void)
{
if((matrix[0][0]=='o' && matrix[0][1]=='o'
&& matrix[0][2]=='o')||
(matrix[1][0]=='o' && matrix[1][1]=='o'
&& matrix[1][2]=='o')||
(matrix[2][0]=='o' && matrix[2][1]=='o'
&& matrix[2][2]=='o')||
(matrix[0][0]=='o' && matrix[1][0]=='o'
&& matrix[2][0]=='o')||
(matrix[0][1]=='o' && matrix[1][1]=='o'
&& matrix[2][1]=='o')||
(matrix[0][2]=='o' && matrix[1][2]=='p'
&& matrix[2][2]=='o')||
(matrix[0][0]=='o' && matrix[1][1]=='o'
&& matrix[2][2]=='o')||

&&

&&
&&
&&
&&
&&
&&
&&
&&

(matrix[0][2]=='o'
matrix[2][0]=='o'))
return 'O';
else
if((matrix[0][0]=='x'
matrix[0][2]=='x')||
(matrix[1][0]=='x'
matrix[1][2]=='x')||
(matrix[2][0]=='x'
matrix[2][2]=='x')||
(matrix[0][0]=='x'
matrix[2][0]=='x')||
(matrix[0][1]=='x'
matrix[2][1]=='x')||
(matrix[0][2]=='x'
matrix[2][2]=='x')||
(matrix[0][0]=='x'
matrix[2][2]=='x')||
(matrix[0][2]=='x'
matrix[2][0]=='x'))
return 'X';
else
return ' ';

&& matrix[1][1]=='o'

&& matrix[0][1]=='x'
&& matrix[1][1]=='x'
&& matrix[2][1]=='x'
&& matrix[1][0]=='x'
&& matrix[1][1]=='x'
&& matrix[1][2]=='x'
&& matrix[1][1]=='x'
&& matrix[1][1]=='x'

Você também pode gostar