Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Emanuelalobo

repetição em C++

Recommended Posts

Tenho um jogo praticamente feito em C++ porém a estrutura para faze-lo repetir não está funcionando. Eu criei um DO WHILE com as condições dentro e quando o jogo acaba que pergunto se o usuário que jogar novamente ele gera o jogo mas gera com as condições do jogo antigo.

 

Alguém pode me ajudar??

 

SEGUE O CÓDIGO:

 

#include <iostream>
#include <cstdlib>
#include <iostream>
#include <time.h>
#include <cctype.>
 
 
using namespace std;
 
int main(int argc, char *argv[])
{
    
   int a; // Numero gerado pelo computador
    int Palpite; // Palpite dado pelo jogador
    int p=0; // Variavel para criação dos numeros do jogo
    int comeco=0; // Variavel para 1º numero do jogo
    int final=100; // Variavel para ultimo numero do jogo
    int vezes=0; // Contador de tentativas
    int j; // Variavel de opção para recomeçar ou não o jogo
       
  
    
     
    cout<<"                     APERTE 'ENTER' \n\n\ ";
    cout<<"\a";
    
   getchar();
   system("cls"); // Função de limpar tela 
   system ("color 0E"); // Modificar a cor (FUNDO PRETO | LETRAS AMARELAS)
   
        
    cout<<"      ----------------------------------";
    cout<<"                                                 ";
    cout<<"        ACERTE O NUMERO                                                    ";
    cout<<"---------------------------------------";
    cout<<"\n\n";
   
   
    cout<<"                   INSTRUCOES: \n\n";
    cout<<"Este jogo trata-se de tentativa e erro. O computador ira gerar um numero entre  0 e 100 e voce deve acertar qual foi o numero escolhido. ";
    cout<<"Para isso, voce terar  quantas tentativas precisar ate encontrar o numero. A medida que voce, digita   um numero os valores menores e maiores ";
    cout<<" que eles serao eliminados, facilitando  assim seu palpite!\n\n\n";
    
    
   
    cout<<"                 Vamos comecar? Aperte 'ENTER' para dar inicio ao jogo \n \n \n";
    
    cout<<" BOA SORTE!!\n\n";
    
    getchar();
   system("cls");
   system ("color 0E");
   
 
 do // A estrutura de repetição DO WHILE parte do princípio de que deve-se fazer algo primeiro e só depois comparar uma variável para saber se o loop será executado mais uma vez. 
{    
     
    a = rand () %101; // Função para criação de um numero aleatorio pelo computador
    cout<<a<<  "\n";
    
                 
     cout<<"Escolha um numero dentre esses ---> \n\n";
     for(p=0; p<=100; p++){  // Criação da grade de opções de numeros       
     cout<<"\t |";
     cout<<p<< "|""     ";
         }
     
     do  
{
     vezes++;  
     
         
     cout<<" \n Digite seu Palpite. ESTE DEVE ESTAR ENTRE " <<comeco<< " e " <<final<< "\n" ;      
         
     printf("\n Palpite %d: ", vezes); // Imprimir a quantidade de vezes que os palpites são feitos
     scanf("%d", & Palpite);            
 
     if(!isdigit(Palpite)){ //  Verifica se o caracter ou inteiro passado como parâmetro é um digito. Isso inclui todos os números
    
     
     getchar();
     system ("cls");
}     
    
    if (Palpite>100){ //Condição para restringir o numero de numeros do jogo, dando assim um erro 
     cout<<"ERRO!! VOCE DIGITOU UM NUMERO MAIOR QUE 100, ISSO NAO EH PERMITIDO. \n";
}
    
    if (Palpite<0){ //Condição para restringir o numero de numeros do jogo, dando assim um erro 
     cout<<"ERRO!! VOCE DIGITOU UM NUMERO MENOR QUE 0, ISSO NAO EH PERMETIDO. \n";
}
     
              
    if ((a>Palpite) && (Palpite>comeco)){ //Condição para ir limitando os numeros a serem escolhidos 
           cout<<"Voce ainda nao acertou, tente mais uma vez \n\n\n";     
     
    for(int p=Palpite+1; p<=final; p++){ 
     cout<<"\t |";
     cout<<p<< "|" "     ";
    comeco=Palpite+1; //Faz com que o numero do começo da grade incremente mais 1 numero
}    
    }
     
    else if ((a<Palpite) && (Palpite<final)){ //Condição para ir limitando os numeros a serem escolhidos 
          cout<<"Voce ainda nao acertou, tente mais uma vez \n\n\n";
        
     for(int p=comeco; p<=Palpite-1; p++){ 
     cout<<"\t |";
     cout<<p<< "|" "     ";
    final=Palpite-1; //Faz com que o numero do final da grade diminue 1 numero   
}    
     }
 
    else if (a==Palpite) { //Condição que faz do jogador ganhador
       
        printf("\t PARABENS, VOCE GANHOU!!!! \a\a\a EM %d TENTATIVAS!!!\n", vezes); //Imprime na tela a mensagem de ganhador e mostra a quantidade de suas tentativas
        
 
        cout<<"E AI, QUER JOGAR MAIS UMA VEZ? \n\n\n";
        cout<<"SE SIM, APERTE  1 \n";
        cout<<"SE NAO, APERTE  2 \n";
        cin>>j; //Variável para a opção de recomeçar o jogo   
}
}while(Palpite!=a); // Enquanto o palpite for diferente do valor escolhido pelo computador, o jogo roda
}while(j==1); // 
 
if(j==2){
 
 
}
 
    system("PAUSE");
    return EXIT_SUCCESS;
}

 

DESDE JÁ AGRADEÇO!!

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://www.cplusplus.com/reference/cstdlib/rand/

 

A typical way to generate trivial pseudo-random numbers in a determined range using rand is to use the modulo of the returned value by the range span and add the initial value of the range


http://www.cplusplus.com/reference/cstdlib/srand/

Por que criou uma enquete?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.