Ir para o conteúdo
AninhasSilva

Projeto escolar - Jogo do Galo

Mensagens Recomendadas

AninhasSilva    0
AninhasSilva

Olá,muito boa noite.

Eu tenho um dúvida, neste momento estou a fazer um projeto escolar em que o objetivo é implantar o jogo do galo.

A minha dúvida é como eu faço para que o computador jogue contra mim.

O professor também nos colocou um desafio que era: fazer com que o jogo guardasse e que o pudesse abrir a qualquer momento, isso também é uma das coisas que não sei fazer.

Espero que me consigam ajudar.

Até breve.

Beijinho

Aqui se encontra o meu código:

#include
#include
#include
#include

#define NORTE 72
#define SUL 80
#define ESTE 77
#define OESTE 75
#define ESC 27
#define SAIDA 26
#define ENTER 13

// *************************************************************************************
// * C�digo de cores *
// *************************************************************************************
enum DOS_COLORS
{
preto, azul, verde, CYAN, vermelho, MAGENTA, castanho,
cizento_claro, cizento_escuro, azul_claro, verde_claro, CYAN_claro,
vermelho_claro, MAGENTA_claro, amarelo, branco
};

void textcolor(int iColor)
{
HANDLE hl = GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_SCREEN_BUFFER_INFO bufferInfo;
BOOL b = GetConsoleScreenBufferInfo(hl, &bufferInfo);
bufferInfo.wAttributes &= 0x00F0;
SetConsoleTextAttribute (hl, bufferInfo.wAttributes |= iColor);
}

void gotoxy(int x, int y)
{
COORD coord;// sao cordenadas
coord.X = x;// sao cordenadas
coord.Y = y;// sao cordenadas
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
// *************************************************************************************
// * Fun��o Menu *
// *************************************************************************************

Menu()
{
int opcao,escolha=1;
int i;
system("color 8F");
do
{
system("CLS");
textcolor(CYAN_claro);
gotoxy(16,1);
printf("%c",201);//canto esquerdo topo
for(i=0;i<55;i++)
printf("%c",205);//horizontal
printf("%c",187);//canto direito topo//186 188 200 201 205 185 203 204 202
gotoxy(16,2);
printf("%c",186);//vertical
gotoxy(37,2);
textcolor( MAGENTA_claro);
printf("Menu Jogo do Galo");
textcolor(CYAN_claro);
gotoxy(72,2);
printf("%c",186);//vertical
gotoxy(16,3);
printf("%c",200);//canto esquerdo inferior
for(i=0;i<55;i++)
printf("%c",205);//horizontal
gotoxy(72,3);
printf("%c",188);//canto direito inferior
textcolor(CYAN_claro);
gotoxy(20,5);
printf("*************************************************\n");
gotoxy(20,6);
printf("* ");
textcolor(amarelo);
printf("Menu");
textcolor(CYAN_claro);
printf(" *\n");
gotoxy(20,7);
printf("* ");
if(escolha==1)
{
textcolor(branco);
printf(" %c Jogar com um amigo ",26);
textcolor(CYAN_claro);
}
else
printf(" Jogar com um amigo ");
printf("*\n");
gotoxy(20,8);
printf("* ");
if(escolha==2)
{
textcolor(branco);
printf(" %c Jogar com o PC ",26);
textcolor(CYAN_claro);
}
else
printf(" Jogar com o PC ");
printf("*\n");
gotoxy(20,9);
printf("* ");
if(escolha==3)
{
textcolor(branco);
printf(" %c Mostrar pontuacoes ",26,135,228);
textcolor(CYAN_claro);
}
else
printf(" Mostrar Pontuacoes ",135,228);
printf("*\n");
gotoxy(20,10);
printf("* ");
if(escolha==4)
{
textcolor(branco);
printf(" %c Guardar Jogo ",26,135,228);
textcolor(CYAN_claro);
}
else
printf(" Guardar Jogo ",135,228);
printf("*\n");
gotoxy(20,11);
printf("* ");
if(escolha==5)
{
textcolor(branco);
printf(" %c Sair ",26);
textcolor(CYAN_claro);
}
else
printf(" Sair ");
printf("*\n");
gotoxy(20,12);
printf("*************************************************\n");
printf("\t\t\tEscolha uma op%c%co\n",135,198);

opcao=getch();

if(opcao==NORTE && escolha >1)
escolha--;
if(opcao==SUL && escolha <5)
escolha++;
}while(opcao!=ENTER);
return escolha;
}

// *************************************************************************************
// * Fun��o Jogar com um amigo *
// *************************************************************************************
int Amigo()
{
int i,j,l=0,num,opcao=0;
char tabuleiro[3][3];//divis�o do tabuleiro
char O='O', X='X'; // o jogador 1 = 0 jogador 2 X

printf("\n\n\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
tabuleiro[i][j]=' ';

while(l<=9)
{
system ("CLS");
for(i=0;i<3;i++)
{
printf("\t\t %c \xBA %c \xBA %c\n",tabuleiro[i][0],tabuleiro[i][1],tabuleiro[i][2]);
if(i<3-1)
{
printf("\t\t ---\xCE---\xCE---\n");
}
}

printf("\n\n\nInisra as coordenadas, ");
if(l%2)printf("Jogador 2\nLINHA: ");
else printf("Jogador 1\nLinha: ");

scanf("%d",&i);
printf("Coluna: ");
scanf("%d",&j);

if(tabuleiro[i-1][j-1]==' ')
{
if(l%2)tabuleiro[i-1][j-1]=X;
else tabuleiro[i-1][j-1]=O;
l++;
}

//hipoteses do jogador 1 ganhar
if((tabuleiro[0][0]==O && tabuleiro[0][1]==O && tabuleiro[0][2]==O)||
(tabuleiro[1][0]==O && tabuleiro[1][1]==O && tabuleiro[1][2]==O)||
(tabuleiro[2][0]==O && tabuleiro[2][1]==O && tabuleiro[2][2]==O)||
(tabuleiro[0][0]==O && tabuleiro[1][0]==O && tabuleiro[2][0]==O)||
(tabuleiro[0][1]==O && tabuleiro[1][1]==O && tabuleiro[2][1]==O)||
(tabuleiro[0][2]==O && tabuleiro[1][2]==O && tabuleiro[2][2]==O)||
(tabuleiro[0][0]==O && tabuleiro[1][1]==O && tabuleiro[2][2]==O)||
(tabuleiro[0][2]==O && tabuleiro[1][1]==O && tabuleiro[2][0]==O))
{
printf("\n\a\t\tJogador 1, VOCE GANHOU!!!");
break;
}
//hipoteses do jogador 1 ganhar
if((tabuleiro[0][0]==X && tabuleiro[0][1]==X && tabuleiro[0][2]==X)||
(tabuleiro[1][0]==X && tabuleiro[1][1]==X && tabuleiro[1][2]==X)||
(tabuleiro[2][0]==X && tabuleiro[2][1]==X && tabuleiro[2][2]==X)||
(tabuleiro[0][0]==X && tabuleiro[1][0]==X && tabuleiro[2][0]==X)||
(tabuleiro[0][1]==X && tabuleiro[1][1]==X && tabuleiro[2][1]==X)||
(tabuleiro[0][2]==X && tabuleiro[1][2]==X && tabuleiro[2][2]==X)||
(tabuleiro[0][0]==X && tabuleiro[1][1]==X && tabuleiro[2][2]==X)||
(tabuleiro[0][2]==X && tabuleiro[1][1]==X && tabuleiro[2][0]==X))
{
printf("\n\n\n\n\a\t\tJogador 2, VOCE GANHOU!!!");
break;
}

if(l==9)
{
printf("PARTIDA EMPATADA");
break;
}

}
getch();
}



// *************************************************************************************
// * Fun��o Jogar com o pc *
// *************************************************************************************
int PC()
{

}

// *************************************************************************************
// * Fun��o Mostrar Pontua��es *
// *************************************************************************************
int MostrarPontuacao()
{

}

// *************************************************************************************
// * Fun��o Guardar Jogo *
// *************************************************************************************
int Guardar()
{

}
int main(int argc, char *argv[])
{
int opcao=0;

while (opcao != 5) //ciclo que tem 4 op�oes de escolha
{
opcao=Menu();//as opcoes sao do menu
switch(opcao)//
{
case 1:
Amigo();
break;

case 2:
PC();
break;
case 3:
MostrarPontuacao();
break;
case 4:
Guardar();
break;
}
}

system("PAUSE");
return 0;
}

Editado por thoga31
GeSHi

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pwseo    223
pwseo

Guardar o jogo e voltar a abri-lo a qualquer momento é simples... Basta guardar a posição dos X e os O.

Quanto a questão da inteligência artificial: https://en.wikipedia.org/wiki/Tic-tac-toe#Strategy

Obviamente, um computador que jogue com uma estratégia perfeita não tem piada, mas podes sempre introduzir falhas no seu raciocínio (ex.: alterar a ordem dos passos mencionados na wiki) ou então introduzir uma variável aleatória que determina se o computador vai jogar bem ou mal (ou, em último caso, podes colocar o computador a jogar ao acaso).

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
AninhasSilva    0
AninhasSilva

Sim,mas como é que eu guardo as posições?

Em relação ao jogo contra o pc,eu nao percebo muito do site porque tá em inglês,e eu não percebo grande coisa...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pwseo    223
pwseo

Em último caso podes sempre considerar cada uma das 9 posições como um inteiro e escrevê-los num ficheiro (e podes lê-los de volta com fscanf).

Quanto à wiki, podes escolher a opção para ver a versão portuguesa, também tem lá a estratégia para o "jogo perfeito".

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.