rendered paste body#include<stdio.h>
#include<stdlib.h>
#include <time.h>
char matriz[3][3]; // a matriz do jogo
char checar(void);
void inicia_matriz(void);
void movimento_jogador(void);
void movimento_computador(void);
void mostrar_matriz(void);
int main(void)
{
char done;
int rev, rod, jog, comp;
rev = rod = jog = comp = 0;
srand ( time(NULL) ); // gera seed baseada no relogio para alimentar rand()
system("cls");
printf("Digite quantas vezes deseja jogar o Jogo da Velha: ");
scanf("%d", &rod);
system("cls");
for(int i=1; i<=rod; i++)
{
printf("\n PLACAR\nJogador -> %d \nComputador -> %d\n\n\n", jog, comp);
done = ' ';
inicia_matriz();
do{
mostrar_matriz();
movimento_jogador();
system("cls");
done = checar(); // verifica se ha vencedor
if(done != ' ')
break;
movimento_computador();
done = checar();
}while(done == ' ');
if(done == 'X')
{
printf("O Jogador ganhou!\n\n\n");
jog++;
}
else
{
printf("O Computador ganhou!\n");
comp++;
}
mostrar_matriz(); // mostra as posicoes finais
system("pause");
system("cls");
}
printf("\n PLACAR\nJogador -> %d \nComputador -> %d\n\n\n", jog, comp);
if(jog>comp) printf("Dessa vez o Jogador venceu!!!\n\n");
else if(comp>jog) printf("Dessa vez o Computador venceu!!!\n\n");
else printf("Dessa vez empatou.\n\n");
printf("Digite 1 para jogar novamente ou pressione qualquer outra tecla para sair: ");
fflush(stdin);
scanf("%d", &rev);
if(rev == 1) main();
else {
printf("%d", rev);
system("pause");
exit(0);
}
system("pause");
}
void inicia_matriz(void) //inicializa a matriz
{
int i, j;
for(i=0; i<3; i++)
for(j=0; j<3; j++)
matriz[i][j] = ' ';
}
void movimento_jogador(void) // Obtem a sua jogada
{
int x, y;
printf("Digite as coordenadas para X.");
printf("\nDigite a linha: ");
scanf("%d", &x);
printf("Digite a coluna: ");
scanf("%d", &y);
x--;
y--;
if(matriz[x][y] != ' ')
{
printf("Posicao invalida, tente novamente. \n");
movimento_jogador();
}
else
matriz[x][y] = 'X';
}
void movimento_computador(void) // RECEBE A JOGADA DO COMPUTADOR
{
int i, j;
i = rand() %3;
j = rand() %3;
if(matriz[i][j] != ' ')
{
movimento_computador();
}
else
matriz[i][j] = 'O';
}
void mostrar_matriz(void) // MOSTRA A MATRIZ NA TELA
{
int i;
for(i=0; i<3; i++)
{
if(i==0)
printf("\nJOGO DA VELHA\n\n");
printf("%d %c | %c | %c ", i+1, matriz[i][0], matriz[i][1], matriz[i][2]);
if(i != 2)
printf("\n ---|---|---\n");
else
printf("\n 1 2 3\n");
}
printf("\n");
}
char checar(void) // VERIFICA SE HA UM VENCEDOR
{
int i;
for(i=0; i<3; i++) // VERIFICA AS LINHAS
if(matriz[i][0] == matriz[i][1] && matriz[i][0] == matriz[i][2])
return matriz[i][0];
for(i=0; i<3; i++) // VERIFICA AS COLUNAS
if(matriz[0][i] == matriz[1][i] && matriz[0][i] == matriz[2][i])
return matriz[i][0];
if(matriz[0][0] == matriz[1][1] && matriz[0][0]== matriz[2][2]) // VERIFICA AS DIAGONAIS
return matriz[0][0];
if(matriz[0][2] == matriz[1][1] && matriz[0][2]== matriz[2][0])
return matriz[0][2];
return ' ';
}