Olá boa noite amigos, estou a desenvolver um jogo em c++ estilo "tiktak toe" (jogo da velha.. jogo do galo...) e o programa consiste em nós pudermos escolher se conseguimos jogar contra a máquina ou contra algum player, até agora consegui fazer tudo direitinho mas não consigo colocar o programa a jogar contra o pc e preciso de entregar o trabalho para esta semana! gostava de saber se alguém pode ajudar, vou disponibilizar aqui o código para darem uma olhada:
using namespace std;
void init(int board[] [3]);
char printBlock(int block);
void show (int board[] [3]);
void playMove (int board[] [3], int);
int checkContinue (int *board[3]);
int checkWIn (int *board[3]);
int game (int board[] [3]);
void scoreboard (int, int &, int &);
string nome1, nome2;
int main()
{
int board [3][3];
int cont=0, player1=0, player2=0, result;
char s;
setlocale(LC_ALL,"Portuguese");
cout<<"********************* "<<endl;
cout<<"* JOGO DO GALO! *"<<endl;
cout<<"********************* "<<endl;
cout<<"Clique em ENTER para começar!"<<endl;
cin.get();
system("clear||cls");
cout<<"OLA! BEM-VINDO AO JOGO DO GALO, AS REGRAS SÃO SIMPLES! VAMOS LÁ REVER!!"<<endl;
cout<<"clica em ENTER para passar de regra em regra!"<<endl;
cin.get();
cout<<"REGRA 1: Arranja um amigo para jogar contigo pois o jogo só funciona com 2 jogadores"<<endl;
cin.get();
cout<<"REGRA 2: Nenhum jogador pode tentar jogar em algum casa já preenchida"<<endl;
cin.get();
cout<<"REGRA 3: A linha de peças iguais pode ser construida na vertical, na horizontal ou na oblíqua"<<endl;
cin.get();
cout<<"REGRA 4: Os dois jogadores colocam, alternadamente, as suas peças de forma a construirem uma linha com 3 peças iguais em tabuleiros 3 × 3";
cin.get();
cout<< "AGORA QUE ESTÁS PRONTO PARA JOGAR VAMOS LÁ COMEÇAR!!"<<endl;
cout<<"ENTER para prosseguir!"<<endl;
cin.get();
system("clear||cls");
cout<<"Insere o nome do primeiro jogador: ";
cin>>nome1;
cout<<"Insere o nome do segundo jogador: ";
cin>>nome2;
system("clear||cls");
cout<<"Olá "<<nome1<<" bem-vindo, apartir de agora és o jogador 1"<<endl;
cout<<"Olá "<<nome2<<" bem-vindo, apartir de agora és o jogador 2"<<endl;
cin.get();
do{
init(board);
result=game(board);
show(board);
scoreboard(result, player1, player2);
cout<<RESET"\n Outra partida?"<<endl;
cout<<RESET"0. Sair"<<endl;
cout<<RESET"1. Jogar de novo."<<endl;
cin>>cont;
}while(cont);
return 0;
}
void init(int board[][3])
{
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
board[i][j]=0;
}
char printBlock(int block)
{
if(block==0)
return ' ';
else if(block==1)
cout<<VERDE " X";
else
cout<<AZUL " O";
}
void show(int board[][3])
{
cout<<endl;
for(int row=0; row<3; row++){
cout<<" "<<printBlock(board[row][0])<<VERMELHO " |";
cout<<" "<<printBlock(board[row][1])<<VERMELHO" |" ;
cout<<" "<<printBlock(board[row][2])<<endl;
if(row!=2){
cout<<VERMELHO"___ ___ ___" RESET "\n"<<endl;
}
}
}
void playMove(int board[][3], int player)
{
int row, col, check;
do{
cout<<"Linha: ";
cin>>row;
cout<<"Coluna: ";
cin>>col;
row--;col--;
check=board[row][col] || row <0 || row>2 || col<0 || col>2;
if(check)
cout<<"Essa casa não está vazia ou está fora do intervalo 3x3"<<endl;
}while(check);
if(player==0)
board[row][col]=1;
else
board[row][col]=-1;
}
int checkContinue(int board[][3])
{
for(int i=0; i<3; i++)
for(int j=0; j<3; j++)
if(board[i][j]==0)
return 1;
return 0;
}
int checkWin(int board[][3])
{
int row, col, sum;
for(row=0; row<3; row++){
sum=0;
for(col=0; col<3; col++)
sum+=board[row][col];
if(sum==3)
return 1;
system("clear||cls");
Pergunta
Familía Santos
Olá boa noite amigos, estou a desenvolver um jogo em c++ estilo "tiktak toe" (jogo da velha.. jogo do galo...) e o programa consiste em nós pudermos escolher se conseguimos jogar contra a máquina ou contra algum player, até agora consegui fazer tudo direitinho mas não consigo colocar o programa a jogar contra o pc e preciso de entregar o trabalho para esta semana! gostava de saber se alguém pode ajudar, vou disponibilizar aqui o código para darem uma olhada:
#include <iostream>
#include <stdlib.h>
#include <string>
#include <locale>
#define VERMELHO "\x1b[31m"
#define VERDE "\x1b[32m"
#define AZUL "\x1b[34m"
#define RESET "\x1b[0m"
using namespace std;
void init(int board[] [3]);
char printBlock(int block);
void show (int board[] [3]);
void playMove (int board[] [3], int);
int checkContinue (int *board[3]);
int checkWIn (int *board[3]);
int game (int board[] [3]);
void scoreboard (int, int &, int &);
string nome1, nome2;
int main()
{
int board [3][3];
int cont=0, player1=0, player2=0, result;
char s;
setlocale(LC_ALL,"Portuguese");
cout<<"********************* "<<endl;
cout<<"* JOGO DO GALO! *"<<endl;
cout<<"********************* "<<endl;
cout<<"Clique em ENTER para começar!"<<endl;
cin.get();
system("clear||cls");
cout<<"OLA! BEM-VINDO AO JOGO DO GALO, AS REGRAS SÃO SIMPLES! VAMOS LÁ REVER!!"<<endl;
cout<<"clica em ENTER para passar de regra em regra!"<<endl;
cin.get();
cout<<"REGRA 1: Arranja um amigo para jogar contigo pois o jogo só funciona com 2 jogadores"<<endl;
cin.get();
cout<<"REGRA 2: Nenhum jogador pode tentar jogar em algum casa já preenchida"<<endl;
cin.get();
cout<<"REGRA 3: A linha de peças iguais pode ser construida na vertical, na horizontal ou na oblíqua"<<endl;
cin.get();
cout<<"REGRA 4: Os dois jogadores colocam, alternadamente, as suas peças de forma a construirem uma linha com 3 peças iguais em tabuleiros 3 × 3";
cin.get();
cout<< "AGORA QUE ESTÁS PRONTO PARA JOGAR VAMOS LÁ COMEÇAR!!"<<endl;
cout<<"ENTER para prosseguir!"<<endl;
cin.get();
system("clear||cls");
cout<<"Insere o nome do primeiro jogador: ";
cin>>nome1;
cout<<"Insere o nome do segundo jogador: ";
cin>>nome2;
system("clear||cls");
cout<<"Olá "<<nome1<<" bem-vindo, apartir de agora és o jogador 1"<<endl;
cout<<"Olá "<<nome2<<" bem-vindo, apartir de agora és o jogador 2"<<endl;
cin.get();
do{
init(board);
result=game(board);
show(board);
scoreboard(result, player1, player2);
cout<<RESET"\n Outra partida?"<<endl;
cout<<RESET"0. Sair"<<endl;
cout<<RESET"1. Jogar de novo."<<endl;
cin>>cont;
}while(cont);
return 0;
}
void init(int board[][3])
{
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
board[i][j]=0;
}
char printBlock(int block)
{
if(block==0)
return ' ';
else if(block==1)
cout<<VERDE " X";
else
cout<<AZUL " O";
}
void show(int board[][3])
{
cout<<endl;
for(int row=0; row<3; row++){
cout<<" "<<printBlock(board[row][0])<<VERMELHO " |";
cout<<" "<<printBlock(board[row][1])<<VERMELHO" |" ;
cout<<" "<<printBlock(board[row][2])<<endl;
if(row!=2){
cout<<VERMELHO"___ ___ ___" RESET "\n"<<endl;
}
}
}
void playMove(int board[][3], int player)
{
int row, col, check;
do{
cout<<"Linha: ";
cin>>row;
cout<<"Coluna: ";
cin>>col;
row--;col--;
check=board[row][col] || row <0 || row>2 || col<0 || col>2;
if(check)
cout<<"Essa casa não está vazia ou está fora do intervalo 3x3"<<endl;
}while(check);
if(player==0)
board[row][col]=1;
else
board[row][col]=-1;
}
int checkContinue(int board[][3])
{
for(int i=0; i<3; i++)
for(int j=0; j<3; j++)
if(board[i][j]==0)
return 1;
return 0;
}
int checkWin(int board[][3])
{
int row, col, sum;
for(row=0; row<3; row++){
sum=0;
for(col=0; col<3; col++)
sum+=board[row][col];
if(sum==3)
return 1;
system("clear||cls");
if(sum==-3)
return -1;
system("clear||cls");
}
for(col=0; col<3; col++){
sum=0;
for(row=0; row<3; row++)
sum+= board[row][col];
if(sum==3)
return 1;
system("clear||cls");
if(sum==-3)
return -1;
system("clear||cls");
}
sum=0;
for(row=0; row <3; row++)
sum += board[row][row];
if(sum==3)
return 1;
system("clear||cls");
if(sum==-3)
return -1;
system("clear||cls");
sum=board[0][2]+board[1][1]+board[2][0];
if(sum==3)
return 1;
if(sum==-3)
return -1;
return 0;
}
int game(int board[][3])
{
int turn=0, cont, win;
do{
show(board);
if (1+turn%2==1){
cout<<RESET""<<nome1<<endl;
}else{
cout<<RESET ""<<nome2<<endl;
}
playMove(board, turn%2);
turn++;
cont=checkContinue(board);
win=checkWin(board);
}while(cont && !win);
if(win==1){
cout<<nome1<<" ganhou!\n"<<endl;
return 1;
}else
if(win==-1){
cout<<nome2<<" ganhou!\n"<<endl;
return 2;
}else
cout<<"Empate\n"<<endl;
return 0;
}
void scoreboard(int result, int &player1, int &player2)
{
if(result==1)
player1++;
if(result==2)
player2++;
cout<<"\nPlacar: "<<endl;
cout<<player1<<"x"<<player2<<endl;
}
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.