Problema joguinho em C

1. Problema joguinho em C

zi vieira silva
zivieira

(usa Outra)

Enviado em 19/03/2017 - 21:46h

Estou tendo um problema que nao consigo retorna pro começo do jogo da velha quando termina a partida,sou iniciante ainda então quem puder ajudar
unica coisa que ta faltando e isso returnar para o inicio se o jogador quiser jogar mais partidas.

#include<stdio.h>
#include<stdlib.h>
char vet[9];
void limpar()
{
for(int x=0;x<9;x++)
{
vet[x]=' ';
}
}
void imprimir()
{
for(int x=0;x<9;x++)
{
if(x==3 || x==6)
printf("\n");
printf("[%c]",vet[x]);
}
printf("\n");
}
main()
{
int sair;
int pos,jog=1,win1=0,win2=0,i;
limpar();


do{
imprimir();
for( i=0;i<9;i++)
{
system("cls");
imprimir();

if(//linha x
vet[3]=='X' && vet[4]=='X' && vet[5]=='X' ||
vet[6]=='X' && vet[7]=='X' && vet[8]=='X' ||
vet[0]=='X' && vet[1]=='X' && vet[2]=='X' ||

//coluna x
vet[0]=='X' && vet[3]=='X' && vet[6]=='X' ||
vet[1]=='X' && vet[4]=='X' && vet[7]=='X' ||
vet[2]=='X' && vet[5]=='X' && vet[8]=='X' ||

//diagonal x
vet[0]=='X' && vet[4]=='X' && vet[8]=='X' ||
vet[2]=='X' && vet[4]=='X' && vet[6]=='X')
{
win1++;
printf("jogador 1 ganhou!\n");
i=i+4;
}
else
if(//linha o
vet[3]=='O' && vet[4]=='O' && vet[5]=='O' ||
vet[6]=='O' && vet[7]=='O' && vet[8]=='O' ||
vet[0]=='O' && vet[1]=='O' && vet[2]=='O' ||

//coluna o
vet[0]=='O' && vet[3]=='O' && vet[6]=='O' ||
vet[1]=='O' && vet[4]=='O' && vet[7]=='O' ||
vet[2]=='O' && vet[5]=='O' && vet[8]=='O' ||

//diagonal o
vet[0]=='O' && vet[4]=='O' && vet[8]=='O' ||
vet[2]=='O' && vet[4]=='O' && vet[6]=='O')
{
win2++;
printf("jogador 2 ganhou!\n");
i=i+4;
}
else

if (i<9){
if(jog==1)
{
printf("JOGADOR 1\n");
printf("Posicao: ");
scanf("%d",&pos);
if(vet[pos]==' ' && pos>=0 && pos<=8)
{
vet[pos]='X';
jog=2;
}

else
{
printf("Posicao invalida\n");
//_sleep(2000);
}
}
else if(jog==2)
{
printf("JOGADOR 2\n");
printf("Posicao: ");
scanf("%d",&pos);
if(vet[pos]==' ' && pos>=0 && pos<=8)
{
vet[pos]='O';
jog=1;
}

else
{
printf("Posicao invalida\n");
//_sleep(2000);
}
}
}//jogando

}

printf("deseja sair? ");
scanf("%d",&sair);
//system("pause");


}while(sair!=1);

//mostra quem ganhou
printf("\n Placar final!!!\n");
printf("jogador 1: %d vitorias\n",win1);
printf("jogador 2: %d vitorias\n",win2);
if(win1==win2)
printf("partida empatada");
else if(win1>win2)
printf("Jogador 1 foi o vencedor!!!!");
else
printf("Jogador 2 foi o vencedor!!!!");


}


  


2. Solução

Bruno Cavalcanti
Bruno_Cavalcanti

(usa CentOS)

Enviado em 20/03/2017 - 10:33h

Já tentou colocar um system pause no fim e depois dele você coloca um

printf("Deseja jogar novamente s ou n?: ");
scanf("%c", &retorno);
if ( retorno == 's') {
imprimir();
}

não uso windows e por esse motivo não testei no meu pc, mas espero ter ajudado.

Abraço.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts