Par ou Ímpar em C++: Código comentado do Jogo
As variáveis 'jogador' e 'computador' vão armazenar, respectivamente, o número de vitórias suas e da máquina, respectivamente. A função placar() serve somente para exibir o placar, usando essas variáveis.A função par_impar() serve para perguntar ao jogador se ele quer escolher par (deve digitar 0) ou ímpar (digitar 1), e retorna esse valor.
Na função jogada_humano(), o usuário vai escolher um número para jogar.
Na função jogada_computador(), a sua máquina vai sortear um número de 0 até 11, usando geração de números aleatórios.
Por fim, a função jogada() vai pegar qual opção o jogador escolheu (par ou ímpar), o número que o jogador lançou e o número que a máquina jogou. Ele vai somar esses números escolhidos e testar se é par (resto da soma deve ser 0) ou ímpar (resto da soma deve ser 1).
Ele avisa o resultado que deu, quem ganhou e incrementa a variável 'jogador' ou 'computador' corretamente, para exibição no placar.
Na main(), tem a variável 'continuar', para decidir se o jogo deve rodar novamente ou não.
A variável 'parimpar' recebe a opção do usuário, se quer PAR ou ÍMPAR.
O número que o jogador escolheu fica na variável 'num_jogador' e que a máquina sorteou fica na 'num_comp'.
Agora é só fazer a jogada e exibir o placar.
Para perguntar se o jogador deseja jogar mais uma vez e para garantir que ocorra pelo menos uma jogada, usamos o laço DO WHILE.
Código do jogo Par ou Ímpar em C++
#include <iostream> #include <cstdlib> #include <ctime> using namespace std; int jogador=0, computador=0; void placar(); // Exibe o placar int par_impar(); // Jogador diz se quer par ou ímpar int jogada_humano(); // Humano escolhe numero int jogada_computador();// Computador escolhe numero void jogada(int parimpar, int jog, int comp); // Verifica quem ganhou int main() { int continuar=1, parimpar, num_jogador, num_comp; do{ parimpar = par_impar(); num_jogador = jogada_humano(); num_comp = jogada_computador(); jogada(parimpar, num_jogador, num_comp); placar(); cout<<"\nJogar mais uma vez?"<<endl; cout<<"0. Sair"<<endl; cout<<"1. Jogar de novo"<<endl; cin >> continuar; }while(continuar); return 0; } int par_impar() { int num; cout<<"\nPar ou ímpar? Digite:"<<endl; cout<<"0 para par"<<endl; cout<<"1 para ímpar"<<endl; cin >> num; return num; } int jogada_humano() { int num; cout<<"\nDigite um número de 0 até 10:"<<endl; cin >> num; return num; } int jogada_computador() { unsigned seed = time(0); srand(seed); return rand()%11; } void jogada(int parimpar, int jog, int comp) { cout<<"\nJOGADA: "<<endl; cout<<"Humano = "<<jog<<endl; cout<<"Máquina = "<<comp<<endl; cout<<"Soma = "<<(jog+comp)<<endl; cout<<"Resultado = "; if( (jog+comp)%2 == 0 ) cout<<"PAR\n"; else cout<<"ÍMPAR\n"; if( (jog+comp)%2 == parimpar){ cout<<"\nHumano ganhou!"<<endl; jogador++; } else{ cout<<"\nMáquina ganhou!"<<endl; computador++; } } void placar() { cout <<"\nPLACAR"<<endl; cout <<">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"<<endl; cout <<"Jogador: "<<jogador<<"\t Computador: "<<computador<<endl; cout <<"<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"<<endl; }
Você conseguiria incrementar e deixar nosso jogo mais robusto? Por exemplo, verificando se o usuário digitou um número de 0 até 10? Checando também se ele digita 0 ou 1, para continuar a jogar. Mais alguma falha ou ponto fraco, que você notou?
Ola meu nome é alyson eu estou aprendendo legal com o curso, tanto que fiz uma simples modificação no script, fazendo de player x cpu contra player x player.
ResponderExcluir#include
#include
#include
using namespace std;
int jogador=0,
jogador2=0;
void placar();
int par_impar();
int jogada_humano();
int jogada_computador();
void jogada(int parimpar, int jog, int comp);
int main()
{
int continuar=1,
parimpar,
num_jogador,
num_comp;
do{
parimpar = par_impar();
num_jogador = jogada_humano();
num_comp = jogada_computador();
jogada(parimpar, num_jogador, num_comp);
placar();
cout<<"\nJogar mais uma vez?"<> continuar;
}while(continuar);
return 0;
}
int par_impar()
{
int num;
cout<<"+=================+"<> num;
return num;
}
int jogada_humano()
{
int num;
cout<<"\nJogador 1 Digite um numero de 0 a 10:"<> num;
return num;
}
int jogada_computador()
{
int num;
cout<<"\nJogador 2 Digite um numero de 0 a 10:"<> num;
return num;
}
void jogada(int parimpar, int jog, int comp)
{
cout<<"\nJOGADA: "<<endl;
cout<<"Jogador 1 = "<<jog<<endl;
cout<<"Jogador 2 = "<<comp<<endl;
cout<<"Soma = "<<(jog+comp)<<endl;
cout<<"Resultado = ";
if( (jog+comp)%2 == 0 )
cout<<"PAR\n";
else
cout<<"IMPAR\n";
if( (jog+comp)%2 == parimpar){
cout<<"\nJogador 1 venceu!"<<endl;
jogador++;
}
else{
cout<<"\nJogador 2 venceu!"<<endl;
jogador2++;
}
}
void placar()
{
cout <<"\nPLACAR"<<endl;
cout <<"+===================================+"<<endl;
cout <<"Jogador 1: "<<jogador<<"\t Jogador 2: "<<jogador2<<endl;
cout <<"+===================================+"<<endl;
}