Jogo da velha em C purinho
Publicado por Djames Suhanko 21/02/2005
[ Hits: 13.153 ]
Homepage: http://phantomclone.com
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"
#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
}
Lista ligada simples, algoritmos de inserção, busca e impressão
Exemplo de janela utilizando o compilador Vala
Papagaiando o XFCE com temas e recursos
WhatsApp com Chamadas no Linux via Waydroid
XFCE - quase um Gnome ou Plasma mas muito mais leve
LXQT - funcional para máquinas pererecas e usuários menos exigentes
Como cortar as partes de um vídeo com passagens de áudio em branco
Tiling automático no KDE Plasma
SNMP Scan no OCS Inventory só funciona com HTTPS corretamente configurado
Links importantes de usuários do vol (4)
GOG confirma suporte oficial ao sistema Linux: "o trabalho começo... (2)
Para os fãs de DOOM, um vídeo do Romero (com dublagem em pt-br disponí... (2)









