Advertisement
Drowze

Preparando-se para a prova: Jogo da Velha

May 18th, 2014
306
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.08 KB | None | 0 0
  1.  /*
  2. Jogo da Velha 1.0
  3. 18/Maio/2014
  4.  
  5. */
  6.  
  7. #include <stdlib.h>
  8. #include <stdio.h>
  9. #define MAX 3
  10.  
  11. void main(){
  12.     char mtz[MAX][MAX];
  13.     int i,j;
  14.     int turn=0, winner=0; //contador de turnos e indicador de vitoria (finalizam o do-while)
  15.     int x=0; //variavel que decide de qual jogador é a vez
  16.  
  17.     //preencher o tabuleiro com campos vazios
  18.     for(i=0;i<MAX;i++)
  19.         for(j=0;j<MAX;j++)
  20.             mtz[i][j]=' ';
  21.  
  22.     //-------------------//
  23.  
  24.     do{
  25.         printf("Jogo da Velha\n");
  26.         for(i=0;i<MAX;i++){
  27.             printf("\n");
  28.             for(j=0;j<MAX;j++)
  29.                 printf("[%c]",mtz[i][j]);
  30.         }
  31.  
  32.         if(x%2==0){
  33.             printf("\nJogador 1 (x):\nLinha: ");
  34.             scanf("%d",&i);
  35.             printf("Coluna: ");
  36.             scanf("%d",&j);
  37.             if(mtz[i-1][j-1]==' '){
  38.                 mtz[i-1][j-1]='X';
  39.                 x++; //Terminou a vez do jogador
  40.             }
  41.             else printf("Erro");
  42.         }
  43.         else{
  44.             printf("\nJogador 2 (o):\nLinha: ");
  45.             scanf("%d",&i);
  46.             printf("Coluna: ");
  47.             scanf("%d",&j);
  48.             if(mtz[i-1][j-1]==' '){
  49.                 mtz[i-1][j-1]='O';
  50.                 x++; //Terminou a vez do jogador
  51.             }
  52.             else printf("Erro");
  53.         }
  54.  
  55.         //possibilidades de vitória
  56.         if((mtz[0][0]==mtz[0][1] && mtz[0][1]==mtz[0][2] && mtz[0][2]!=' ')     //possibildades horizontais
  57.             || (mtz[1][0]==mtz[1][1] && mtz[1][1]==mtz[1][2] && mtz[1][2]!=' ')
  58.             || (mtz[2][0]==mtz[2][1] && mtz[2][1]==mtz[2][2] && mtz[2][2]!=' ')
  59.             || (mtz[0][0]==mtz[1][0] && mtz[1][0]==mtz[2][0] && mtz[2][0]!=' ') //possibilidades verticais
  60.             || (mtz[0][1]==mtz[1][1] && mtz[1][1]==mtz[2][1] && mtz[2][1]!=' ')
  61.             || (mtz[0][2]==mtz[1][2] && mtz[1][2]==mtz[2][2] && mtz[2][2]!=' ')
  62.  
  63.             || (mtz[0][0]==mtz[1][1] && mtz[1][1]==mtz[2][2] && mtz[2][2]!=' ') //possibilidades diagonais
  64.             || (mtz[0][2]==mtz[1][1] && mtz[1][1]==mtz[2][0] && mtz[2][0]!=' '))
  65.         {
  66.             if(x%2==1) winner=1;
  67.             else winner=2;
  68.         }
  69.  
  70.         turn++;
  71.         system("Pause");
  72.         system("cls");
  73.     }while(winner==0 && turn<9);
  74.  
  75.     if (winner != 0) printf("Jogador %d foi o vencedor!",winner);
  76.     else printf("Empate!");
  77.     for(i=0;i<MAX;i++){
  78.         printf("\n");
  79.         for(j=0;j<MAX;j++)
  80.             printf("[%c]",mtz[i][j]);
  81.         }
  82.  
  83.  
  84.     printf("\n\n");
  85.     system("Pause");
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement