Velha reversa
Publicado por Djames Suhanko 29/01/2006
[ Hits: 4.919 ]
Homepage: http://phantomclone.com
O objetivo desse jogo é fazer com que o computador ganhe. Isso torna o jogo mais dificil e interessante.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int i;
// As onze linhas que compoe a matriz
// Linha 3 e 6 sao preenchidas por "_"
// Indices de pipe: 5 e 11
// As linhas com 18 posicoes sao para coordenadas numericas
char linha1[17], linha2[18], linha3[17], linha4[17], linha5[18], linha6[17];
char linha7[17], linha8[18], linha9[17];
//Definicao das coordenadas
//Se limitarmos em 2 casas, havera erro se a digitacao passar de duas posicoes
//Deixar esse excesso elimina tal bug
char posicao[10];
char vez = 'X';
/*
//Zeras as posicoes
char zera(){
linha2[2] = ' ';
linha2[8] = ' ';
linha2[14] = ' ';
linha5[2] = ' ';
linha5[8] = ' ';
linha5[14] = ' ';
linha8[2] = ' ';
linha8[8] = ' ';
linha8[14] = ' ';
}
zera();
*/
char matriz(){
system("clear");
//imprime a matriz
linha2[17] = '1';
linha5[17] = '2';
linha8[17] = '3';
printf(" A B C\n");
for (i=0;i<17;i++)
{
printf("%c", linha1[i]);
}
printf("\n");
for (i=0;i<18;i++)
{
printf("%c", linha2[i]);
}
printf("\n");
for (i=0;i<17;i++)
{
printf("%c", linha3[i]);
}
printf("\n");
for (i=0;i<17;i++)
{
printf("%c", linha4[i]);
}
printf("\n");
for (i=0;i<18;i++)
{
printf("%c", linha5[i]);
}
printf("\n");
for (i=0;i<17;i++)
{
printf("%c", linha6[i]);
}
printf("\n");
for (i=0;i<17;i++)
{
printf("%c", linha7[i]);
}
printf("\n");
for (i=0;i<18;i++)
{
printf("%c", linha8[i]);
}
printf("\n");
for (i=0;i<17;i++)
{
printf("%c", linha9[i]);
}
printf("\n");
}
//Gera numeros aleatorios de 1 a 9
//Computador joga
int j=0;
int computador(){
int myrand( int N )
{
return random() % N;
}
unsigned int seed;
seed=time(0);
srandom(seed);
int compopt = random()%10;
if (compopt == 0)
{
compopt = 1;
}
int numeros[10];
numeros[j] = compopt;
//Esse printf abaixo debuga o random
printf("%d",numeros[j]);
int x;
if (j != 0)
{
for (x=j;x>-1;x--)
{
if (j != 0)
{
if (numeros[j] == numeros[j-1])
{
sleep(1);
computador();
}
j = j-1;
}
}
}
j = j+1;
//Posicoes 1 2 e 3 da primeira linha
if (compopt == 1)
{
if (linha2[2] == '*' || linha2[2] == 'X')
{
sleep(1);
computador();
}
else
{
linha2[2] = vez;
}
}
else if (compopt == 2)
{
if (linha2[8] == '*' || linha2[8] == 'X')
{
sleep(1);
computador();
}
else
{
linha2[8] = vez;
}
}
else if (compopt == 3)
{
if (linha2[14] == '*' || linha2[14] == 'X')
{
sleep(1);
computador();
}
else
{
linha2[14] = vez;
}
}
// Posicoes 1 2 e 3 da segunda linha
else if (compopt == 4)
{
if (linha5[2] == '*' || linha5[2] == 'X')
{
sleep(1);
computador();
}
else
{
linha5[2] = vez;
}
}
else if (compopt == 5)
{
if (linha5[8] == '*' || linha5[8] == 'X')
{
sleep(1);
computador();
}
else
{
linha5[8] = vez;
}
}
else if (compopt == 6)
{
if (linha5[14] == '*' || linha5[14] == 'X')
{
sleep(1);
computador();
}
else
{
linha5[14] = vez;
}
}
//Posicoes 1 2 e 3 da terceira linha
else if (compopt == 7)
{
if (linha8[2] == '*' || linha8[2] == 'X')
{
sleep(1);
computador();
}
else
{
linha8[2] = vez;
}
}
else if (compopt == 8)
{
if (linha8[8] == '*' || linha8[8] == 'X')
{
sleep(1);
computador();
}
else
{
linha8[8] = vez;
}
}
else if (compopt == 9)
{
if (linha8[14] == '*' || linha8[14] == 'X')
{
sleep(1);
computador();
}
else
{
linha8[14] = vez;
}
}
}//fim da funcao
//humano joga
char humano(){
printf("Entre com a coordenada: >> ");
fflush(NULL);
scanf("%s",&posicao);
if (!strcmp(posicao,"a1"))
{
if (!(linha2[2] == '*' || linha2[2] == 'X'))
{
linha2[2] = '*';
}
else
{
printf("Casa ocupada. tente de novo\n");
humano();
}
}
else if (!strcmp(posicao,"b1"))
{
if (!(linha2[8] == '*' || linha2[8] == 'X'))
{
linha2[8] = '*';
}
else
{
printf("Casa ocupada. tente de novo\n");
humano();
}
}
else if (!strcmp(posicao,"c1"))
{
if (!(linha2[14] == '*' || linha2[14] == 'X'))
{
linha2[14] = '*';
}
else
{
printf("Casa ocupada. tente de novo\n");
humano();
}
}
else if (!strcmp(posicao,"a2"))
{
if (!(linha5[2] == '*' || linha5[2] == 'X'))
{
linha5[2] = '*';
}
else
{
printf("Casa ocupada. tente de novo\n");
humano();
}
}
else if (!strcmp(posicao,"b2"))
{
if (!(linha5[8] == '*' || linha5[8] == 'X'))
{
linha5[8] = '*';
}
else
{
printf("Casa ocupada. tente de novo\n");
humano();
}
}
else if (!strcmp(posicao,"c2"))
{
if (!(linha5[14] == '*' || linha5[14] == 'X'))
{
linha5[14] = '*';
}
else
{
printf("Casa ocupada. tente de novo\n");
humano();
}
}
else if (!strcmp(posicao,"a3"))
{
if (!(linha8[2] == '*' || linha8[2] == 'X'))
{
linha8[2] = '*';
}
else
{
printf("Casa ocupada. tente de novo\n");
humano();
}
}
else if (!strcmp(posicao,"b3"))
{
if (!(linha8[8] == '*' || linha8[8] == 'X'))
{
linha8[8] = '*';
}
else
{
printf("Casa ocupada. tente de novo\n");
humano();
}
}
else if (!strcmp(posicao,"c3"))
{
if (!(linha8[14] == '*' || linha8[14] == 'X'))
{
linha8[14] = '*';
}
else
{
printf("Casa ocupada. tente de novo\n");
humano();
}
}
else
{
printf("Opcoes validas:\n");
printf("a1,a2,a3,b1,b2,b3,c1,c2,c3\n");
printf("Tente novamente:\n");
humano();
}
}
//Preenche as posicoes de pipe
for (i=5;i<12;i++)
{
if (i == 5 || i == 11)
{
linha1[i] = '|';
linha2[i] = '|';
linha3[i] = '|';
linha4[i] = '|';
linha5[i] = '|';
linha6[i] = '|';
linha7[i] = '|';
linha8[i] = '|';
linha9[i] = '|';
}
}
//Preenche as linhas 3 e 6
for (i=0;i<17;i++)
{
if (i == 5 || i == 11)
{
i = i+1;
}
linha3[i] = '_';
linha6[i] = '_';
}
// Preenche os espacos em branco de todas as linhas
for (i=0;i<17;i++)
{
if(i == 5 || i == 11)
{
i = i+1;
}
linha1[i] = ' ';
linha2[i] = ' ';
linha4[i] = ' ';
linha5[i] = ' ';
linha7[i] = ' ';
linha8[i] = ' ';
linha9[i] = ' ';
}
//imprime a matriz
//linha2[2] = '*';
//linha2[8] = '*';
//linha2[14] = '*';
matriz();
int a;
for (a=0;;a++)
{
humano();
sleep(1);
computador();
sleep(1);
matriz();
}
}
O que são e como utilizar structs
NOÇÕES DE ARITMÉTICA DE PONTEIROS
Nenhum comentário foi encontrado.
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
VOL já não é mais como antes? (9)
É normal não gostar de KDE? (13)
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)
Secure boot, artigo interessante, nada técnico. (4)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









