[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
jogo da velha em c ^^
jogo da velha em c ^^
- Código:
/*
autor: flavio (kõdo no kami)
forum: http://endoffile.umforum.net
10 = X
11 = O
numero = posiçao livre
1|2|3
4|5|6
7|8|9
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
int main(void)
{
//variveis
int posicao[10] = {1,2,3,4,5,6,7,8,9};
int cont_pos = 0, cont_quebra = 0, opcao, simb = 10;
//loop infinito
while(1)
{
//limpa
system("cls");
//mostra as posiçao
while(cont_pos < 9)
{
//imprime X
if(posicao[cont_pos] == 10)
{
printf("X");
}
//imprime O
else if(posicao[cont_pos] == 11)
{
printf("O");
}
//imprime numero
else
{
printf("%d",posicao[cont_pos]);
}
//quebra a linha
if(cont_quebra >= 2)
{
printf("\n");
cont_quebra = 0;
}
else
{
cont_quebra++;
printf("|");
}
cont_pos++;
}
while(1)
{
//entrada de dados
printf("\n> ");
scanf("%d",&opcao);
//checa para ver se é valido (se nao é X ou O ou posição invalida)
if(opcao <= 9 && opcao >= 1 && posicao[opcao-1] != 10 && posicao[opcao-1] != 11)
{
posicao[opcao-1] = simb;
break;
}
else
{
printf("opcao invalida\n\n");
}
}
//checa para ver se ganho
if(posicao[0] == posicao[1] && posicao[1] == posicao[2])
{
printf("%c ganho\n\n",(posicao[0] == 10)?'X':'O');
break;
}
else if(posicao[3] == posicao[4] && posicao[4] == posicao[5])
{
printf("%c ganho\n\n",(posicao[3] == 10)?'X':'O');
break;
}
else if(posicao[6] == posicao[7] && posicao[7] == posicao[8])
{
printf("%c ganho\n\n",(posicao[6] == 10)?'X':'O');
break;
}
else if(posicao[0] == posicao[3] && posicao[3] == posicao[6])
{
printf("%c ganho\n\n",(posicao[0] == 10)?'X':'O');
break;
}
else if(posicao[1] == posicao[4] && posicao[4] == posicao[7])
{
printf("%c ganho\n\n",(posicao[1] == 10)?'X':'O');
break;
}
else if(posicao[2] == posicao[5] && posicao[5] == posicao[8])
{
printf("%c ganho\n\n",(posicao[2] == 10)?'X':'O');
break;
}
else if(posicao[0] == posicao[4] && posicao[4] == posicao[8])
{
printf("%c ganho\n\n",(posicao[0] == 10)?'X':'O');
break;
}
else if(posicao[2] == posicao[4] && posicao[4] == posicao[6])
{
printf("%c ganho\n\n",(posicao[2] == 10)?'X':'O');
break;
}
//zera alguns contador
cont_quebra = 0;
cont_pos = 0;
//alterna entre o simbolo x e o
if(simb == 10)
{
simb = 11;
}
else
{
simb = 10;
}
}
}