Ir ao conteúdo
  • Cadastre-se

Gabriela Alves de Sousa

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

1
  1. Boa tarde pessoal, estou fazendo um Jogo da Velha em C++, o código já está todo pronto e o jogo rodando, porém quando eu digito o ultimo comando o O ou o X não aparece no tabuleiro, já diz direto o ganhador. Se puderem me dizer o erro ficarei muito grata. O código está assim: #include <iostream> #include <stdlib.h> using namespace std; //Variáveis string Titulo = "<<<< JOGO DA VELHA >>>>\n\n"; int Continuar; const int Tam=11, pos = 3;// char Mapa[Tam][Tam]; char tabuleiro [pos][pos]; char vazio=' '; char cerquilha='#'; char jogador1='O', jogador2='X'; bool gameOver; int jogadorAtual=1; int Jogada; bool jogadaValida; int ganhou=false; int NumeroDeJogadas=0; char A, B, C, D, E, F, G,H; void menu() { //Desenhando o título cout<<Titulo; //Especificação dos jogadores cout<<"Jogador 1: O\t"; cout<<"Jogador 2: X\n\n"; //Confirmação de continuação cout<<"Digite 1 para continuar ou 0 para sair..."; cin>>Continuar; } void inicializar() { //Tabuleiro for (int i=0;i<Tam;i++) { for(int j=0;j<Tam;j++) { tabuleiro[j]=vazio; } } //Mapa for (int i=0;i<Tam;i++) { for(int j=0;j<Tam;j++) { //Espaços Mapa[j]=vazio; //cerquilha if((i==3)||(i==7)||(j==3)||(j==7)) Mapa[j] = cerquilha; } } } void desenharJogo() { system("cls"); //Desenhar título cout<<Titulo; //Desenhar tabuleiro for(int i=0;i<Tam;i++) { for(int j=0;j<Tam;j++) { cout<<Mapa[j]<<" "; } cout<<endl; } //Pedir comando cout<<"\nJogador da Rodada: "; if(jogadorAtual == 1) cout<<"O"<<endl; else cout<<"X"<<endl; cout<<"Jogada: "; cin>>Jogada; while(Jogada/10<0 || Jogada/10>=4 || Jogada%10<0 || Jogada%10>=4 || tabuleiro[(Jogada/10)-1][(Jogada%10)-1]!=vazio) { cout<<"Jogada invalida. Tente novamente: "; cin>>Jogada; } jogadaValida=true; //NumeroDeJogadas++; } void comando() { //Preenchimento do tabuleiro cout<<"\nJogador da Rodada: "; if(jogadorAtual == 1) tabuleiro[Jogada/10-1][Jogada%10-1]='O'; else tabuleiro[Jogada/10-1][Jogada%10-1]='X'; //Preenchimento do Mapa for(int i=0; i<pos; i++) { for(int j=0; j<pos; j++) { Mapa[1+4*i][1+4*j]=tabuleiro[j]; } } jogadorAtual = jogadorAtual*(-1); } void ganhador() { A=((tabuleiro[0][0]==tabuleiro[0][1])&&(tabuleiro[0][1]==tabuleiro[0][2])&&(tabuleiro[0][0]!=vazio)); B=((tabuleiro[1][0]==tabuleiro[1][1])&&(tabuleiro[1][1]==tabuleiro[1][2])&&(tabuleiro[1][0]!=vazio)); C=((tabuleiro[2][0]==tabuleiro[2][1])&&(tabuleiro[2][1]==tabuleiro[2][2])&&(tabuleiro[2][0]!=vazio)); D=((tabuleiro[0][0]==tabuleiro[1][0])&&(tabuleiro[1][0]==tabuleiro[2][0])&&(tabuleiro[0][0]!=vazio)); E=((tabuleiro[0][1]==tabuleiro[1][1])&&(tabuleiro[1][1]==tabuleiro[2][1])&&(tabuleiro[0][1]!=vazio)); F=((tabuleiro[0][2]==tabuleiro[1][2])&&(tabuleiro[1][2]==tabuleiro[2][2])&&(tabuleiro[0][2]!=vazio)); G=((tabuleiro[0][0]==tabuleiro[1][1])&&(tabuleiro[1][1]==tabuleiro[2][2])&&(tabuleiro[0][0]!=vazio)); H=((tabuleiro[0][2]==tabuleiro[1][1])&&(tabuleiro[1][1]==tabuleiro[2][0])&&(tabuleiro[0][2]!=vazio)); //verificando o ganhador na horizontal if (A) { gameOver=true; } else if (B) { gameOver=true; } else if (C) { gameOver=true; } //verificando ganhador na vertical if(D) { gameOver = true; } else if(E) { gameOver = true; } else if(F) { gameOver = true; } //verificando ganhador na diagonal if(G) { gameOver=true; } else if(H) { gameOver = true; } //verificando se deu velha if (NumeroDeJogadas==9 && !(A)&&!(B)&&!(C)&&!(D)&&!(E)&&!(F)&&!(G)&&!(H)) { gameOver = true; cout<<"Deu Velha \n"; } if(NumeroDeJogadas%2!=0) { cout<<"Jogador 1 venceu"; } else { cout<<"Jogador 2 venceu"; } } void jogo() { inicializar(); NumeroDeJogadas=0; while(!(gameOver)) { desenharJogo(); comando(); NumeroDeJogadas++; ganhador (); } } int main () { system("color e2"); menu();//Função para desenhar o menu if(Continuar==0) return 0; jogo(); char novo; while (novo!='n') { cout<<"\nDigite 's' para jogar novamente e 'n' para finalizar o jogo "; cin>>novo; if(novo=='s') { jogo(); } } }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...