Ir ao conteúdo
  • Cadastre-se

C++ o código está incompleto


patricia weber

Posts recomendados

1. CÓDIGO C INCOMPLETO
 

#include < stdio.h >
 int main (void) {
     char ________________________;                                          // Declaração da matriz para o jogo
     char O = 'O', X = 'X';
     int jogadas = 0, j, i;

     ______________________                                                       // Inicialização da matriz do jogo
         _____________________________
             ______________________________

     while (l <= 9) {
         printf ("  JOGO DA VELHA \n");
         for (i = 0; i < 3; i++) {
             printf ("\t\t     %c | %c | %c\n",Matriz [0], Matriz [1], Matriz [2]);
             if (i < 3-1)
                 printf ("\t\t    ---+---+---  \n");
         }

         printf ("\nINSIRA AS COORDENADAS, ");
         if (l % 2)
               printf ("JOGADOR 2\nLINHA: ");
         else
               printf ("JOGADOR 1\nLINHA: ");
         scanf ("%d",&i);
         printf ("COLUNA: ");
         scanf (________________);                                                // Parâmetros para entrada de dados da coluna

         if (Matriz [i-1] [j-1] == ' ') {
             if (l%2)
                   Matriz [i-1] [j-1] = X;
             else
                   Matriz [i-1] [j-1] = O;
             jogadas++;
         }

         if ((Matriz[0][0]==O && Matriz[0][1]==O && Matriz[0][2]==O) ||
            (Matriz[1][0]==O && Matriz[1][1]==O && Matriz[1][2]==O) ||
            (Matriz[2][0]==O && Matriz[2][1]==O && Matriz[2][2]==O) ||
            (Matriz[0][0]==O && Matriz[1][0]==O && Matriz[2][0]==O) ||
            (Matriz[0][1]==O && Matriz[1][1]==O && Matriz[2][1]==O) ||
            (Matriz[0][2]==O && Matriz[1][2]==O && Matriz[2][2]==O) ||
            (Matriz[0][0]==O && Matriz[1][1]==O && Matriz[2][2]==O) ||
            (Matriz[0][2]==O && Matriz[1][1]==O && Matriz[2][0]==O))
         {
             printf("\n\a\t\tJogador 1, VOCÊ VENCEU!!!\n");
             break;
         }
         if ((Matriz[0][0]==X && Matriz[0][1]==X && Matriz[0][2]==X) ||
            (Matriz[1][0]==X && Matriz[1][1]==X && Matriz[1][2]==X) ||
            (Matriz[2][0]==X && Matriz[2][1]==X && Matriz[2][2]==X) ||
            (Matriz[0][0]==X && Matriz[1][0]==X && Matriz[2][0]==X) ||
            (Matriz[0][1]==X && Matriz[1][1]==X && Matriz[2][1]==X) ||
            (Matriz[0][2]==X && Matriz[1][2]==X && Matriz[2][2]==X) ||
            (Matriz[0][0]==X && Matriz[1][1]==X && Matriz[2][2]==X) ||
            (Matriz[0][2]==X && Matriz[1][1]==X && Matriz[2][0]==X))
         {
             printf ("\n\n\n\n\a\t\tJogador 2, VOCÊ VENCEU!!!\n");
             break;
         }

         if (__________________________) {                                            // Condição para que a partida termine empatada
             printf ("PARTIDA EMPATADA");
             break;
         }
     }
     return (0);
 }

 

  • Amei 1
Link para o comentário
Compartilhar em outros sites

  • Moderador

Caro usuário,

 

Seja bem-vindo ao Clube do Hardware.

 

No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware.

 

Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício.

 

Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal.

 

Esperamos que compreenda.

 

Atenciosamente,

Equipe Clube do Hardware

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

talvez se pegar o código e passar ele para um arquivo .c e ir tentando compilar ele acho que você seria capaz de conseguir.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@patricia weber  1) Comece declarando as variáveis: Matriz e l.

 

Para declarar uma variável coloque o tipo e o nome, p.ex,

 

int teste;

char Tabela[3][3];

Acima declarei duas variáveis, uma inteira e uma matriz/array 3x3.

 

2) Inicie os valores da matriz, veja que tem três linhas para isso. Iniciar significa atribuir valores (caractere em branco) a cada posição. Para isso use dois loops/For.

 

3) O parâmetro de scanf é igual ao scanf logo acima, mas com a variável j.

 

4) Incremente l e compare a condição de empate.

 

Assim já dá para testar o código e depois acertar outras partes.

 

  • Curtir 1
  • Amei 1
Link para o comentário
Compartilhar em outros sites

@patricia weber A partida termina em empate quando o número de jogadas chega a nove sem um vencedor.

 

Verificando melhor o código vi que a variável l é desnecessária, basta a variável jogadas.

 

Acho que a variável l está aí para ser substituída pela variável jogadas.

 

Para verificar se houve empate é só comparar,

 

if(jogadas==9){
printf ("PARTIDA EMPATADA");
break;
}

 

  • Curtir 1
  • Amei 1
Link para o comentário
Compartilhar em outros sites

#include < stdio.h >
 int main (void) {
     char Matriz [3] [3];           // Declaração da matriz para o jogo
     char O = 'O', X = 'X';
     int jogadas = 0, j, i;

     for(i=0;i<3;i++){                   // Inicialização da matriz do jogo
         for(j=0;j<3;j++){
             jogo[j]=''
     while (l <= 9) {
         printf ("  JOGO DA VELHA \n");
         for (i = 0; i < 3; i++) {
             printf ("\t\t     %c | %c | %c\n",Matriz [0], Matriz [1], Matriz [2]);
             if (i < 3-1)
                 printf ("\t\t    ---+---+---  \n");
         }

         printf ("\nINSIRA AS COORDENADAS, ");
         if (l % 2)
               printf ("JOGADOR 2\nLINHA: ");
         else
               printf ("JOGADOR 1\nLINHA: ");
         scanf ("%d",&i);
         printf ("COLUNA: ");
         scanf ("%d",&j);               // Parâmetros para entrada de dados da coluna

         if (Matriz [i-1] [j-1] == ' ') {
             if (l%2)
                   Matriz [i-1] [j-1] = X;
             else
                   Matriz [i-1] [j-1] = O;
             jogadas++;
         }

         if ((Matriz[0][0]==O && Matriz[0][1]==O && Matriz[0][2]==O) ||
            (Matriz[1][0]==O && Matriz[1][1]==O && Matriz[1][2]==O) ||
            (Matriz[2][0]==O && Matriz[2][1]==O && Matriz[2][2]==O) ||
            (Matriz[0][0]==O && Matriz[1][0]==O && Matriz[2][0]==O) ||
            (Matriz[0][1]==O && Matriz[1][1]==O && Matriz[2][1]==O) ||
            (Matriz[0][2]==O && Matriz[1][2]==O && Matriz[2][2]==O) ||
            (Matriz[0][0]==O && Matriz[1][1]==O && Matriz[2][2]==O) ||
            (Matriz[0][2]==O && Matriz[1][1]==O && Matriz[2][0]==O))
         {
             printf("\n\a\t\tJogador 1, VOCÊ VENCEU!!!\n");
             break;
         }
         if ((Matriz[0][0]==X && Matriz[0][1]==X && Matriz[0][2]==X) ||
            (Matriz[1][0]==X && Matriz[1][1]==X && Matriz[1][2]==X) ||
            (Matriz[2][0]==X && Matriz[2][1]==X && Matriz[2][2]==X) ||
            (Matriz[0][0]==X && Matriz[1][0]==X && Matriz[2][0]==X) ||
            (Matriz[0][1]==X && Matriz[1][1]==X && Matriz[2][1]==X) ||
            (Matriz[0][2]==X && Matriz[1][2]==X && Matriz[2][2]==X) ||
            (Matriz[0][0]==X && Matriz[1][1]==X && Matriz[2][2]==X) ||
            (Matriz[0][2]==X && Matriz[1][1]==X && Matriz[2][0]==X))
         {
             printf ("\n\n\n\n\a\t\tJogador 2, VOCÊ VENCEU!!!\n");
             break;
         }

         if (jogadas==9) {         // Condição para que a partida termine empatada
             printf ("PARTIDA EMPATADA");
             break;
         }
     }
     return (0);

}
 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

#include < stdio.h >
 int main (void) {
     char Matriz [3] [3];           // Declaração da matriz para o jogo
     char O = 'O', X = 'X';
     int jogadas = 0, j, i;

     for(i=0;i<3;i++){                   // Inicialização da matriz do jogo
         for(j=0;j<3;j++){
             jogo[i][j]=''
     while (l <= 9) {
         printf ("  JOGO DA VELHA \n");
         for (i = 0; i < 3; i++) {
             printf ("\t\t     %c | %c | %c\n",Matriz [0], Matriz [1], Matriz [2]);
             if (i < 3-1)
                 printf ("\t\t    ---+---+---  \n");
         }

         printf ("\nINSIRA AS COORDENADAS, ");
         if (l % 2)
               printf ("JOGADOR 2\nLINHA: ");
         else
               printf ("JOGADOR 1\nLINHA: ");
         scanf ("%d",&i);
         printf ("COLUNA: ");
         scanf ("%d",&j);               // Parâmetros para entrada de dados da coluna

         if (Matriz [i-1] [j-1] == ' ') {
             if (l%2)
                   Matriz [i-1] [j-1] = X;
             else
                   Matriz [i-1] [j-1] = O;
             jogadas++;
         }

         if ((Matriz[0][0]==O && Matriz[0][1]==O && Matriz[0][2]==O) ||
            (Matriz[1][0]==O && Matriz[1][1]==O && Matriz[1][2]==O) ||
            (Matriz[2][0]==O && Matriz[2][1]==O && Matriz[2][2]==O) ||
            (Matriz[0][0]==O && Matriz[1][0]==O && Matriz[2][0]==O) ||
            (Matriz[0][1]==O && Matriz[1][1]==O && Matriz[2][1]==O) ||
            (Matriz[0][2]==O && Matriz[1][2]==O && Matriz[2][2]==O) ||
            (Matriz[0][0]==O && Matriz[1][1]==O && Matriz[2][2]==O) ||
            (Matriz[0][2]==O && Matriz[1][1]==O && Matriz[2][0]==O))
         {
             printf("\n\a\t\tJogador 1, VOCÊ VENCEU!!!\n");
             break;
         }
         if ((Matriz[0][0]==X && Matriz[0][1]==X && Matriz[0][2]==X) ||
            (Matriz[1][0]==X && Matriz[1][1]==X && Matriz[1][2]==X) ||
            (Matriz[2][0]==X && Matriz[2][1]==X && Matriz[2][2]==X) ||
            (Matriz[0][0]==X && Matriz[1][0]==X && Matriz[2][0]==X) ||
            (Matriz[0][1]==X && Matriz[1][1]==X && Matriz[2][1]==X) ||
            (Matriz[0][2]==X && Matriz[1][2]==X && Matriz[2][2]==X) ||
            (Matriz[0][0]==X && Matriz[1][1]==X && Matriz[2][2]==X) ||
            (Matriz[0][2]==X && Matriz[1][1]==X && Matriz[2][0]==X))
         {
             printf ("\n\n\n\n\a\t\tJogador 2, VOCÊ VENCEU!!!\n");
             break;
         }

         if (jogadas==9) {         // Condição para que a partida termine empatada
             printf ("PARTIDA EMPATADA");
             break;
         }
     }
     return (0);

}

@arfneto jogo da velha

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Muito melhor assim :) Mas não respondeu ao que eu perguntei: que d1@b0 é jogo? Não vejo a declaração...

 

O programa não está ok. Mas não muito bom de ler, rodar ou jogar. Do ponto de vista da interface, é muito chato digitar linha e coluna se só tem 9 casinhas na tela. Podia por exemplo mostrar apenas algo como

| X | O | X |
| 4 | 5 | 6 |
| 7 | O | 9 |

E o cara digita o número da célula que quer. Linha e Coluna é exagero.

 

O programa está difícil de ler com aquela matriz de duas dimensões e aqueles IF gigantes. Se só são dois jogadores porque não usar uma matriz para cada um? Fica mais fácil de identificar vitoria e pode ficar mais fácil de ler o programa... E quando um ganha o outro perde afinal.

 

E pouco eficiente: só existem essas 8 combinações decisivas, as 3 linhas e as 3 colunas e as duas diagonais. Então pode usar constantes já na compilação e comparar com valores fixos.

  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

1 hora atrás, patricia weber disse:

é pra ser jogo da velha

 

Eu li o programa. Entendo o que é. Mas não é o clássico programa de estudante de estruturas de dados para o jogo da velha. Nesse caso é apenas a interface para controlar o jogo entre dois usuários. No mesmo micro, o que é esquisito. :) 

 

De todo modo considere o que eu sugeri. Só uns palpites.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@patricia weber   para melhorar é preciso que primeiro funcione ,  uma função para mostrar o tabuleiro  ajudaria ,  e seu código com algumas modificações poderia ser assim  :

#include <stdio.h>
#include <stdlib.h>
void mostra_o_tabuleiro( char Matriz[][3]){
    int y;
    system("cls");
    printf("  JOGO DA VELHA \n");
    for( y=0; y<3; y++ ){
        printf ("\t\t     %c | %c | %c\n",
        Matriz[y][0], Matriz[y][1], Matriz[y][2]);
        if( y < 3-1 )
            printf ("\t\t    ---+---+---  \n");
    }
}
int main (void) {
    char Matriz[3][3]={
        ' ',' ',' ',
        ' ',' ',' ',
        ' ',' ',' '};           // Declaração da matriz para o jogo
    int jogadas=0, j, y;
    while( jogadas <= 9 ){  // a letra  I  é problematica nas postagem , por isso o  Y
        mostra_o_tabuleiro(Matriz);
        printf ("\nINSIRA AS COORDENADAS, ");
        if( jogadas % 2 )
            printf ("JOGADOR 2\nLINHA: ");
        else
            printf ("JOGADOR 1\nLINHA: ");
        scanf ("%d",&y);
        y--;
        printf("COLUNA: ");
        scanf ("%d",&j);               // Parâmetros para entrada de dados da coluna
        j--;
        if( Matriz[y][j] == ' '){
            if( jogadas % 2 )//jogador 1
                Matriz[y][j] = 'X';
            else
                Matriz[y][j] = 'O';// jogador 2
            jogadas++;
        }
        if( Matriz[0][0]=='O' && Matriz[0][1]=='O' && Matriz[0][2]=='O' ||
            Matriz[1][0]=='O' && Matriz[1][1]=='O' && Matriz[1][2]=='O' ||
            Matriz[2][0]=='O' && Matriz[2][1]=='O' && Matriz[2][2]=='O' ||
            Matriz[0][0]=='O' && Matriz[1][0]=='O' && Matriz[2][0]=='O' ||
            Matriz[0][1]=='O' && Matriz[1][1]=='O' && Matriz[2][1]=='O' ||
            Matriz[0][2]=='O' && Matriz[1][2]=='O' && Matriz[2][2]=='O' ||
            Matriz[0][0]=='O' && Matriz[1][1]=='O' && Matriz[2][2]=='O' ||
            Matriz[0][2]=='O' && Matriz[1][1]=='O' && Matriz[2][0]=='O' ){
            mostra_o_tabuleiro(Matriz);
            printf("\n\a\t\tJogador 1, VOCÊ VENCEU!!!\n");
            break;
        }
        if( Matriz[0][0]=='X' && Matriz[0][1]=='X' && Matriz[0][2]=='X' ||
            Matriz[1][0]=='X' && Matriz[1][1]=='X' && Matriz[1][2]=='X' ||
            Matriz[2][0]=='X' && Matriz[2][1]=='X' && Matriz[2][2]=='X' ||
            Matriz[0][0]=='X' && Matriz[1][0]=='X' && Matriz[2][0]=='X' ||
            Matriz[0][1]=='X' && Matriz[1][1]=='X' && Matriz[2][1]=='X' ||
            Matriz[0][2]=='X' && Matriz[1][2]=='X' && Matriz[2][2]=='X' ||
            Matriz[0][0]=='X' && Matriz[1][1]=='X' && Matriz[2][2]=='X' ||
            Matriz[0][2]=='X' && Matriz[1][1]=='X' && Matriz[2][0]=='X' ){
            mostra_o_tabuleiro(Matriz);
            printf ("\n\n\n\n\a\t\tJogador 2, VOCÊ VENCEU!!!\n");
            break;
        }
        if( jogadas == 9 ){         // Condição para que a partida termine empatada
            printf ("PARTIDA EMPATADA");
            break;
        }
    }
    return 32768;
}

 

  • Curtir 1
  • Obrigado 2
Link para o comentário
Compartilhar em outros sites

Criar uma função para mostrar o tabuleiro como devair1010 fez é uma boa alternativa, dá até para aproveitar o loop e já verificar na própria função o vencedor,

 

Também dá para informar a linha e a coluna no mesmo scanf,

 

#include <stdio.h>

int imprime_matriz(char M[3][3], char j){
    int i, m=0;
    for(i=0;i<3;i++){
        printf("\t\t     %c | %c | %c\n",M[i][0],M[i][1],M[i][2]);
        if(M[i][0]==j && M[i][1]==j && M[i][2]==j) m = 1;
        if(M[0][i]==j && M[1][i]==j && M[2][i]==j) m = 1;
        
        if(i < 3-1) printf("\t\t    ---+---+---  \n");
    }
    if(M[0][0]==j && M[1][1]==j && M[2][2]==j) m = 1;
    if(M[0][2]==j && M[1][1]==j && M[2][0]==j) m = 1;

    return m;
}

int main(void) {
     char J = 'X', Matriz[3][3] = {
         ' ',' ',' ',' ',' ',' ',' ',' ',' '};
     int jogadas = 0, j, i;

     while(jogadas <= 9){
        printf("  JOGO DA VELHA \n");
        int m = imprime_matriz(Matriz, J);
         
        if(m){
            printf("O JOGADOR %d VENCEU!",((jogadas-1) % 2)+1);
            break;
        }
        printf("JOGADOR %d\n(LINHA,COLUNA): ",(jogadas % 2)+1);
        scanf("%d,%d",&i,&j);

        if(Matriz[i-1][j-1] == ' '){
            J = 'X';
            if(jogadas % 2) J = 'O';
            Matriz[i-1][j-1] = J;
            jogadas++;
         }
         if(jogadas==9){printf("PARTIDA EMPATADA");break;}
     }
     return 0;
 }

 

  • Obrigado 3
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

Como se tornar um desenvolvedor full-stack

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!