Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Caroa amigo infalivel
este codigo do jogo da velha foi postado em junho do ano passado por Angel
e como eu e o amigo Gustavo esta tentando ver este codigo compilando 100% resolvi reemposta-lo
Ele esta rodando mas qd chega no final que a um vencedor onde ele deveria perguntar se deseja continuar ele ate volta no a matriz, eu ate acrescentei um "inicio:" , "goto inicio;" para ele voltar mas qd volta, volta com as opção ja celecionadas e na sequencia da erro.
Veja o codigo
CODE
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
main(void)
{
inicio:
char m[3][3]={'1','2','3','4','5','6','7','8','9'};
int vaux[8];
int col, lin, i, j,cont, jogadavalida, posicao,jogador,temvencedor,aux;
char novajogada='n';
temvencedor=0;
jogador=0;
cont=0;
aux=1;
jogadavalida=0;
printf("===JOGO DA VELHA===");
printf("\n");
system ("color 3F");
while ((jogadavalida < 9) && (temvencedor==0))
{
//imprime a matriz do jogo
printf("\n");
printf("Jogador 1 -> x\n");
printf("Jogador 2 -> 0\n");
for (col=0; col < 3; col++)
{
printf("\n");
for (lin=0; lin < 3; lin++)
printf("%c|", m[col][lin]);
}
printf("\n");
printf("\n");
// mod para verificar qual jogador deve jogar
if (jogadavalida % 2 ==0)
{
printf("jogador 1 escolha a posicao:");
scanf ("%d",&posicao);
jogador=1;
printf("\n");
}
else
{
printf("\n");
printf("jogador 2 escolha a posicao:");
scanf("%d",&posicao);
jogador=2;
printf("\n");
}
//le a posicao ateh que seja digitada uma posicao valida
while ((posicao <1) ||(posicao >9 ))
{
printf("posicao invalida, digite numeros de 1 a 9 :");
scanf("%d",&posicao);
}
// o if verifica se a posicao ja foi digitada
// verificando posicao na matriz e atribuindo valores x ou o
cont=cont+1;
switch (posicao)
{
case 1:
if((m[0][0]!='x')&&(m[0][0]!='o'))
{
if (jogador == 1)
{
m[0][0]='x';
}
else
{
m[0][0]='o';
}
}
else
{
printf("posicao jah utilizada, para continuar e digitar outra posicao\n");
printf("digite 0\n");
scanf("%d",&aux);
jogadavalida=jogadavalida-1;
}
break;
case 2:
if((m[0][1]!='x')&&(m[0][1]!='o'))
{
if (jogador==1)
{
m[0][1]='x';
}
else
{
m[0][1]='o';
}
}
else
{
printf("posicao jah utilizada, para continuar e digitar outra posicao\n");
printf("digite 0\n");
scanf("%d",&aux);
jogadavalida=jogadavalida-1;
}
break;
case 3:
if((m[0][2]!='x')&&(m[0][2]!='o'))
{
if (jogador==1)
{
m[0][2]='x';
}
else
{
m[0][2]='o';
}
}
else
{
printf("posicao jah utilizada, para continuar e digitar outra posicao\n");
printf("digite 0\n");
scanf("%d",&aux);
jogadavalida=jogadavalida-1;
}
break;
case 4:
if((m[1][0]!='x')&&(m[1][0]!='o'))
{
if (jogador ==1)
{
m[1][0]='x';
}
else
{
m[1][0]='o';
}
}
else
{
printf("posicao jah utilizada, para continuar e digitar outra posicao\n");
printf("digite 0\n");
scanf("%d",&aux);
jogadavalida=jogadavalida-1;
}
break;
case 5:
if((m[1][1]!='x')&&(m[1][1]!='o'))
{
if (jogador==1)
{
m[1][1]='x';
}
else
{
m[1][1]='o';
}
}
else
{
printf("posicao jah utilizada, para continuar e digitar outra posicao\n");
printf("digite 0\n");
scanf("%d",&aux);
jogadavalida=jogadavalida-1;
}
break;
case 6:
if((m[1][2]!='x')&&(m[1][2]!='o'))
{
if (jogador==1)
{
m[1][2]='x';
}
else
{
m[1][2]='o';
}
}
else
{
printf("posicao jah utilizada, para continuar e digitar outra posicao\n");
printf("digite 0\n");
scanf("%d",&aux);
jogadavalida=jogadavalida-1;
}
break;
case 7:
if((m[2][0]!='x')&&(m[2][0]!='o'))
{
if (jogador==1)
{
m[2][0]='x';
}
else
{
m[2][0]='o';
}
}
else
{
printf("posicao jah utilizada, para continuar e digitar outra posicao\n");
printf("digite 0\n");
scanf("%d",&aux);
jogadavalida=jogadavalida-1;
}
break;
case 8:
if((m[2][1]!='x')&&(m[2][1]!='o'))
{
if (jogador==1)
{
m[2][1]='x';
}
else
{
m[2][1]='o';
}
}
else
{
printf("posicao jah utilizada, para continuar e digitar outra posicao\n");
printf("digite 0\n");
scanf("%d",&aux);
jogadavalida=jogadavalida-1;
}
break;
case 9:
if((m[2][2]!='x')&&(m[2][2]!='o'))
{
if (jogador==1)
{
m[2][2]='x';
}
else
{
m[2][2]='o';
}
}
else
{
printf("posicao jah utilizada, para continuar e digitar outra posicao\n");
printf("digite 0\n");
scanf("%d",&aux);
jogadavalida=jogadavalida-1;
}
break;
}
// verificacao de quem ganhou considerando que a partir da 5 jogada
// pode haver vencedor
if (cont > 4)
{
// switch (vencedor)
// comparando linha 0 e colunas
if ((m[0][0]== m[0][1]) && (m[0][0]== m[0][2]))
{
temvencedor=1;
if (m[0][0] == 'x')
{
printf("OK!!! Jogador 1 eh o vencedor O_o\n");
}
else
{
printf("OK!!! Jogador 2 eh o vencedor O_o\n");
}
}
// comparando linha 1 e colunas
if ((m[1][0]== m[1][1]) && (m[1][0]== m[1][2]))
{
temvencedor=1;
if (m[1][0]=='x')
{
printf("OK!!! Jogador 1 eh o vencedor O_o\n");
}
else
{
printf("OK!!! Jogador 2 eh o vencedor O_o\n");
}
}
//comparando linha 2 e colunas
if ((m[2][0]== m[2][1]) && (m[2][0]== m[2][2]))
{
temvencedor=1;
if (m[2][0]=='x')
{
printf("OK!!! Jogador 1 eh o vencedor O_o\n");
}
else
{
printf("OK !!! Jogador 2 eh o vencedor O_o\n");
}
}
//comparando coluna 0
if ((m[0][0]== m[1][0]) && (m[0][0]==m[2][0]))
{
temvencedor=1;
if (m[0][0]=='x')
{
printf("OK!!! Jogador 1 eh o vencedor O_O\n");
}
else
{
printf("OK!!! Jogador 2 eh o vencedor O_o\n");
}
}
// comparando coluna 1
if ((m[0][1]==m[1][1]) && (m[0][1]==m[2][1]))
{
temvencedor=1;
if (m[0][1]=='x')
{
printf("OK!!! Jogador 1 eh o vencedor O_o\n");
}
else
{
printf("OK!!! Jogador 2 eh o vencedor O_o\n");
}
}
//comparando coluna 2
if ((m[0][2]==m[1][2]) && (m[0][2]==m[2][2]))
{
temvencedor=1;
if (m[0][2]=='x')
{
printf("OK!!! Jogador 1 eh o vencedor O_o\n");
}
else
{
printf ("OK!!! Jogador 2 eh o vencedor O_o\n");
}
}
/ comparando diagonal '\' /
if ((m[0][0]==m[1][1]) && (m[0][0]== m[2][2]))
{
temvencedor=1;
if (m[0][0]=='x')
{
printf("OK!!! Jogador 1 eh o vencedor O_o\n");
}
else
{
printf("OK!!! Jogador 2 eh o vencedor O_o\n");
}
}
/ comparando diagonal '/' /
if ((m[0][2]==m[1][1]) && (m[0][2]==m[2][0]))
{
temvencedor=1;
if (m[0][2]=='x')
{
printf("OK!!! Jogador 1 eh o vencedor O_o\n");
}
else
{
printf("OK!!! Jogador 2 eh o vencedor O_o\n");
}
}
if ((cont==9) && (temvencedor==0))
{
printf("Nao ah vencedor\n");
}
//fim comapracoes para verificacao de vencedor
}//fim if cont
if (temvencedor==1)
{
getchar ();
printf("deseja jogar novamente?");
scanf("%c",&novajogada);
printf("\n");
while ((novajogada == 'n')&&(temvencedor==1));
{
//scanf("%c",&novajogada); aki ele ñ esta dando certo
printf("\n");
}
if (novajogada=='s')
{
temvencedor=0;
jogadavalida=0;
novajogada='n';
m[3][3]='1','2','3','4','5','6','7','8','9';
}
else
{
printf("FIM DO JOGO!!!");
}
}
jogadavalida = jogadavalida+1;
}
goto inicio;
}Carregando comentários...