Jump to content
Fórum Script Brasil
  • 0

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


Fernando Paladini

Question

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 to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0
Guest Binder#

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 to comment
Share on other 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;
}

Edited by Fernando Paladini
Link to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...