Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda com menu p/ programa gerador de número aleatório


Fernando Paladini

Pergunta

Eaí galera tudo bem?

Então, estou começando a estudar C++ e fiz um programa para adivinhar numeros com base na data atual (Google ajudou com o timer e gerar números randônicos). Eu estava querendo melhorar o programa e colocar umas firulas B) . Eu decidi criar um menu, um highscore (que não sei como salvar de outras partidas, mas não está em questão). O menu é constituido de vários itens e o programa não está totalmente finalizado - faltam alguns menus (não consegui, os erros me impediram).

Estou usando a IDE Dev C++.

Quando vou compilar recebo o erro:

85 C:\Dev-Cpp\Video-aulas\Adivinhar-Fodão.cpp expected `;' before "if"

90 C:\Dev-Cpp\Video-aulas\Adivinhar-Fodão.cpp expected `}' at end of input

Queria que me ajudassem a resolver esse erro e também a "salvar highscores" de outras "sessões" e exibir no programa. Também gostaria de fazer uma opção para quando por exemplo você estiver no menu Ajuda/Recordes poder voltar ao menu principal. Em Batch Script eu usava bastante o Goto, mas já vi diversas vezes que não é muito bom usar isso.

Porém, se puderem resolver meu erro já está bom. A estrutura não está muito boa porque não quis refazer o programa e só adicionei o menu em cima :rolleyes:

#include <iostream>
#include <ostream>

using namespace std;

int main(){
    
    int opt;
    int score;
    int menu;
    int nome;
    int numero;
    int x=0,y=55;

    system("cls");
    cout << "Jogo de Adivinhacao" << endl;
    cout << "===================";
    cout << "\nPor Fernando Paladini" << endl;
    _sleep(2000);
    system("cls");
    cout << "Digite seu nome de usuario: ";
    cin >> nome;
    _sleep(2000);
    while (x<y){
    srand( time(NULL) );
    numero = rand();
    while (numero>10){
         numero /=2;
         if (numero%2==0){
              numero-=1;
         }else{
              numero+=2;
         } 
    }
                   
    /* Inicio do Programa por Fernando Paladini */

    system("cls");
    cout << "1 - Novo Jogo" << endl;
    cout << "2 - Recordes" << endl;
    cout << "3 - Ajuda" << endl;
    cout << "4 - Sair" << endl;
    cin >> menu;
    if (menu==1){
    cout << "Digite um numero de 0 a 10:   ";
    cin >> opt;
    if (opt == numero){
            system("cls");
            x = 60;
            score+=10;
            cout << "O numero certo é: " << numero << endl;
            cout << "\nVoce Acertou! Parabens!" << endl;
            system("pause");
    }else{
            system("cls");
            cout << "Numero errado, tente novamente!" << endl;
            cout << "\nO numero certo era: " << numero << "\n";
            system("pause");
    }
    }
    }
    if (menu==2){
                 system("cls");
                 _sleep(500);
                 cout << "Salvando recorde atual...\n";
                 _sleep(500);
                 system("cls");
                 cout << "Pegando informacoes do sistema...\n";
                 _sleep(500);
                 system("cls");
                 cout << "Carregando recordes anteriores...\n";
                 _sleep(500);
                 system("cls");
                 cout << "Carregando interface do usuario...\n";
                 _sleep(500);
                 system("cls");
                 cout << "Arquivo Recordes pronto para a execucao!\n";
                 _sleep(2000);
                 system("cls");
                 cout << "============================================ Recordes do jogo ==================================================\n\n";
                 cout << "---------- Nome do Jogador ------------------- Pontos -----------------------\n";
                 cout << nome << "--------------------" << score << "\n\n\n";
                 system("pause")
    }
    if (menu==3){
                 system("cls");            
    }
    }
    return 0;
}

Eaí, sabem o que tem de errado?

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Aqui faltou você colocar ;(ponto e virgula) no final da função system("pause").

cout << "---------- Nome do Jogador ------------------- Pontos -----------------------\n";
                 cout << nome << "--------------------" << score << "\n\n\n";
                 system("pause")
Aqui você colocou um } (fecha chaves) a mais.
if (menu==3){
                 system("cls");            
}
}

Quanto ao restante da sua lógica, não olhei apenas a sintaxe do teu código.

Link para o comentário
Compartilhar em outros sites

  • 0
Aqui faltou você colocar ;(ponto e virgula) no final da função system("pause").

cout << "---------- Nome do Jogador ------------------- Pontos -----------------------\n";
                 cout << nome << "--------------------" << score << "\n\n\n";
                 system("pause")
Aqui você colocou um } (fecha chaves) a mais.
if (menu==3){
                 system("cls");            
}
}
Quanto ao restante da sua lógica, não olhei apenas a sintaxe do teu código.
Obrigado, vou verificar o código mais tarde. Esse ponto e virgula faltando foi uma idiotice. Nada no estilo de voltar ao menu principal depois de escolher um menu como Recordes ou Ajuda? Eu poderia usar while, mas acho que ficaria muito complexo,mesmo assim, se alguém tiver uma dica pode falar. :wacko: Obrigado, até logo. --------------------------EDIT-------------------------------------- Já corrigi os erros apontados, porém quando chega na parte do mundo principal, que tem um "cin" ele 'trava'. Você não pode digitar nada e o menu fica piscando. novo código:

Valeu galera, seria muito bom se pudessem me ajudar!

#include <iostream>
#include <ostream>

using namespace std;

int main(){
    
    int opt;
    int score;
    int menu;
    int nome;
    int numero;
    int x=0,y=55;

    system("cls");
    cout << "Jogo de Adivinhacao" << endl;
    cout << "===================";
    cout << "\nPor Fernando Paladini" << endl;
    _sleep(2000);
    system("cls");
    cout << "Digite seu nome de usuario: ";
    cin >> nome;
    cout << " -- Aguarde ..." << endl;
    _sleep(2000);
    while (x<y){
    srand( time(NULL) );
    numero = rand();
    while (numero>10){
         numero /=2;
         if (numero%2==0){
              numero-=1;
         }else{
              numero+=2;
         } 
    }
                   
    /* Inicio do Programa por Fernando Paladini */

    system("cls");
    cout << "1 - Novo Jogo" << endl;
    cout << "2 - Recordes" << endl;
    cout << "3 - Ajuda" << endl;
    cout << "4 - Sair" << endl;
    cin >> menu;
    if (menu==1){
    cout << "Digite um numero de 0 a 10:   ";
    cin >> opt;
    if (opt == numero){
            system("cls");
            x = 60;
            score+=10;
            cout << "O numero certo é: " << numero << endl;
            cout << "\nVoce Acertou! Parabens!" << endl;
            system("pause");
    }else{
            system("cls");
            cout << "Numero errado, tente novamente!" << endl;
            cout << "\nO numero certo era: " << numero << "\n";
            system("pause");
    }
    }
    }
    if (menu==2){
                 system("cls");
                 _sleep(500);
                 cout << "Salvando recorde atual...\n";
                 _sleep(500);
                 system("cls");
                 cout << "Pegando informacoes do sistema...\n";
                 _sleep(500);
                 system("cls");
                 cout << "Carregando recordes anteriores...\n";
                 _sleep(500);
                 system("cls");
                 cout << "Carregando interface do usuario...\n";
                 _sleep(500);
                 system("cls");
                 cout << "Arquivo Recordes pronto para a execucao!\n";
                 _sleep(2000);
                 system("cls");
                 cout << "============================================ Recordes do jogo ==================================================\n\n";
                 cout << "---------- Nome do Jogador ------------------- Pontos -----------------------\n";
                 cout << nome << "--------------------" << score << "\n\n\n";
                 system("pause");
    }
    if (menu==3){
                 system("cls");            
    }
    return 0;
}

Editado por Fernando Paladini
Link para o comentário
Compartilhar em outros sites

  • 0

exemplo de codigo usando switch case:

#include <iostream>    
 #include <cstdlib>    
 using namespace std;    
      
 int main (void){    
    int a, b, c, operacao;    
    cout <<"Digite o 1o valor: ";    
    cin >> a;    
    cin ignore ();   
    cout <<"Digite o 2o valor: ";    
    cin >> b;    
    cin ignore ();   
    cout <<"Que operacao deseja realizar?\n\1  Adicao\t2 Subtracao\t3 Multiplicacao\t4 Divisao\n\n=>";
    cin >> operacao;    
    cin ignore ();   
    system ("cls");    
    switch (operacao){    
       case 1:    
          c=a+b;    
          cout <<a<<" + "<<b<<" = "<<c<<"\n\n";    
       break;    
       case 2:    
          c=a-b;    
          cout <<a<<" - "<<b<<" = "<<c<<"\n\n";    
       break;    
       case 3:    
          c=a*b;    
          cout <<a<<" * "<<b<<" = "<<c<<"\n\n";    
       break;    
       case 4:    
          c=a/b;    
          cout <<a<<" / "<<b<<" = "<<c<<"\n\n";    
       break;    
    }    
    system ("pause");    
    return EXIT_SUCCESS;    
 }

Fonte: http://www.tiexpert.net/programacao/c/swit...ase-default.php

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...