Guessing game with 3 difficulty levels

Asked

Viewed 45 times

-2

I’m trying to create a 3-level puzzle game with input at a prompt but I’m having a problem with the choice of levels, regardless of the value entered at the prompt, the level that always runs is 1st. I’ll just leave the code until the second condition, to save space.

var nivel = 10 ;
var random = (Math.random(nivel));
var multiply = random * nivel;
var round = Math.round(multiply) ;
var number = round;

  for ( i=1; i<=3; i++ ) {
    var escolhaNivel = prompt("escolhe um nível entre 1, 2 ou 3");
      if ( escolhaNivel = "1" ) {
        nivel = nivel
      } else if ( escolhaNivel = "2" ) {
        nivel = 100
      } else if ( escolhaNivel = "3" ) {
        nivel = 100000
      } else{
        alert( "Escolhe entre 1 a 3!" );
      }


if(nivel === nivel) {
    

  var guess = prompt( "Qual é o número que pensei entre 1 e 10?" );

   if( guess < number) { 

   alert( "Maior! Qual é o número? " + "Tentativas restantes: " + (3-i) );

  
  } else if( guess < number) { 

    alert( "Maior! Qual é o número? " + "Tentativas restantes: " + (3-i) );

  } else if ( guess > number ) {

    alert( "Menor! Qual é o número? " + "Tentativas restantes: " + (3-i) );

  } else {

    alert( " Muito bem! Acertaste no número! " + number );
  }

}

else if(nivel === nivel2) {

var guess = prompt( "Qual é o número que pensei entre 1 e 100?" );

 if( guess < number) { 

 alert( "Maior! Qual é o número? " + "Tentativas restantes: " + (3-i) );


} else if( guess < number) { 

  alert( "Maior! Qual é o número? " + "Tentativas restantes: " + (3-i) );

} else if ( guess > number ) {

  alert( "Menor! Qual é o número? " + "Tentativas restantes: " + (3-i) );

} else {

  alert( " Muito bem! Acertaste no número! " + number );
}

}
  • 1

    nivel === nivel will always be true regardless of the value of nivel and nivel = nivel does not change the value of nivel.

  • 1

    In addition to what was said in the comment above, you are assigning a value within the if (escolhaNivel = "1"), the correct would be to compare with === instead of = (which is an assignment of value).

2 answers

0

Good afternoon, Surge! All right?

I would do this code with the use of functions. I left it commented to be better understood. : -) Let me know if it works!

Hug!

function geral() {

    //aqui o prompt vai chamar uma função que recebe como argumento o nível 
    //escolhido pelo user:
    var nivelEscolhido = level(prompt('Escolha um nível entre 1 e 3'));

    //essa função recebe o nível escolhido e com algumas condicionais
    //retorna a chamada para outra função com o argumento do nível:
    function level(nivel) {
        if (nivel == 1) {
            return jogo(nivel);
        }

        if (nivel == 2) {
            jogo(nivel);
            return jogo(nivel);
        }

        if (nivel == 3) {
            jogo(nivel);
            return jogo(nivel);
        }
    };

    //essa função chama o jogo propriamente dito e coloca o usuário no
    //nível escolhido:
    function jogo(nivel) {
        //muita atenção aqui: use só 2 sinais de = pois o resultado do 
        //prompt é uma string. Se usar === não vai funcionar. 
        if (nivel == 1) {
            //teu código do nível um aqui
            console.log('código nivel 1')
            return;
        }
        if (nivel == 2) {
            //teu código do nível dois aqui
            console.log('código nivel 2')
            return;
        }
        if (nivel == 3) {
            //teu código do nível três aqui
            console.log('código nivel 3')
            return;
        }
    }

};geral();
  • Good evening, thank you very much, already solved the problem of reading the level value, but now after trying to guess for the first time the prompt closes and does not play itself. Hug!

  • Good morning! If possible put your full code here or on Github so we can see the project as a whole. Hug!

0


I’m sorry for the delay in answering but I was able to do what I wanted. I’ll leave the code down. A hug!

<!DOCTYPE html> 
<html> 
<head> 
 <meta charset="utf-8"> 
 <title>Jogo da Adivinha</title> 
</head>
<body> 
<script type = "text/javascript"> 
 while(true){    
     var nivelEscolhido = prompt("Escolhe um nível entre 1, 2 e 3");
     var tentativas = 1;
     var check = false;
         if (nivelEscolhido == 1){ 
             var number = Math.floor(Math.random() * 11);
             while (tentativas <= 3){
                 var guess = prompt("Insere um número entre 0 e 10");
                 if (number == guess){
                     alert("Parabéns, acertaste no número em " +tentativas+ " tentativas!");
                     check = true;
                     break;
                 }
                 else if (number > guess){
                     alert("O meu número é maior que o teu!");
                 }
                 else if (number < guess){
                     alert("O meu número é menor que o teu!");
                 }
                 tentativas++;
             }
             if (check == false){
                 alert("GAME OVER");
             }
         }
         else if (nivelEscolhido == 2){
             var number = Math.floor(Math.random() * 101);
             while (tentativas <= 3){
                 var guess = prompt("Insere um número entre 0 e 100");
                 if (number == guess){
                     alert("Parabéns, acertaste no número em " +tentativas+ " tentativas!");
                     check = true;
                     break;
                 }
                 else if (number > guess){
                     alert("O meu número é maior que o teu!");
                 }
                 else if (number < guess){
                     alert("O meu número é menor que o teu!");
                 }
                 tentativas++;   
             }
             if (check == false){
                 alert("GAME OVER");
             }
         }

         else if (nivelEscolhido == 3){
             var number = Math.floor(Math.random() * 100001);
             while (tentativas <= 6){
                 var guess = prompt("Insere um número entre 0 e 100000");
                 if (number == guess){
                     alert("Parabéns, acertaste no número em " +tentativas+ " tentativas!");
                     check = true;
                     break;
                 }
                 else if (number > guess){
                     alert("O meu número é maior que o teu!");
                 }
                 else if (number < guess){
                     alert("O meu número é menor que o teu!");
                 }
                 tentativas++;
             }
             if (check == false){
                 alert("GAME OVER");
             }
         }
 }
</script> 
</body> 
</html>   

Browser other questions tagged

You are not signed in. Login or sign up in order to post.