Ir ao conteúdo
  • Cadastre-se
Farkout

C Jogo da velha PC vs Player

Recommended Posts

Bom eu já fiz esse algoritmo ais n estou conseguindo fazer a parte de jogar contra o PC eu quero retirar a parte do player 2 e colocar a do PC.

 

#include <stdio.h>
#include <stdlib.h>


char tela[3][3];
int i, j, x, y, teste=1, pl, velha=0;

void disp(void);
void testa(int pl);
void play1(void);
void play2(void); 

void main()
{
   for(i=0;i<3;i++)
      for(j=0;j<3;j++)
         tela[j]=' ';
      
      while(teste!=0)
      {
          
         if(teste!=0)
         {
                  
            play1();
            if(tela[x][y]==' ')
            {
               tela[x][y]='X';
               system("cls");
               velha++;
               testa(pl);      
            }
            else
            {
               system("cls");
               printf("Esta posicao já esta em uso!!\n"); 
               printf("Pressione qualquer tecla para entrar novo valor\n");
               getch();
               system("cls");
               play1();
            }
         
         
         }
         if(teste!=0)
         {
                     
            play2();
            if(tela[x][y]==' ')
            {
               velha++;
               tela[x][y]='O';
               system("cls");
               testa(pl);   
            }
            else
            {
               system("cls");
               printf("Esta posicao já esta em uso!!\n"); 
               printf("Pressione qualquer tecla para entrar novo valor\n");
               getch();
               system("cls");
               play2();
            }
         
         
         }
       
        }

}

void disp(void)
{
   printf("   1   2   3   Y\n");
   printf(" 1 %c | %c | %c \n",tela[0][0],tela[0][1],tela[0][2]);
   printf("  ---|---|--- \n ");
   printf("2 %c | %c | %c \n",tela[1][0],tela[1][1],tela[1][2]);
   printf("  ---|---|--- \n ");
   printf("3 %c | %c | %c \n",tela[2][0],tela[2][1],tela[2][2]);

   printf("X\n");


}

void testa(int pl)
{
         if(x==0)
         if((tela[0][0]==tela[0][1]) && (tela[0][1]==tela[0][2]))
         {
            disp();
            printf("JOGADOR **%i** GANHOU!! \n",pl);
         teste=0;
         }
         
         if(x==1)
         if((tela[1][0]==tela[1][1]) && (tela[1][1]==tela[1][2]))
         {
            disp();
            printf("JOGADOR **%i** GANHOU!! \n",pl);
            teste=0;
         }
         if(x==2)
         if((tela[2][0]==tela[2][1]) && (tela[2][1]==tela[2][2]))
         {
            disp();
            printf("JOGADOR **%i** GANHOU!! \n",pl);
            teste=0;
         }
        

         if(y==0)
         if((tela[0][0]==tela[1][0]) && (tela[1][0]==tela[2][0]))
         {
            disp();
            printf("JOGADOR **%i** GANHOU!! \n",pl);
            teste=0;
         }
         
         if(y==1)
         if((tela[0][1]==tela[1][1]) && (tela[1][1]==tela[2][1]))
         {
            disp();
            printf("JOGADOR **%i** GANHOU!! \n",pl);
            teste=0;
         }
         if(y==2)
         if((tela[0][2]==tela[1][2]) && (tela[1][2]==tela[2][2]))
         {
            disp();
            printf("JOGADOR **%i** GANHOU!! \n",pl);
            teste=0;
         }
         
          
         if(((x==0)&&(y==0))||((x==1)&&(y==1))||((x==2)&&(y==2)))
         {
         if((tela[0][0]==tela[1][1]) && (tela[0][0]==tela[2][2]))
         {
            disp();
            printf("JOGADOR **%i** GANHOU!! \n",pl);
            teste=0;
         }
         }
         
         
         if(((x==0)&&(y==2))||((x==1)&&(y==1))||((x==2)&&(y==0)))
         {
         if((tela[0][2]==tela[1][1]) && (tela[0][2]==tela[2][0]))
         {
            disp();
            printf("JOGADOR **%i** GANHOU!! \n",pl);
            teste=0;
         }
         }

}

void play1(void)
{
   disp();
   printf("Jogador 1: Escolha uma linha: ");
   scanf("%i",&x);
   printf("Jogador 1: Escolha uma coluna: ");
   scanf("%i",&y);
   pl=1;
   x--;
   y--;
      
}

void play2(void)
{
   disp();      
   printf("Jogador 2: Escolha uma linha: ");
   scanf("%i",&x);
   printf("Jogador 2: ERscolha uma coluna: ");
   scanf("%i",&y);
   pl=2;
   x--;
   y--;

}

 

<>  

Compartilhar este post


Link para o post
Compartilhar em outros sites

Claramente código copiado com apenas algumas strings modificadas:

https://www.vivaolinux.com.br/script/Jogo-da-Velha-Bem-simples

(postado em 2003)

 

E para fazer o computador jogar pesquise sobre algoritmo Minimax, ou no caso de jogo da velha também dá pra usar o algoritmo Negamax que é uma simplificação do Minimax.

  • Obrigado 2
  • Haha 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×