Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Problemas com a seleção de Níveis

Não estou conseguindo fazer a função de escolha de niveis funcionar corretamente. Não importa qual eu escolha ela só me da 5 tentativas !

        #include <stdlib.h>
        #include <stdio.h>
        #include <locale.h>
        #include <time.h>

        /*#define numero_de_tentativas 3
        foi alterado para loop de repetição infinito
        com contagem de erros do usuario a partir do momento em que o usuario acertar
        sera reproduzido quantas vezes ele errou para poder acertar !*/

        int main(){
            setlocale(LC_ALL, "");


            int chute;

            printf("***********\n");

            printf("Bem Vindo!\n");

            printf("***********\n");

            printf("Vamos jogar ? \n");

            // um laço de repetiçao simples "for"(int i = 1; i <= numero_de_tentativas; i++){
            int segundos = time(0);
            srand(segundos);

            int acertou = 0;


            int nivel;
            int numerodetentativas;

            printf("Qual nivel de dificuldade você prefere jogar?\n");
            printf("[1] Facil, [2] Mediano, [3] Dificil.\n\n");
            printf("Escolha:");
            scanf("%d",&nivel);

             switch(nivel){
          case 1:
            numerodetentativas = 20;
          case 2:
            numerodetentativas = 15;
          default :
            numerodetentativas = 5;
          }

            int numerogrande = rand();

            int numerosecreto = numerogrande % 100 ;

            int ganhou = 0;
            int tentativas = 1;
            double pontos = 1000;


            for(int i = 1; i <= numerodetentativas; i++){
            printf("Tentativa %d \n\n", tentativas);
            printf("Tente adivinhar o numero que eu estou pensando! \n\n");
            scanf("%d", &chute);

            if(chute < 0){
                printf("Voce deve Digitar apenas numeros Positivos!\n\n");

                continue;
            }

            printf("Seu chute foi %d \n",chute);

                int acertou = (chute == numerosecreto);
                int maior = chute > numerosecreto;

            if (acertou ){
               break;
            }



                else if (maior) {
                    printf("Seu chute foi maior do que o numero Secreto!\n");
                }


                else{
                    printf("Seu chute foi menor que o numero Secreto!\n\n");
                   }
                tentativas++;
                                   // a função abs me da o absoluto da somatoria (EXEMPLO: - com - = +;)

            double pontosperdidos = abs(chute - numerosecreto) /2.0; // soma de pontos do usuario
            pontos = pontos - pontosperdidos;


            }
            if (acertou){
            printf("FIM DE JOGO \n");
            printf("Parabéns você é um bom jogador ! Jogue de Novo.");
            printf("Voce acertou em %d Tentativas\n\n", tentativas -1);
            printf("Total de Pontos %.1f\n\n", pontos);
            }
            else{ printf("FIM DE JOGO \n");
                printf("Vc perdeu !");
                printf("Tente de Novo! ");
            }




            return 0;






    }
1 resposta
solução!

Achei o erro kkkk Desculpa pessoal ... esqueci de por os break. kkk

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software