Jogo da velha em C purinho

Publicado por Djames Suhanko 21/02/2005

[ Hits: 12.773 ]

Homepage: http://phantomclone.com

Download velha.c




Fiz esse jogo da velha ha
alguns anos em C purinho,
usando apenas a biblioteca
padrão. Não é fantástico, mas
é interessante. Espero que
gostem.
PS: em algumas versões do gcc
não funfa mais. :-(
No windows vai blz, basta
mudar o "cls" para "clear"

  



Esconder código-fonte

#include <stdio.h>
//Jogo da velha, por Djames Suhanko.
int fim;
char nome2[20];
char nome1[20];
int count;
char jogador;
int i, troca;
char casa[3];
char um[20],dois[20],tres[20],quatro[20],cinco[20],seis[20],sete[20];
char oito[20],nove[20],dez[20],onze[25],doze[20],treze[20];
main()
{
int volta=0;
i=0;
for (count=0; count<17; count++)
   {
   um[i] = ' ';
   dois[i] = ' ';
   tres[i] = ' ';
   quatro[i] = ' ';
   cinco[i] = '_';
   seis[i] = ' ';
   sete[i] = ' ';
   oito[i] = ' ';
   nove[i] = '_';
   dez[i] = ' ';
   onze[i] = ' ';
   doze[i] = ' ';
   treze[i] = ' ';
   i=i++;
   }
i=5;
for (count=0; count<2; count++)
{
   um[i] = '|';
   dois[i] = '|';
   tres[i] = '|';
   quatro[i] = '|';
   cinco[i] = '|';
   seis[i] = '|';
   sete[i] = '|';
   oito[i] = '|';
   nove[i] = '|';
   dez[i] = '|';
   onze[i] = '|';
   doze[i] = '|';
   treze[i] = '|';
i=i+6;
}
jogador = '*';
system("clear");
printf("Entre com o nome do jogador(a) 1:\n");
fflush(NULL);
scanf("%s",&nome1);
printf("Entre com o nome do jogador(a) 2:\n");
fflush(NULL);
scanf("%s",&nome2);
VOLTA: system("cls");
/*##### Encerrar o jogo   #####*/
if (quatro[2] == quatro[8] && quatro[8] == quatro[14] && quatro[14] != ' ' || quatro[2] == sete[2] && onze[2] == sete[2] && sete[2] != ' ' || quatro[2] == sete[8] && sete[8] == onze[14] && onze[14] != ' ' || quatro[8] == sete[8] && quatro[8] == onze[8] && onze[8] != ' ' || quatro[14] == sete[14] && sete[14] == onze[14] && onze[14] != ' ' || onze[2] == sete[8] && sete[8] == quatro[14] && quatro[14] != ' ' || onze[2] == onze[8] && onze[8] == onze[14] && onze[14] != ' ')
   {
   if (jogador == 'X')
      {
      printf("Fim de jogo.\nJogador(a) %c, %s venceu!\n", jogador, nome1);
      }
   else
      {
      printf("Fim de jogo.\nJogador %c, %s venceu!\n", jogador, nome2);
      }
   }
/*############################################*/
printf("  A     B     C\n\n");
printf("\n");
i=0;
for (count=0; count<17; count++)
{
printf("%c", tres[i]);
i=i++;
}
printf("\n");
i=0;
for (count=0; count<17; count++)
{
printf("%c", quatro[i]);
i=i++;
}
printf("   1");
printf("\n");
i=0;
for (count=0; count<17; count++)
{
printf("%c", cinco[i]);
i=i++;
}
printf("\n");
i=0;
for (count=0; count<17; count++)
{
printf("%c", seis[i]);
i=i++;
}
printf("\n");
i=0;
for (count=0; count<17; count++)
{
printf("%c", sete[i]);
i=i++;
}
printf("   2");
printf("\n");
i=0;
for (count=0; count<17; count++)
{
printf("%c", nove[i]);
i=i++;
}
printf("\n");
i=0;
for (count=0; count<17; count++)
{
printf("%c", dez[i]);
i=i++;
}
printf("\n");
i=0;
for (count=0; count<17; count++)
{
printf("%c", onze[i]);
i=i++;
}
printf("   3");
printf("\n");
i=0;
for (count=0; count<17; count++)
{
printf("%c", doze[i]);
i=i++;
}
printf("\n\n\n");
printf("  Jogo da Velha - Por: Djames Suhanko\n\n");
printf("Opções:\n novo - para novo jogo, a qualquer momento\n");
printf(" sair - para sair do jogo a qualquer momento\n");
printf("\nEntre Com uma coordenada: \n >>> ");
if (jogador == '*')
   {
   printf("Jogador X: %s\n", nome1);
   }
else if (jogador == 'X')
   {
   printf("Jogador *: %s\n", nome2);
   }

fflush(NULL);
scanf("%s",&casa);
if (!strcmp(casa,"a1"))
   {
   troca = 1;
   }
 if (!strcmp(casa,"b1"))
   {
   troca = 2;
   }
 if (!strcmp(casa,"c1"))
   {
   troca = 3;
   }
 if (!strcmp(casa,"a2"))
   {
   troca = 4;
   }
 if (!strcmp(casa,"b2"))
   {
   troca = 5;
   }
 if (!strcmp(casa,"c2"))
   {
   troca = 6;
   }
 if (!strcmp(casa,"a3"))
   {
   troca = 7;
   }
 if (!strcmp(casa,"b3"))
   {
   troca = 8;
   }
 if (!strcmp(casa,"c3"))
   {
   troca = 9;
   }
 if (!strcmp(casa,"sair"))
   {
   troca = 0;
   }
   if (!strcmp(casa,"novo"))
   {
   troca = 11;
   }
switch(troca)
   {
   case 1:
      {
      if (jogador == '*') {
            jogador = 'X';
            }
         else if (jogador == 'X') {
            jogador = '*';
            }
       if (quatro[2] != 'X' && quatro[2] != '*')
         {
         quatro[2] = jogador;
         goto VOLTA;
         }
      else
         {
         if (jogador == '*') {
            jogador = 'X';
            }
         else if (jogador == 'X') {
            jogador = '*';
            }
            goto VOLTA;
         }
      } //case 1a
   case 2:
      {
      if (jogador == '*') {
            jogador = 'X';
            }
         else if (jogador == 'X') {
            jogador = '*';
            }
      if (quatro[8] != 'X' && quatro[8] != '*')
         {
         quatro[8] = jogador;
         goto VOLTA;
         }
         else
         {
         if (jogador == '*') {
            jogador = 'X';
            }
         else if (jogador == 'X') {
            jogador = '*';
            }
            goto VOLTA;
         }
      } //case b1
   case 3:
   {
   if (jogador == '*') {
            jogador = 'X';
            }
         else if (jogador == 'X') {
            jogador = '*';
            }
      if (quatro[14] != 'X' && quatro[14] != '*')
         {
   quatro[14] = jogador;
   goto VOLTA;
         }
      else
         {
         if (jogador == '*') {
            jogador = 'X';
            }
         else if (jogador == 'X') {
            jogador = '*';
            }
            goto VOLTA;
         }
      } //case c1
   case 4:
   {
   if (jogador == '*') {
            jogador = 'X';
            }
         else if (jogador == 'X') {
            jogador = '*';
            }
      if (sete[2] != 'X' && sete[2] != '*')
         {
   sete[2] = jogador;
   goto VOLTA;
         }
      else
         {
         if (jogador == '*') {
            jogador = 'X';
            }
         else if (jogador == 'X') {
            jogador = '*';
            }
            goto VOLTA;
         }
      } //case a2
   case 5:
   {
   if (jogador == '*') {
            jogador = 'X';
            }
         else if (jogador == 'X') {
            jogador = '*';
            }

      if (sete[8] != 'X' && sete[8] != '*')
         {
   sete[8] = jogador;
   goto VOLTA;
         }
      else
         {
         if (jogador == '*') {
            jogador = 'X';
            }
         else if (jogador == 'X') {
            jogador = '*';
            }
            goto VOLTA;
         }
   } //case b2
   case 6:
   {
   if (jogador == '*') {
            jogador = 'X';
            }
         else if (jogador == 'X') {
            jogador = '*';
            }

      if (sete[14] != 'X' && sete[14] != '*')
         {
   sete[14] = jogador;
   goto VOLTA;
         }
      else
         {
         if (jogador == '*') {
            jogador = 'X';
            }
         else if (jogador == 'X') {
            jogador = '*';
            }
            goto VOLTA;
         }
      } //case c2
   case 7:
   {
   if (jogador == '*') {
            jogador = 'X';
            }
         else if (jogador == 'X') {
            jogador = '*';
            }
      if (onze[2] != 'X' && onze[2] != '*')
         {
   onze[2] = jogador;
   goto VOLTA;
         }
      else
         {
         if (jogador == '*') {
            jogador = 'X';
            }
         else if (jogador == 'X') {
            jogador = '*';
            }
            goto VOLTA;
         }
      } //case a3
case 8:
   {
   if (jogador == '*') {
            jogador = 'X';
            }
         else if (jogador == 'X') {
            jogador = '*';
            }

      if (onze[8] != 'X' && onze[8] != '*')
         {
   onze[8] = jogador;
goto VOLTA;
         }
      else
         {
         if (jogador == '*') {
            jogador = 'X';
            }
         else if (jogador == 'X') {
            jogador = '*';
            }
            goto VOLTA;
         }
      } //case b3
case 9:
   {
   if (jogador == '*') {
            jogador = 'X';
            }
         else if (jogador == 'X') {
            jogador = '*';
            }
      if (onze[14] != 'X' && onze[14] != '*')
         {
   onze[14] = jogador;
   goto VOLTA;
         }
         else
         {
         if (jogador == '*') {
            jogador = 'X';
            }
         else if (jogador == 'X') {
            jogador = '*';
            }
            goto VOLTA;
         }
   } //case c3
   case 0:
      {
      return 0;
      }
   case 11:
      {
quatro[2] = ' ';
quatro[8] = ' ';
quatro[14] = ' ';
sete[2] = ' ';
sete[8] = ' ';
sete[14] = ' ';
onze[2] = ' ';
onze[8] = ' ';
onze[14] = ' ';
      }
   default:
      {
      goto VOLTA;
      }
   } //switch
}

Scripts recomendados

Converter um vetor em uma matriz multidimensional

Parte 3 - Sessão de estudo sobre MATRIZES.

Cálculo de Energia de um Corpo

Tabela ASCII em C++

Ordenando valores


  

Comentários
[1] Comentário enviado por jochan em 14/12/2005 - 14:38h

Muito legal, vai me ajudar bastente no meu projeto de C++ ... =)

[2] Comentário enviado por murilo.ito em 11/03/2010 - 16:03h

bom para iniciantes ...

[3] Comentário enviado por Suhanko em 03/02/2011 - 17:54h

Infelizmente eu não tinha nem boa noção de programação e nem conhecimento em programação estruturada. Ainda depois disso, postei esse código:
http://www.vivaolinux.com.br/script/Velha-reversa/
Mas ainda assim, não faria um código desse na atualidade. Esse código não serve nem para iniciantes, pois se usa do velho goto, que quebra a estrutura de qualquer código (e que deveria ter sido abolido do C para que iniciantes não façam tais atrocidades, tal como fiz na época).
Enfim, atualmente programo "de verdade". mesmo sabendo disso, sinto vergonha quando vejo esse código #).
Mas tenho algumas coisas legais em meu blog: http://suhanko.wordpress.com.
Obrigado pelos comentários, pessoal!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts