Você está na página 1de 2

#include <stdio.

h>
#include <stdlib.h>
#include <time.h>
char tabuleiro [3][3];
void inicializa(){
int l, c;
for (l=0; l<3; l++)
for (c=0; c<3; c++)
tabuleiro[l][c]='.';
}
void exibe_tabuleiro(){
int l, c;
printf ("\nTabuleiro\n");
printf (" 0 1 2\n");
for(l=0; l<3; l++){
for(c=0; c<3; c++)
printf(" %c", tabuleiro[l][c]);
printf("%d\n", l);
}
}
void jogador(){
int l, c;
printf ("\nJogador\n");
do{
printf("Linha: ");
scanf("%d", &l);
printf("Coluna: ");
scanf("%d", &c);
}while((l<0)||(l>2)||(c<0)||(c>2)||(tabuleiro[l][c]!='.'));
tabuleiro[l][c]='X';
}
void computador(){
int l, c;
printf("\nComputador\n");
do{
l=rand()%3;
c=rand()%3;
}while(tabuleiro[l][c]!='.');
tabuleiro[l][c]='O';
}
int testa_vitoria(char letra){
int l, c, v=0, cl=0;
for (l=0; l<3; l++)
if((tabuleiro[l][0]==letra)&&
(tabuleiro[l][1]==letra)&&
(tabuleiro[l][2]==letra)) v=1;
for (c=0; c<3; c++)
if((tabuleiro[0][c]==letra)&&
(tabuleiro[1][c]==letra)&&
(tabuleiro[2][c]==letra)) v=1;
for (l=0; l<3; l++)
if (tabuleiro[l][l]==letra) cl++;
if (cl==3) v=1;
cl=0;

for(l=0; l<3; l++)


if (tabuleiro[l][2-l]==letra) cl++;
if(cl==3) v=1;
if(v)
printf("\n%c Venceu!\n", letra);
return v;
}
int tabuleiro_cheio(){
int l, c, ct=0;
for(l=0; l<3; l++)
for(c=0; c<3; c++)
if(tabuleiro[l][c]!='.') ct++;
if(ct==9){
printf("\nTabuleiro est cheio\n");
return 1;
}
return 0;
}
int main(){
srand(time(NULL));
int jogo=rand()%2, vitoria=0, cheio=0;
inicializa();
exibe_tabuleiro();
do{
if(jogo){
jogador();
exibe_tabuleiro();
vitoria=testa_vitoria('X');
cheio=tabuleiro_cheio();
if((vitoria==0)&&(cheio==0)){
computador();
exibe_tabuleiro();
vitoria=testa_vitori
a('O');
}
}else{
computador();
exibe_tabuleiro();
vitoria=testa_vitoria('O');
cheio=tabuleiro_cheio();
if((vitoria==0)&&(cheio==0)){1
jogador();
exibe_tabuleir
o();
vitoria=testa_
vitoria('X');
}
}
}while((vitoria==0)&&(cheio==0));
}

Você também pode gostar