Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Alex Fernandes

[Código] Jogo da Velha

Recommended Posts

Este jogo fui produzido para ser apresentado como um trabalho a disciplica de linguagem de programação em c da faculdade IAPEC.

Estou postando ele aqui para que outras pessoas possam utilizar esse trabalho como base para outros e como base para aprendizado.

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

//Variaveis do tipo caracter
char vel[][4] = { {' ',' ',' '},{' ',' ',' '}, {' ',' ',' '} };
//Variaveis do tipo inteiro
int random10,j1, j2, you=0, pc=0, k, z, imprime(void), lerp(void), troca(int s, int t), xwin(void), owin(void), jogapc(void), resetar(void); 

//Essa é a função que imprime a tela do jogo.
int imprime() 
{ 
printf("\n                       IAPEC - FACULDADE DE TECNOLOGIA");
printf("\n              CURSO SUPERIOR TECNOLOGICO EM REDES DE COMPUTADORES");
printf("\n         TRABALHO APRESENTADO A DISCIPLICA DE LINGUAGEM DE PROGRAMACAO - C");
printf("\n               ALUNOS: ALEX DA SILVA FERNANDES E EMMERSON LOYDE\n\n\n");
printf(" Voce: %d x Computador: %d \n\n", you, pc); //Estatisticas do jogo.
printf("     Y1  Y2  Y3\n\n"); //Escreve y1 y2 y3 e pula duas linhas

//For para escrever as linhas e os x1 x2 e x3 ordenadamente
for(z=0; z<3; z++) { //z recebe 0; enquanto z menor que 3; z recebe z+1
   if(z==0) printf("X1"); //se z igual a o escrever x1
   if(z==1) printf("X2"); //se z igual a 1 escrever x2
   if(z==2) printf("X3"); //se z igual a 2 escrever x3
   for(k=0; k<3; k++) { //k recebe 0; enquanto k menor que 3; k recebe k+1
      if(k==0) printf("   %c ", vel[z][k]); //se k igual a 0 escrever posição da matriz vel
      else printf(" %c ", vel[z][k]); //senão escrever posição da matriz vel
      if(k<2) printf("|"); //se k menor que 2 escrever uma barra vertical
      } 
   if(z<2) printf("\n    -----------\n"); //se z menor que 2 escrever pula uma linha ----- pula outra linha
   } 
   printf("\n\n"); //escrever pula duas linhas
} 


//Função que verifica se o campo já está preenchido com x ou o
int troca(int s, int t) { 

// printf("\n %i  %i  ", s, t); //simplesmente para debug

if(vel[s-49][t-49]=='x' || vel[s-49][t-49]=='o') //se posição da matriz vel for x ou o
{ 
   printf("\n\nEspaco ja preenchido\n"); //escreve Espaço já preenchido
   lerp(); //chama a função lerp
} 
if(vel[s-49][t-49]==' ') vel[s-49][t-49]='x'; //se posição da matriz vel estiver limpa, recebe x
} 

int lerp() {  

int i,j;

printf("\nDigite as coordenadas de sua jogada:\n\nX:"); 

i=getche(); 

printf("\nY:"); 
j=getche(); 

if(i>=49 && i<52 && j>=49 && j<52) troca(i,j); 
else { 
      printf("\n\nERRO!\n\nCoordenada invalida.\n\n"); 
      lerp(); 
      } 

} 


int xwin() {
           printf("\nVoce GANHOU!\n");
           you++; 
           resetar(); 
} 


int owin() { 
printf("\nVoce PERDEU!\n"); 
pc++; 
resetar(); 
} 


//PC joga
int jogapc() { 

int x=1; //PC gasta sua jogada.
 
      if(vel[2][2]=='x' && vel[0][2]=='x') 
         if(vel[1][2]==' ' && x) 
         { 
            vel[1][2]='o'; 
            x=0; 
         } 

      if(vel[2][0]=='x' && vel[0][2]=='x') 
         if(vel[1][0]==' ' && x) 
         { 
            vel[1][0]='o'; 
            x=0; 
         }   

   /*ATAQUES*/ 

      /* ataques => diagonal secundária */ 

      if(vel[2][0]=='o' && vel[1][1]=='o') 
         if(vel[0][2]==' ' && x) 
         { 
            vel[0][2]='o'; 
            x=0; 
         } 
      if(vel[0][2]=='o' && vel[2][2]=='o') 
         if(vel[2][0]==' ' && x) 
         { 
            vel[2][0]='o'; 
            x=0; 
         } 
      if(vel[2][0]=='o' && vel[0][2]=='o') 
         if(vel[1][1]==' ' && x) 
         { 
            vel[1][1]='o'; 
            x=0; 
         } 

      /* ataques => diagonal principal */ 

      if(vel[0][0]=='o' && vel[1][1]=='o') 
         if(vel[2][2]==' ' && x) 
         { 
            vel[2][2]='o'; 
            x=0; 
         } 
      if(vel[1][1]=='o' && vel[2][2]=='o') 
         if(vel[0][0]==' ' && x) 
         { 
            vel[0][0]='o'; 
            x=0; 
         } 
      if(vel[0][0]=='o' && vel[2][2]=='o') 
         if(vel[1][1]==' ' && x) 
         { 
            vel[1][1]='o'; 
            x=0; 
         } 

      /* ataques => coluna 1: */ 

      if(vel[0][0]=='o' && vel[1][0]=='o') 
         if(vel[2][0]==' ' && x) 
         { 
            vel[2][0]='o'; 
            x=0; 
         } 
      if(vel[1][0]=='o' && vel[2][0]=='o') 
         if(vel[0][0]==' ' && x) 
         { 
            vel[0][0]='o'; 
            x=0; 
         } 
      if(vel[0][0]=='o' && vel[2][0]=='o') 
         if(vel[1][0]==' ' && x) 
         { 
            vel[1][0]='o'; 
            x=0; 
         } 

      /* ataques => coluna 2: */ 

      if(vel[0][1]=='o' && vel[1][1]=='o') 
         if(vel[2][1]==' ' && x) 
         { 
            vel[2][1]='o'; 
            x=0; 
         } 
      if(vel[1][1]=='o' && vel[2][1]=='o') 
         if(vel[0][1]==' ' && x) 
         { 
            vel[0][1]='o'; 
            x=0; 
         } 
      if(vel[0][1]=='o' && vel[2][1]=='o') 
         if(vel[1][1]==' ' && x) 
         { 
            vel[1][1]='o'; 
            x=0; 
         } 

      /* ataques => coluna 3: */ 

      if(vel[0][2]=='o' && vel[1][2]=='o') 
         if(vel[2][2]==' ' && x) 
         { 
            vel[2][2]='o'; 
            x=0; 
         } 
      if(vel[1][2]=='o' && vel[2][2]=='o') 
         if(vel[0][2]==' ' && x) 
         { 
            vel[0][2]='o'; 
            x=0; 
         } 
      if(vel[0][2]=='o' && vel[2][2]=='o') 
         if(vel[1][2]==' ' && x) 
         { 
            vel[1][2]='o'; 
            x=0; 
         } 

      /* ataques => linha 1: */ 

      if(vel[0][0]=='o' && vel[0][1]=='o') 
         if(vel[0][2]==' ' && x) 
         { 
            vel[0][2]='o'; 
            x=0; 
         } 
      if(vel[0][1]=='o' && vel[0][2]=='o') 
         if(vel[0][0]==' ' && x) 
         { 
            vel[0][0]='o'; 
            x=0; 
         } 
      if(vel[0][0]=='o' && vel[0][2]=='o') 
         if(vel[0][1]==' ' && x) 
         { 
            vel[0][1]='o'; 
            x=0; 
         } 

      /* ataques => linha 2: */ 

      if(vel[1][0]=='o' && vel[1][1]=='o') 
         if(vel[1][2]==' ' && x) 
         { 
            vel[1][2]='o'; 
            x=0; 
         } 
      if(vel[1][1]=='o' && vel[1][2]=='o') 
         if(vel[1][0]==' ' && x) 
         { 
            vel[1][0]='o'; 
            x=0; 
         } 
      if(vel[1][0]=='o' && vel[1][2]=='o') 
         if(vel[1][1]==' ' && x) 
         { 
            vel[1][1]='o'; 
            x=0; 
         } 

      /* ataues => linha 3: */ 

      if(vel[2][0]=='o' && vel[2][1]=='o') 
         if(vel[2][2]==' ' && x) 
         { 
            vel[2][2]='o'; 
            x=0; 
         } 
      if(vel[2][1]=='o' && vel[2][2]=='o') 
         if(vel[2][0]==' ' && x) 
         { 
            vel[2][0]='o'; 
            x=0; 
         } 
      if(vel[2][0]=='o' && vel[2][2]=='o') 
         if(vel[2][1]==' ' && x) 
         { 
            vel[2][1]='o'; 
            x=0; 
         } 

/* JOGADA 1 */ 

if(j1 && x) 
{ 
if(vel[0][0]=='x') 
   { 
      vel[1][1]='o'; 
      x=0; 
      j1=0; 
   } 
if(vel[1][1]=='x') 
   { 
      vel[2][0]='o'; 
      x=0; 
      j1=0; 
   } 
if(vel[2][2]=='x') 
   { 
      vel[1][1]='o'; 
      x=0; 
      j1=0; 
   } 
if(vel[0][1]=='x') 
   { 
      vel[1][1]='o'; 
      x=0; 
      j1=0; 
   } 
if(vel[0][2]=='x') 
   { 
      vel[1][1]='o'; 
      x=0; 
      j1=0; 
   } 
if(vel[1][0]=='x') 
   { 
      vel[1][1]='o'; 
      x=0; 
      j1=0; 
   } 
if(vel[1][2]=='x') 
   { 
      vel[1][1]='o'; 
      x=0; 
      j1=0; 
   } 
if(vel[2][0]=='x') 
   { 
      vel[1][1]='o'; 
      x=0; 
      j1=0; 
   } 
if(vel[2][1]=='x') 
   { 
      vel[1][1]='o'; 
      x=0; 
      j1=0; 
   } 
} 

      /* DEFESAS */ 

      /* defesas => diagonal secundária */ 

      if(vel[2][0]=='x' && vel[1][1]=='x') 
         if(vel[0][2]==' ' && x) 
         { 
            vel[0][2]='o'; 
            x=0; 
         } 
      if(vel[0][2]=='x' && vel[2][2]=='x') 
         if(vel[2][0]==' ' && x) 
         { 
            vel[2][0]='o'; 
            x=0; 
         } 
      if(vel[2][0]=='x' && vel[0][2]=='x') 
         if(vel[1][1]==' ' && x) 
         { 
            vel[1][1]='o'; 
            x=0; 
         } 

      /* defesas => diagonal principal */ 

      if(vel[0][0]=='x' && vel[1][1]=='x') 
         if(vel[2][2]==' ' && x) 
         { 
            vel[2][2]='o'; 
            x=0; 
         } 
      if(vel[1][1]=='x' && vel[2][2]=='x') 
         if(vel[0][0]==' ' && x) 
         { 
            vel[0][0]='o'; 
            x=0; 
         } 
      if(vel[0][0]=='x' && vel[2][2]=='x') 
         if(vel[1][1]==' ' && x) 
         { 
            vel[1][1]='o'; 
            x=0; 
         } 

      /* defesas => coluna 1: */ 

      if(vel[0][0]=='x' && vel[1][0]=='x') 
         if(vel[2][0]==' ' && x) 
         { 
            vel[2][0]='o'; 
            x=0; 
         } 
      if(vel[1][0]=='x' && vel[2][0]=='x') 
         if(vel[0][0]==' ' && x) 
         { 
            vel[0][0]='o'; 
            x=0; 
         } 
      if(vel[0][0]=='x' && vel[2][0]=='x') 
         if(vel[1][0]==' ' && x) 
         { 
            vel[1][0]='o'; 
            x=0; 
         } 

      /* defesas => coluna 2: */ 

      if(vel[0][1]=='x' && vel[1][1]=='x') 
         if(vel[2][1]==' ' && x) 
         { 
            vel[2][1]='o'; 
            x=0; 
         } 
      if(vel[1][1]=='x' && vel[2][1]=='x') 
         if(vel[0][1]==' ' && x) 
         { 
            vel[0][1]='o'; 
            x=0; 
         } 
      if(vel[0][1]=='x' && vel[2][1]=='x') 
         if(vel[1][1]==' ' && x) 
         { 
            vel[1][1]='o'; 
            x=0; 
         } 

      /* defesas => coluna 3: */ 

      if(vel[0][2]=='x' && vel[1][2]=='x') 
         if(vel[2][2]==' ' && x) 
         { 
            vel[2][2]='o'; 
            x=0; 
         } 
      if(vel[1][2]=='x' && vel[2][2]=='x') 
         if(vel[0][2]==' ' && x) 
         { 
            vel[0][2]='o'; 
            x=0; 
         } 
      if(vel[0][2]=='x' && vel[2][2]=='x') 
         if(vel[1][2]==' ' && x) 
         { 
            vel[1][2]='o'; 
            x=0; 
         } 

      /* defesas => linha 1: */ 

      if(vel[0][0]=='x' && vel[0][1]=='x') 
         if(vel[0][2]==' ' && x) 
         { 
            vel[0][2]='o'; 
            x=0; 
         } 
      if(vel[0][1]=='x' && vel[0][2]=='x') 
         if(vel[0][0]==' ' && x) 
         { 
            vel[0][0]='o'; 
            x=0; 
         } 
      if(vel[0][0]=='x' && vel[0][2]=='x') 
         if(vel[0][1]==' ' && x) 
         { 
            vel[0][1]='o'; 
            x=0; 
         } 

      /* defesas => linha 2: */ 

      if(vel[1][0]=='x' && vel[1][1]=='x') 
         if(vel[1][2]==' ' && x) 
         { 
            vel[1][2]='o'; 
            x=0; 
         } 
      if(vel[1][1]=='x' && vel[1][2]=='x') 
         if(vel[1][0]==' ' && x) 
         { 
            vel[1][0]='o'; 
            x=0; 
         } 
      if(vel[1][0]=='x' && vel[1][2]=='x') 
         if(vel[1][1]==' ' && x) 
         { 
            vel[1][1]='o'; 
            x=0; 
         } 

      /* defesas => linha 3: */ 

      if(vel[2][0]=='x' && vel[2][1]=='x') 
         if(vel[2][2]==' ' && x) 
         { 
            vel[2][2]='o'; 
            x=0; 
         } 
      if(vel[2][1]=='x' && vel[2][2]=='x') 
         if(vel[2][0]==' ' && x) 
         { 
            vel[2][0]='o'; 
            x=0; 
         } 
      if(vel[2][0]=='x' && vel[2][2]=='x') 
         if(vel[2][1]==' ' && x) 
         { 
            vel[2][1]='o'; 
            x=0; 
         } 

   /* JOGADA 2 */ 

if(vel[0][0]=='x' && vel[1][1]=='x' && vel[2][2]=='o') 
{ 
   if(x) 
   { 
      if(vel[2][0]==' ') 
      { 
         vel[2][0]='o'; 
         x=0; 
      } 
      else 
      { 
         if(vel[0][2]==' ') 
         { 
            vel[0][2]='o'; 
            x=0; 
         } 
      } 
   } 
} 

if(vel[0][0]=='x' && vel[2][1]=='x') 
{ 
   if(x && j2) 
   { 
      if(vel[2][0]==' ') 
      { 
         vel[2][0]='o'; 
         x=0; 
         j2=0; 
      } 
      else 
      { 
         if(vel[1][0]==' ') 
         { 
            vel[1][0]='o'; 
            x=0; 
            j2=0; 
         } 
      } 
   } 
} 

if(vel[0][0]=='x' && vel[1][2]=='x') 
{ 
   if(x && j2) 
   { 
      if(vel[0][2]==' ') 
      { 
         vel[0][2]='o'; 
         x=0; 
         j2=0; 
      } 
      else 
      { 
         if(vel[0][1]==' ') 
         { 
            vel[0][1]='o'; 
            x=0; 
            j2=0; 
         } 
      } 
   } 
} 

if(vel[0][1]=='x' && vel[1][0]=='x') 
{ 
   if(x && j2) 
   { 
      if(vel[0][0]==' ') 
      { 
         vel[0][0]='o'; 
         x=0; 
         j2=0; 
      } 
      else 
      { 
         if(vel[1][1]==' ') 
         { 
            vel[1][1]='o'; 
            x=0; 
            j2=0; 
         } 
      } 
   } 
} 

if(vel[0][1]=='x' && vel[2][0]=='x') 
{ 
   if(x && j2) 
   { 
      if(vel[1][1]==' ') 
      { 
         vel[1][1]='o'; 
         x=0; 
         j2=0; 
      } 
      else 
      { 
         if(vel[0][0]==' ') 
         { 
            vel[0][0]='o'; 
            x=0; 
            j2=0; 
         } 
      } 
   } 
} 

if(vel[0][1]=='x' && vel[1][2]=='x') 
{ 
   if(x && j2) 
   { 
      if(vel[0][2]==' ') 
      { 
         vel[0][2]='o'; 
         x=0; 
         j2=0; 
      } 
      else 
      { 
         if(vel[1][1]==' ') 
         { 
            vel[1][1]='o'; 
            x=0; 
            j2=0; 
         } 
      } 
   } 
} 

if(vel[0][1]=='x' && vel[2][2]=='x') 
{ 
   if(x && j2) 
   { 
      if(vel[0][2]==' ') 
      { 
         vel[0][2]='o'; 
         x=0; 
         j2=0; 
      } 
      else 
      { 
         if(vel[0][0]==' ') 
         { 
            vel[0][0]='o'; 
            x=0; 
            j2=0; 
         } 
      } 
   } 
} 

if(vel[0][2]=='x' && vel[1][0]=='x') 
{ 
   if(x && j2) 
   { 
      if(vel[0][0]==' ') 
      { 
         vel[0][0]='o'; 
         x=0; 
         j2=0; 
      } 
      else 
      { 
         if(vel[1][1]==' ') 
         { 
            vel[1][1]='o'; 
            x=0; 
            j2=0; 
         } 
      } 
   } 
} 

if(vel[0][2]=='x' && vel[2][1]=='x') 
{ 
   if(x && j2) 
   { 
      if(vel[2][2]==' ') 
      { 
         vel[2][2]='o'; 
         x=0; 
         j2=0; 
      } 
      else 
      { 
         if(vel[1][1]==' ') 
         { 
            vel[1][1]='o'; 
            x=0; 
            j2=0; 
         } 
      } 
   } 
} 

if(x) 
{ 
   int d=0; 
   int f=0; 

   for(d=0; d<3; d++) 
   { 
      for(f=0; f<3; f++) 
      { 
         if(vel[d][f]==' ') 
            { 
            vel[d][f]='o'; 
            x=0; 
            } 
         if(x==0) break; 
      } 
   if(x==0) break; 
   } 

   if(x) 
   { 
      printf("\nEMPATE.\n"); 
      resetar(); 
   }
} 
} 

int resetar() 
{ 
   int d, f; 
   for(d=0; d<3; d++) 
      { 
      for(f=0; f<3; f++) 
         { 
            vel[d][f]=' '; 
         } 
      }
   j1=1; 
   j2=1;
   getche();   
   system("CLS");   
   imprime();

      
} 

int main() { 

int t; 

imprime(); 

j1=1; 
j2=1; 

do{ 

lerp(); 

system("CLS"); 
imprime(); 
for(t=0; t<99000000; t++) ; 
jogapc();
system("CLS"); 
imprime();

if(vel[0][0]=='x' && vel[0][1]=='x' && vel[0][2]=='x' || 
vel[1][0]=='x' && vel[1][1]=='x' && vel[1][2]=='x' || 
vel[2][0]=='x' && vel[2][1]=='x' && vel[2][2]=='x' || 

vel[0][0]=='x' && vel[1][0]=='x' && vel[2][0]=='x' || 
vel[0][1]=='x' && vel[1][1]=='x' && vel[2][1]=='x' || 
vel[0][2]=='x' && vel[1][2]=='x' && vel[2][2]=='x' || 

vel[0][0]=='x' && vel[1][1]=='x' && vel[2][2]=='x' || 
vel[2][0]=='x' && vel[1][1]=='x' && vel[0][2]=='x') xwin(); 

if(vel[0][0]=='o' && vel[0][1]=='o' && vel[0][2]=='o' || 
vel[1][0]=='o' && vel[1][1]=='o' && vel[1][2]=='o' || 
vel[2][0]=='o' && vel[2][1]=='o' && vel[2][2]=='o' || 

vel[0][0]=='o' && vel[1][0]=='o' && vel[2][0]=='o' || 
vel[0][1]=='o' && vel[1][1]=='o' && vel[2][1]=='o' || 
vel[0][2]=='o' && vel[1][2]=='o' && vel[2][2]=='o' || 

vel[0][0]=='o' && vel[1][1]=='o' && vel[2][2]=='o' || 
vel[2][0]=='o' && vel[1][1]=='o' && vel[0][2]=='o') owin(); 
}

while(1);

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Título Editado:

JOGO DA VELHA http://forum.imasters.com.br/public/style_emoticons/default/seta.gif [Código] Jogo da Velha

 

Tópico Movido:

C/C++ http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Artigos e Laboratório de Códigos fontes (C/C++)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este foi um trabalho que fiz sobre arvore de jogos, estou cursando o quarto periodo de sistemas de informação aproveitem!! foi todo bem trabalhado e so uma funçao ainda nao terminei por falta de tempo que foi a de fazer a maquina jogar sozinha.... Tirando isso o resto inteiro funciona.... Valeu

 

 

#include<stdio.h>       //bibliotecas
#include<string.h>
main(){                // corpo principal
       int i,j,k,n;   //variaveis
       int quadro[3][3];       
       int opcao;
       int simbolo;
       int continua;
       char nome1[20];
       char nome2[20];
       int p1,p2;
       int fim;
       int velha;
       int invalido;
       int vence1, vence2;
       int resp;       
       int jogada1,jogada2;
       int ponto1,ponto2;       
       int ajuda;
       int melhor;
       int cont;
      
              
        comeco:
        system("cls");
        fflush(stdin); //quadro inicial de boas vindas
        printf(" _____________________________________________________________________________\n");
        printf("|                                                                             |\n");       
        printf("|\t ________________________________________________________________     |\n");
        printf("|\t|             ARVORE DE JOGOS - O JOGO DA VELHA                  |    |\n");
        printf("|\t|________________________________________________________________|    |\n");
        printf("|                                                                             |\n");
        printf("|\t ________________________________________________________________     |\n");
        printf("|\t|  Programa Desenvolvido Para Finalidade Academica               |    |\n");
        printf("|\t|  Utilizando-se plataforma Windows                              |    |\n");
        printf("|\t|  Ferramenta Utilizada: Dev - C ++                              |    |\n");
        printf("|\t|  Desenvolvedor: Vinicius da Silva Barbosa                      |    |\n");
        printf("|\t|  Graduando do curso de Sistemas de Informacao -  FAVALE        |    |\n");
        printf("|\t|  Algoritmos e Estrutura de Dados II           -  Periodo 4     |    |\n");
        printf("|\t|  Carangola, MG - Outubro/2009                                  |    |\n");
        printf("|\t|________________________________________________________________|    |\n");
        printf("|                                                                             |\n");
        printf("|                                                                             |\n");
        printf("|                                                                             |\n");
        printf("|                                                                             |\n");
        printf("|                  PARA MELHOR RESOLUCAO, MAXIMIZE A TELA E                   |\n");
        printf("|                      PRESSIONE UMA TECLA PARA INICIAR!                      |\n");
        printf("|                                                                             |\n");
        printf("|                                                                             |\n");
        printf("|_____________________________________________________________________________|\n");
        getchar(); 
 
        while (resp != 4){           //estrutura condicional que roda o menu
              inicio:
              continua = 0;
              k = 0;
              resp = 0;
              p1 = 1;
              p2 = 1; 
              jogada1 = 0;
              jogada2 = 0;
              ponto1 = 0;
              ponto2 = 0;
              ajuda = 0;
              fim =0;
              velha = 0;
              invalido = 0;
              vence1 = 0;
              vence2 = 0; 
              melhor = 1;
             
             
              novo:
              system("cls");
              printf(" _____________________________________________________________________________\n");
              printf("|                                                                             |\n");       
              printf("|      _________________________________________________________________      |\n");
              printf("|     |               ARVORE DE JOGOS - O JOGO DA VELHA                 |     |\n");
              printf("|     |_________________________________________________________________|     |\n");
              printf("|                                                                             |\n");
              printf("|                                                                             |\n");
              printf("|                           |------->MENU<-------|                            |\n");
              printf("|                           |____________________|                            |\n");
              printf("|                           | 1 - JOGO RAPIDO!   |                            |\n");
              printf("|                           | 2 - MELHOR DE 3!   |                            |\n");
              printf("|                           | 3 - INICIAL!       |                            |\n");
              printf("|                           | 4 - SAIR!          |                            |\n");
              printf("|                           |____________________|                            |\n");
              printf("|                                                                             |\n");
              printf("|                                                                             |\n");
              printf("|                                                                             |\n");
              printf("|_____________________________________________________________________________|\n");              
              printf("                          Agora, entre com sua opcao: ");
              scanf("%d",&resp);
              if((resp > 4)||(resp < 1)){
                   printf("\n\n\t\t\t        >>  OPCAO INVALIDA!\n\t\t\t>>  PRESSIONE ENTER E TENTE OUTRA VEZ!\n\n\n\n\n\n\n\n\n\n");
                   system("PAUSE");
                   goto inicio;   
              }              
        
              switch(resp){                  //avalia as opcoes digitadas
                    case 2:
                           melhor = 1;
                           for (k=0; k<3; k++){
                           melhor ++;
                           jogada1 = 0;
                           jogada2 = 0;
                           if (melhor != 0)
                                goto pula;
                           
                           
                           rapido:
                           melhor = 0;
                           pula:
                           continua = 0;
                           if (k != 0)
                                goto primeiro;
                           fim = 0;
                           jogada1 = 0;
                           jogada2 = 0;
                           
                           while(continua == 0){
                                 repete:         
                                 ajuda = 0;
                                 system("cls");
                                 printf(" _____________________________________________________________________________\n");
                                 printf("|                                                                             |\n");       
                                 printf("|      _________________________________________________________________      |\n");
                                 printf("|     |               ARVORE DE JOGOS - O JOGO DA VELHA                 |     |\n");
                                 printf("|     |_________________________________________________________________|     |\n");
                                 printf("|                                                                             |\n");
                                 printf("|                                                                             |\n");
                                 printf("|              ____________________        ____________________               |\n");
                                 printf("|             |ESCOLHA SEU SIMBOLO |      |ESCOLHA SEU OPONENTE|              |\n");
                                 printf("|             |____________________|      |____________________|              |\n");
                                 printf("|             | >> 1 p/jogar com 1 |      | >> 1 = MAQUINA     |              |\n");
                                 printf("|             | >> 2 p/jogar com 2 |      | >> 2 = PLAYER 2    |              |\n");
                                 printf("|             |                    |      | >> 3 = VOLTAR      |              |\n");
                                 printf("|             |____________________|      |____________________|              |\n");
                                 printf("|                                                                             |\n");
                                 printf("|                                                                             |\n");
                                 printf("|_____________________________________________________________________________|\n");
                                 printf("\n\n               Digite sua opcao:           Digite sua opcao: \n");
                                 printf("                                 ");
                                 fflush(stdin);
                                 scanf("%d",&simbolo);
                                 if (simbolo == 1){
                                      p1 = 1; 
                                      p2 = 2;                                  
                                 }
                                 else{
                                      p2 = 1;
                                      p1 = 2;
                                 }
                                 printf("                                                             ");
                                 scanf("%d",&opcao);   
                                 if ((opcao > 3)||(opcao < 1)||(simbolo > 2)||(simbolo < 1)){
                                      printf("\n\n\t\t\t        >>  OPCAO INVALIDA!\n\t\t\t>>  PRESSIONE ENTER E TENTE OUTRA VEZ!\n\n\n\n\n\n\n\n\n\n");
                                      system("PAUSE");
                                      goto repete;
                                 }
                                 switch(opcao){
                                       case 1:
                                             strcpy(nome2,"MAQUINA"); 
                                             ajuda = 1;                                                                 
                                       break;  
                                       case 2:
                                             strcpy(nome2,"JOGADOR 2");                        
                                       break; 
                                       case 3:
                                             continua = 3;
                                       break;        
                                 }
                                 
                                 if (continua == 3 ){
                                      printf("\n\n\t\t   >>  VOCE OPTOU POR VOLTAR AO MENU INICIAL!\n\t\t     >>  PRESSIONE ENTER E TENTE OUTRA VEZ!\n\n\n\n\n\n\n\n\n\n");
                                      system("PAUSE");
                                      goto novo;
                                 }
                                 
                                 else{                        
                                      printf(" _____________________________________________________________________________\n");
                                      printf("|                                                                             |\n"); 
                                      printf("|                                                                             |\n");    
                                      printf("|>>  NOME DO JOGADOR 1 : ");
                                      fflush(stdin);
                                      fgets(nome1,20,stdin);
                                      printf("\n|                                                                             |\n");  
                                      if (ajuda == 1){
                                           fflush(stdin);
                                           printf("|>>  SEU ADVERSARIO SERA A MAQUINA!                                           |\n");
                                      }
                                      else{
                                           printf("|>>  NOME DO JOGADOR 2 : ");
                                           fflush(stdin);
                                           fgets(nome2,20,stdin);
                                      }
                                      printf("\n|_____________________________________________________________________________|\n\n\n");
                                      printf("\n\n\t\t   >>  PRESSIONE ENTER PARA COMECAR A JOGAR!\n\n\n\n\n\n\n\n\n\n\n\n\n");
                                      system("PAUSE");       //quadro jogo da velha
                                      primeiro:
                                      fim = 0;
                                      for (i=0; i<3; i++){
                                           for (j=0; j<3; j++){
                                               quadro[i][j] = 0;
                                           }
                                      }    
                                      tabela:
                                      resultado:
                                      invalido = 0;                                        
                                      system("cls");
                                      printf(" _____________________________________________________________________________\n");
                                      printf("|                                                                             |\n"); 
                                      printf("|                           PLACAR E DADOS DO JOGO                            |\n");
                                      printf("|_____________________________________________________________________________|\n");
                                      printf("\n");
                                      printf("   >>JOGADOR 1 = %s   >>JOGADOR 2 = %s\n",nome1,nome2); 
                                      printf("\n");                  
                                      printf("\n      >>JOGADOR 1 JOGA COM : %d       >>JOGADOR 2 JOGA COM : %d",p1,p2);
                                      printf("\n      >>JOGADOR 1 JOGADAS  : %d       >>JOGADOR 2 JOGADAS  : %d",jogada1,jogada2);
                                      printf("\n      >>JOGADOR 1 PONTOS   : %d       >>JOGADOR 2 PONTOS   : %d",ponto1,ponto2);
                                      printf("\n _____________________________________________________________________________\n");
                                      printf("|   >>HORIZONTAL = NUMERO DE COLUNA                                           |\n");
                                      printf("|   >>VERTICAL   = NUMERO DE LINHA                                            |\n");
                                      printf("|_____________________________________________________________________________|\n\n\n\n");
                                      printf("\n\n\n");
                                      printf("       _________________________________________________________________     \n");
                                      printf("      |               ARVORE DE JOGOS - O JOGO DA VELHA                 |    \n");
                                      printf("      |_________________________________________________________________|    \n");
                                      printf("\n\n");
                                      printf("\t\t\t        1       2      3\n\n\n");
                                      printf("\n");
                                      printf("\t\t\t            |      |      \n");
                                      printf("\t\t\t1        %d  |   %d  |   %d  \n",quadro[0][0],quadro[0][1],quadro[0][2]);
                                      printf("\t\t\t      ______|______|______\n");
                                      printf("\t\t\t            |      |      \n");
                                      printf("\t\t\t2        %d  |   %d  |   %d  \n",quadro[1][0],quadro[1][1],quadro[1][2]);
                                      printf("\t\t\t      ______|______|______\n");
                                      printf("\t\t\t            |      |      \n");
                                      printf("\t\t\t3        %d  |   %d  |   %d  \n",quadro[2][0],quadro[2][1],quadro[2][2]);
                                      printf("\t\t\t            |      |      \n");
                                      printf("\n\n\n"); 
                                      if (fim == 1)
                                           goto baixo;
                                      if (jogada1 > jogada2)           //determina qual a vez de cada jogador  -> jogador 1
                                           goto jogador2;              
                                      printf("\n\t\t\t>>JOGADOR 1 COLUNA A MARCAR = ");
                                      scanf("%d",&j);
                                      printf("\n\t\t\t>>JOGADOR 1 LINHA A MARCAR  = ");
                                      scanf("%d",&i);
                                      if ((i>3)||(j>3)){
                                           printf("\n\n\n\n\t\t\t        >>  OPCAO INVALIDA!\n\t\t\t>>  PRESSIONE ENTER E TENTE OUTRA VEZ!\n\n\n\n\n\n\n\n\n\n");
                                           invalido = 1;
                                           system("PAUSE");   
                                      }
                                      if (quadro[i-1][j-1] == 0){
                                           quadro[i-1][j-1] = p1;
                                           jogada1 = jogada1 + 1;
                                      }
                                      else{
                                           if (invalido == 0){
                                                printf("\n\n\n\n\t\t\t         >>  OPCAO OCUPADA!\n\t\t\t>>  PRESSIONE ENTER E TENTE OUTRA VEZ!\n\n\n\n\n\n\n\n\n\n");
                                                system("PAUSE");
                                           }
                                      }                                        // -> jogador 2
                                      goto proximo;
                                      jogador2:
                                      printf("\n\t\t\t>>JOGADOR 2 COLUNA A MARCAR = ");
                                      scanf("%d",&j);
                                      printf("\n\t\t\t>>JOGADOR 2 LINHA A MARCAR  = ");
                                      scanf("%d",&i);
                                      if ((i>3)||(j>3)){
                                           printf("\n\n\n\n\t\t\t        >>  OPCAO INVALIDA!\n\t\t\t>>  PRESSIONE ENTER E TENTE OUTRA VEZ!\n\n\n\n\n\n\n\n\n\n");
                                           invalido = 1;
                                           system("PAUSE");  
                                      }
                                      if (quadro[i-1][j-1] == 0){
                                           quadro[i-1][j-1] = p2;
                                           jogada2 = jogada2 + 1;
                                      }
                                      else{
                                           if (invalido == 0){
                                                printf("\n\n\n\n\t\t\t        >>  OPCAO OCUPADA!\n\t\t\t>>  PRESSIONE ENTER E TENTE OUTRA VEZ!\n\n\n\n\n\n\n\n\n\n");
                                                system("PAUSE");
                                           }
                                      }        
                                      proximo:                //estrutura que checa se posicao eh valida na horizontal e marca 
                                      for(i=0; i<3; i++){
                                           for (j=0; j<1; j++){
                                                if(quadro[i][j] != 0){
                                                     if ((quadro[i][j] == quadro[i][j+1])&&(quadro[i][j+1] == quadro[i][j+2])){
                                                          if (quadro[i][j] == p1){
                                                               ponto1 = ponto1 + 1;
                                                               continua = 3;
                                                               fim =1;   
                                                               vence1 = 1;   
                                                               goto resultado;                       
                                                          }
                                                          else{
                                                               ponto2 = ponto2 + 1;
                                                               continua = 3;
                                                               fim =1;
                                                               vence2 = 1;
                                                               goto resultado;                        
                                                          }
                                                     }
                                                }
                                           }
                                      }           
        
                                      for(j=0; j<3; j++){                 //estrutura que checa se posicao eh valida na vertical e marca
                                           i = 0;
                                           if(quadro[i][j] != 0){
                                                if ((quadro[i][j] == quadro[i+1][j])&&(quadro[i+1][j] == quadro[i+2][j])){
                                                     if (quadro[i][j] == p1){
                                                          ponto1 = ponto1 + 1;
                                                          continua = 3;
                                                          fim =1;   
                                                          vence1 = 1;   
                                                          goto resultado;                       
                                                     }
                                                     else{
                                                          ponto2 = ponto2 + 1;
                                                          continua = 3;
                                                          fim =1;
                                                          vence2 = 1;
                                                          goto resultado;                        
                                                     }
                                                }
                                                else{          //checa se dara velha
                                                     if ((quadro[i][j] != quadro[i][j+1])||(quadro[i][j+1] != quadro[i][j+2])){
                                                          if (((quadro[i][j] != 0)&&(quadro[i][j+1] != 0))&&(quadro[i][j+2] != 0)){
                                                               if ((jogada1 + jogada2) == 9){
                                                                    cont ++;
                                                                    continua = 3;
                                                                    fim = 1;                                          
                                                                    goto resultado;
                                                               }
                                                          }
                                                     }                                 
                                                 }
                                             }
                                         }       
                                         //chega na diagonal  esquerda para direita
                                         if ((quadro[0][0] == quadro[1][1])&&(quadro[1][1] == quadro[2][2])){
                                              if (quadro[0][0] == p1){
                                              
                                                   ponto1 = ponto1 + 1;
                                                   continua = 3;
                                                   fim =1;   
                                                   vence1 = 1; 
                                                   goto resultado;                       
                                              }
                                              else{
                                                   if (quadro[0][0] == p2){
                                                        ponto2 = ponto2 + 1;
                                                        continua = 3;
                                                        fim =1;
                                                        vence2 = 1;
                                                        goto resultado;   
                                                   }                     
                                              }
                                         }
                                         //chega na diagonal direita para esquerda        
                                         if ((quadro[0][2] == quadro[1][1])&&(quadro[1][1] == quadro[2][0])){
                                              if (quadro[0][2] == p1){
                                                   ponto1 = ponto1 + 1;
                                                   continua = 3;
                                                   fim =1;   
                                                   vence1 = 1; 
                                                   goto resultado;                       
                                              }
                                              else{
                                                   if (quadro[0][2] == p2){
                                                        ponto2 = ponto2 + 1;
                                                        continua = 3;
                                                        fim =1;
                                                        vence2 = 1;
                                                        goto resultado;    
                                                   }                    
                                              }
                                         }
                                         //imprime o nome do vencedor   
        
                                         baixo:
                                         if ((vence1 == 1)&&(melhor == 0)){
                                              printf("\n\n\t\t >> PARABENS! VOCE ACABA DE VENCER, %s",nome1);
                                              printf("\n\n\t\t   >>  VOLTAREMOS AO MENU INICIAL!\n\t\t  >>  PRESSIONE ENTER PARA RETORNAR!\n\n\n\n\n\n\n\n\n\n");
                                              system("PAUSE");
                                              ponto1 = 0;
                                              ponto2 = 0;
                                              continua = 0;
                                              fim = 0;
                                              vence1 = 0;
                                              vence2 = 0;
                                              goto novo;
                                         }
                                         else{
                                              if ((vence2 == 1)&&(melhor == 0)){
                                                   printf("\n\n\t\t >> PARABENS! VOCE ACABA DE VENCER, %s",nome2);
                                                   printf("\n\n\t\t   >>  VOLTAREMOS AO MENU INICIAL!\n\t\t  >>  PRESSIONE ENTER PARA RETORNAR!\n\n\n\n\n\n\n\n\n\n");
                                                   system("PAUSE");
                                                   ponto1 = 0;
                                                   ponto2 = 0;
                                                   continua = 0;
                                                   fim = 0;
                                                   vence1 = 0;
                                                   vence2 = 0;
                                                   goto novo;
                                              }
                                              else{
                                                   if(jogada1+jogada2 == 9){
                                                        for (i=0; i<3; i++){
                                                             for (j=0; j<3; j++){
                                                             if (quadro[i][j]!=0)
                                                                  velha ++;
                                                             }
                                                        }
                                                        if ((velha == 9)&&(melhor == 0)){
                                                             printf("\n\n\t\t            >> OPS! DEU VELHA!");
                                                             printf("\n\n\t\t     >>  VOLTAREMOS AO MENU INICIAL!\n\t\t  >>  PRESSIONE ENTER PARA RETORNAR!\n\n\n\n\n\n\n\n\n\n");
                                                             system("PAUSE");
                                                             ponto1 = 0;
                                                             ponto2 = 0;
                                                             continua = 0;
                                                             vence1 = 0;
                                                             vence2 = 0;
                                                             fim = 0;
                                                             goto novo;
                                                        }
                                                        
                                                   }
                                              }
                                         }
                                         if (((vence1 == 1)&&(vence2 == 1))&&((melhor == 4)&&(k == 2))&& continua == 3){
                                              printf("\n\n\t\t           >> OPS! DEU EMPATE!");
                                              printf("\n\n\t\t   >>  VOLTAREMOS AO MENU INICIAL!\n\t\t  >>  PRESSIONE ENTER PARA RETORNAR!\n\n\n\n\n\n\n\n\n\n");
                                              system("PAUSE");
                                              ponto1 = 0;
                                              ponto2 = 0;
                                              goto novo;
                                         }
                                         else{
                                         if (((vence1 == 1)&&(k == 2))&&(melhor == 4)&&(continua == 3)){
                                              printf("\n\n\t>> PARABENS! VOCE ACABA DE VENCER A MELHOR DE 3, %s",nome1);
                                              printf("\n\n\t\t   >>  VOLTAREMOS AO MENU INICIAL!\n\t\t  >>  PRESSIONE ENTER PARA RETORNAR!\n\n\n\n\n\n\n\n\n\n");
                                              system("PAUSE");
                                         }
                                         else{
                                              if (((vence2 == 1)&&(k == 2))&&(melhor == 4)&&(continua == 3)){
                                                   printf("\n\n\t>> PARABENS! VOCE ACABA DE VENCER A MELHOR DE 3, %s",nome2);
                                                   printf("\n\n\t\t   >>  VOLTAREMOS AO MENU INICIAL!\n\t\t  >>  PRESSIONE ENTER PARA RETORNAR!\n\n\n\n\n\n\n\n\n\n");
                                                   system("PAUSE");
                                              }
                                              else{
                                                   if (cont == 3){
                                                        printf("\n\n\t\t           >> OPS! DEU VELHA!");
                                                        printf("\n\n\t\t   >>  VOLTAREMOS AO MENU INICIAL!\n\t\t  >>  PRESSIONE ENTER PARA RETORNAR!\n\n\n\n\n\n\n\n\n\n");
                                                        system("PAUSE");
                                                   }
                                                   
                                              }
                                         }
                                              
                                         }
                                         if (continua != 3)
                                         goto tabela;
                                         printf("\n\n________________________________________________________________________________\n");          
                                    }    // fim do else  
                               }// fim do while
                               }// fim do for para melhor de 3
                         break; // fim da primeira opcao
                         case 1:
                                goto rapido;
                         break;
                         case 3:
                                goto comeco;
                         break;
                         case 4:
                                resp = 4;
                                printf("\n\n\n\n");
                                printf("\n\n");
                                printf("\n\n");
                                printf("\n\n\t    >>  VOCE FINALIZOU O JOGO! OBRIGADO PELA PARTICIPACAO!\n\t\t          >>  PRESSIONE ENTER PARA SAIR!\n\n\n\n\n\n\n\n\n\n");
                                system("PAUSE");     
                         break;      
        
        
              }//switch
        
        }//primeiro while     
        


}//main

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.