Escolar Documentos
Profissional Documentos
Cultura Documentos
#include <cstdlib>
#include <stdio.h>
#include <stdlib.h>
#define LIMPAR_TELA "cls"
class Casa
{
public:
int dominado_por;
class Linha
{
public:
Casa casa1;//Coluna 1
Casa casa2;//Coluna 2
Casa casa3;//Coluna 3
};
Linha linha1;//Linha 1
Linha linha2;//Linha 2
Linha linha3;//Linha 3
aux1 = checa_casa(1,3);
aux3 = checa_casa(3,1);
if ((aux1 == aux2) && (aux2 == aux3) && (aux3 != 0))
return aux1;
return 0;
}
aux = 5;
while (aux != 0)//enquanto for diferente de 0
{
system(LIMPAR_TELA);
desenhar_jogo();// Fução Desenhar jogo
confirma = 5;//confirmar
while (confirma != 1)//Enquando confirma for diferente de 1, faça o bloco de
instrução
{
tmp_linha = 5;
while ((tmp_linha < 1) || (tmp_linha > 3))
{
cout << "Jogador " << jogador << ". Em que linha deseja jogar? ";
if ((scanf("%d",&tmp_linha)) == 0)
{
cout << "Huh?\n";
getchar();
}
}
tmp_coluna = 5;
while ((tmp_coluna < 1) || (tmp_coluna > 3))
{
cout << "Jogador " << jogador << ". Em que coluna deseja jogar? ";
if ((scanf("%d",&tmp_coluna)) == 0)
{
cout << "Huh?\n";
getchar();
}
}
confirma = 5;
while ((confirma < 1) || (confirma > 2))
{
cout << "Jogador " << jogador << ". Confirma? (1 Sim / 2 Nao) ";
if ((scanf("%d",&confirma)) == 0)
{
cout << "Huh?\n";
getchar();
}
}
}
aux = checa_casa(tmp_coluna,tmp_linha);
if (aux != 0)
{
cout << "Casa em uso. Escolha outra.";
getchar(); getchar();
}
}
domina_casa(tmp_coluna,tmp_linha,jogador);
}
/* Level 1 AI */
aux1 = checa_casa(2,2);//aux1 recebe o valor da função checa casa da posilçao 2 e 2
if (aux1 == 0)//se o valor do aux1 for igual a 0, então ele executará o bloco de
comando
{
domina_casa(2,2,2);
return 0;//VOlta para a função com valor 0
}
/* Verticais */
aux1 = checa_casa(i,1);
aux2 = checa_casa(i,2);
aux3 = checa_casa(i,3);
if ((aux1 == aux3) && (aux2 == 0) && (aux1 == j))
{
aux = checa_casa(i,2);
if (aux == 0)
{
domina_casa(i,2,2);
return 0;
}
}
else if ((aux1 == aux2) && (aux3 == 0) && (aux1 == j))
{
aux = checa_casa(i,3);
if (aux == 0)
{
domina_casa(i,3,2);
return 0;
}
}
else if ((aux2 == aux3) && (aux1 == 0) && (aux2 == j))
{
aux = checa_casa(i,1);
if (aux == 0)
{
domina_casa(i,1,2);
return 0;
}
}
}
/* Diagonal Principal */
aux1 = checa_casa(1,1);
aux2 = checa_casa(2,2);
aux3 = checa_casa(3,3);
if ((aux1 == aux3) && (aux2 == 0) && (aux1 == j))
{
aux = checa_casa(2,2);
if (aux == 0)
{
domina_casa(2,2,2);
return 0;
}
}
else if ((aux1 == aux2) && (aux3 == 0) && (aux1 == j))
{
aux = checa_casa(3,3);
if (aux == 0)
{
domina_casa(3,3,2);
return 0;
}
}
else if ((aux2 == aux3) && (aux1 == 0) && (aux2 == j))
{
aux = checa_casa(1,1);
if (aux == 0)
{
domina_casa(1,1,2);
return 0;
}
}
/* Diagonal Secundaria */
aux1 = checa_casa(3,1);
aux3 = checa_casa(1,3);
if ((aux1 == aux3) && (aux2 == 0) && (aux1 == j))
{
aux = checa_casa(2,2);
if (aux == 0)
{
domina_casa(2,2,2);
return 0;
}
}
else if ((aux1 == aux2) && (aux3 == 0) && (aux1 == j))
{
aux = checa_casa(1,3);
if (aux == 0)
{
domina_casa(1,3,2);
return 0;
}
}
else if ((aux2 == aux3) && (aux1 == 0) && (aux2 == j))
{
aux = checa_casa(3,1);
if (aux == 0)
{
domina_casa(3,1,2);
return 0;
}
}
}
/* Level 2 AI */
/* Defesa */
aux1 = checa_casa(1,1);
aux2 = checa_casa(3,3);
if ((aux1 == 1) && (aux2 == 1))
{
aux = checa_casa(2,1);
if (aux == 0)
{
domina_casa(2,1,2);
return 0;
}
}
aux1 = checa_casa(3,1);
aux2 = checa_casa(1,3);
if ((aux1 == 1) && (aux2 == 1))
{
aux = checa_casa(2,1);
if (aux == 0)
{
domina_casa(2,1,2);
return 0;
}
}
aux1 = checa_casa(2,1);
aux2 = checa_casa(3,2);
aux3 = checa_casa(1,2);
if ((aux1 == 1) && (aux2 == 1))
{
aux = checa_casa(3,1);
if (aux == 0)
{
domina_casa(3,1,2);
return 0;
}
}
if ((aux1 == 1) && (aux3 == 1))
{
aux = checa_casa(1,1);
if (aux == 0)
{
domina_casa(1,1,2);
return 0;
}
}
if ((aux3 == 1) && (aux2 == 1))
{
aux = checa_casa(1,1);
if (aux == 0)
{
domina_casa(1,1,2);
return 0;
}
}
aux1 = checa_casa(2,3);
if ((aux1 == 1) && (aux2 == 1))
{
aux = checa_casa(3,3);
if (aux == 0)
{
domina_casa(3,3,2);
return 0;
}
}
if ((aux1 == 1) && (aux3 == 1))
{
aux = checa_casa(1,3);
if (aux == 0)
{
domina_casa(1,3,2);
return 0;
}
}
aux1 = checa_casa(1,1);
aux2 = checa_casa(2,2);
aux3 = checa_casa(3,3);
if ((aux1 == 2) && (aux2 == 1) && (aux3 == 1))
{
aux = checa_casa(3,1);
if (aux == 0)
{
domina_casa(3,1,2);
return 0;
}
}
/* Ataque */
for (i = 1; i <= 3; i++)
{
aux1 = checa_casa(1,i);
aux2 = checa_casa(2,i);
aux3 = checa_casa(3,i);
if ((aux1 == 2) && (aux2 == 0) && (aux3 == 0))
{
aux = checa_casa(2,i);
if (aux == 0)
{
domina_casa(2,i,2);
return 0;
}
}
if ((aux2 == 2) && (aux1 == 0) && (aux3 == 0))
{
aux = checa_casa(1,i);
if (aux == 0)
{
domina_casa(1,i,2);
return 0;
}
}
if ((aux3 == 2) && (aux1 == 0) && (aux2 == 0))
{
aux = checa_casa(1,i);
if (aux == 0)
{
domina_casa(1,i,2);
return 0;
}
}
aux1 = checa_casa(i,1);
aux2 = checa_casa(i,2);
aux3 = checa_casa(i,3);
if ((aux1 == 2) && (aux2 == 0) && (aux3 == 0))
{
aux = checa_casa(i,2);
if (aux == 0)
{
domina_casa(i,2,2);
return 0;
}
}
if ((aux2 == 2) && (aux1 == 0) && (aux3 == 0))
{
aux = checa_casa(i,1);
if (aux == 0)
{
domina_casa(i,1,2);
return 0;
}
}
if ((aux3 == 2) && (aux1 == 0) && (aux2 == 0))
{
aux = checa_casa(i,1);
if (aux == 0)
{
domina_casa(i,1,2);
return 0;
}
}
}
aux1 = checa_casa(1,1);
aux2 = checa_casa(2,2);
aux3 = checa_casa(3,3);
if ((aux2 == 2) && (aux1 == 0) && (aux3 == 0))
{
aux = checa_casa(1,1);
if (aux == 0)
{
domina_casa(1,1,2);
return 0;
}
}
aux1 = checa_casa(3,1);
aux3 = checa_casa(1,3);
if ((aux2 == 2) && (aux1 == 0) && (aux3 == 0))
{
aux = checa_casa(1,3);
if (aux == 0)
{
domina_casa(1,3,2);
return 0;
}
}
aux1 = checa_casa(1,1);
if (aux1 == 2)
{
aux2 = checa_casa(2,2);
aux3 = checa_casa(3,3);
if ((aux3 == 0) && (aux2 == 0))
{
aux1 = checa_casa(3,2);
aux2 = checa_casa(1,2);
if ((aux1 != 1) && (aux2 != 1))
{
aux1 = checa_casa(2,1);
aux2 = checa_casa(2,3);
if ((aux1 != 1) && (aux2 != 1))
{
aux = checa_casa(3,3);
if (aux == 0)
{
domina_casa(3,3,2);
return 0;
}
}
}
}
}
aux1 = checa_casa(i,1);
aux2 = checa_casa(i,2);
aux3 = checa_casa(i,3);
if (aux1 == 0)
{
domina_casa(i,1,2);
return 0;
}
else if (aux2 == 0)
{
domina_casa(i,2,2);
return 0;
}
else if (aux3 == 0)
{
domina_casa(i,3,2);
return 0;
}
}
}
else if (tipo_de_jogo == 1)//se for o menu igual a 1 , então faça o bloco de comando
{
for (i = 0; i < 9; i++)//Entra no Lop
{
jogador++;//Incrementa o jogador
if (jogador > 2)//se jogador for iguak
jogador = 1;//jogador igual a 1
loop_jogo(jogador);
cout << "Vencedor: Jogador " << aux << "!";//Mensagem jogador "vencedor"
getchar(); getchar();//pause
return 0;//sair do jogo
}
}
}
else if (tipo_de_jogo == 2)
{
for (i = 0; i < 9; i++)//Laço de repetição
{
jogador++;
if (jogador > 2)//se a variavel jogador for maior que 2
jogador = 1;//jogador recebe 1