Ajude nosso projeto a se manter online.

Par ou Ímpar em C++: Como programar

Neste tutorial, vamos aprender como programar o jogo do Par ou Ímpar, em C++, onde o usuário vai jogar contra o computador.

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?

Nenhum comentário:

Postar um comentário