CONSEGUI FAZER
Tinha um erro na função vencedor()... Mas era um erro que eu não sabia que não se podia fazer e não acho que muita gente saiba: 5 == 5 dá 1 mas 5 == 5 == 5 dá 0
Não acho que seja uma coisa muito lógica mas pelos vistos é assim que funciona
#include <stdio.h>
char a1 = '1';
char a2 = '2';
char a3 = '3';
char b1 = '4';
char b2 = '5';
char b3 = '6';
char c1 = '7';
char c2 = '8';
char c3 = '9';
int val = 0;
int count = 0;
int venc = 0;
void jogo(){
printf("\n | | \n");
printf(" %c | %c | %c \n", c1, c2, c3);
printf(" | | \n");
printf("-------------\n");
printf(" | | \n");
printf(" %c | %c | %c \n", b1, b2, b3);
printf(" | | \n");
printf("-------------\n");
printf(" | | \n");
printf(" %c | %c | %c \n", a1, a2, a3);
printf(" | | \n");
}
void vezJogarX()
{
printf("E a vez do X jogar: \n");
scanf("%d", &val);
}
void vezJogarO()
{
printf("E a vez da O jogar: \n");
scanf("%d", &val);
}
void jogadasX()
{
switch (val)
{
case 1:
if (a1 == 'X' || a1 == 'O')
{
printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :(");
count--;
val = 0;
} else {
a1 = 'X';
val = 0;
}
break;
case 2:
if (a2 == 'X' || a2 == 'O')
{
printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :(");
count--;
val = 0;
} else {
a2 = 'X';
val = 0;
}
break;
case 3:
if (a3 == 'X' || a3 == 'O')
{
printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :(");
count--;
val = 0;
} else {
a3 = 'X';
val = 0;
}
break;
case 4:
if (b1 == 'X' || b1 == 'O')
{
printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :(");
count--;
val = 0;
} else {
b1 = 'X';
val = 0;
}
break;
case 5:
if (b2 == 'X' || b2 == 'O')
{
printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :(");
count--;
val = 0;
} else {
b2 = 'X';
val = 0;
}
break;
case 6:
if (b3 == 'X' || b3 == 'O')
{
printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :(");
count--;
val = 0;
} else {
b3 = 'X';
val = 0;
}
break;
case 7:
if (c1 == 'X' || c1 == 'O')
{
printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :(");
count--;
val = 0;
} else {
c1 = 'X';
val = 0;
}
break;
case 8:
if (c2 == 'X' || c2 == 'O')
{
printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :(");
count--;
val = 0;
} else {
c2 = 'X';
val = 0;
}
break;
case 9:
if (c3 == 'X' || c3 == 'O')
{
printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :(");
count--;
val = 0;
} else {
c3 = 'X';
val = 0;
}
break;
}
}
void jogadasO()
{
switch (val)
{
case 1:
if (a1 == 'X' || a1 == 'O')
{
printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :(");
val = 0;
count--;
} else {
val = 0;
a1 = 'O';
}
break;
case 2:
if (a2 == 'X' || a2 == 'O')
{
printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :(");
val = 0;
count--;
} else {
val = 0;
a2 = 'O';
}
break;
case 3:
if (a3 == 'X' || a3 == 'O')
{
printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :(");
val = 0;
count--;
} else {
val = 0;
a3 = 'O';
}
break;
case 4:
if (b1 == 'X' || b1 == 'O')
{
printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :(");
val = 0;
count--;
} else {
val = 0;
b1 = 'O';
}
break;
case 5:
if (b2 == 'X' || b2 == 'O')
{
printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :(");
val = 0;
count--;
} else {
val = 0;
b2 = 'O';
}
break;
case 6:
if (b3 == 'X' || b3 == 'O')
{
printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :(");
val = 0;
count--;
} else {
val = 0;
b3 = 'O';
}
break;
case 7:
if (c1 == 'X' || c1 == 'O')
{
printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :(");
val = 0;
count--;
} else {
val = 0;
c1 = 'O';
}
break;
case 8:
if (c2 == 'X' || c2 == 'O')
{
printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :(");
val = 0;
count--;
} else {
val = 0;
c2 = 'O';
}
break;
case 9:
if (c3 == 'X' || c3 == 'O')
{
printf("Este numero ja esta escolhido!! Perdes a vez por estares a brincar :(");
val = 0;
count--;
} else {
val = 0;
c3 = 'O';
}
break;
}
}
void vencedor()
{
if ((a1 == a2) && (a3 == 'X')) {
printf("O jogador do X ganhou!! PARABENS :))"); //Verifica se há sequência na linha de baixo
venc = 1;
} else if ((a1 == a2) && (a3 == 'O')) {
printf("O jogador da O ganhou!! PARABENS :))");
venc = 1;
} else if ((b1 == b2) && (b3 == 'X')) {
printf("O jogador da X ganhou!! PARABENS :))"); //Verifica se há sequência na linha do centro
venc = 1;
} else if ((b1 == b2) && (b3 == 'O')) {
printf("O jogador da O ganhou!! PARABENS :))");
venc = 1;
} else if ((c1 == c2) && (c3 == 'X')) {
printf("O jogador da X ganhou!! PARABENS :))"); //Verifica se há sequência na linha de cima
venc = 1;
} else if ((c1 == c2) && (c3 == 'O')) {
printf("O jogador da O ganhou!! PARABENS :))");
venc = 1;
} else if ((a1 == b1) && (c1 == 'X')) {
printf("O jogador da X ganhou!! PARABENS :))"); //Verifica se há sequência na 1ª coluna
venc = 1;
} else if ((a1 == b1) && (c1 == 'O')) {
printf("O jogador da O ganhou!! PARABENS :))");
venc = 1;
} else if ((a2 == b2) && (c2 == 'X')) {
printf("O jogador da X ganhou!! PARABENS :))"); //Verifica se há sequência na 2ª coluna
venc = 1;
} else if ((a2 == b2) && (c2 == 'O')) {
printf("O jogador da O ganhou!! PARABENS :))");
venc = 1;
} else if ((a3 == b3) && (c3 == 'X')) {
printf("O jogador da X ganhou!! PARABENS :))"); //Verifica se há sequnência na 3ª coluna
venc = 1;
} else if ((a3 == b3) && (c3 == 'O')) {
printf("O jogador da O ganhou!! PARABENS :))");
venc = 1;
} else if ((a1 == b2) && (c3 == 'X')) {
printf("O jogador da X ganhou!! PARABENS :))"); //Verifica se há sequência na 1ª diagonal
venc = 1;
} else if ((a1 == b2) && (c3 == 'O')) {
printf("O jogador da O ganhou!! PARABENS :))");
venc = 1;
} else if ((a3 == b2) && (c1 == 'X')) {
printf("O jogador da X ganhou!! PARABENS :))"); // Verifica se há seqência na 2ª diagonal
venc = 1;
} else if ((a3 == b2) && (c1 == 'O')) {
printf("O jogador da O ganhou!! PARABENS :))");
venc = 1;
}
}
int main()
{
jogo();
while(count != 9){
vezJogarX();
jogadasX();
jogo();
vencedor();
count++;
if(count == 9 || venc == 1){
break;
}
vezJogarO();
jogadasO();
jogo();
vencedor();
count++;
if (venc == 1)
{
break;
}
}
if(count == 9 && venc != 1){
printf("\n O jogo acabou em empate!!\n");
}
}
↧