Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Jogo advinha - Help!

Bom dia pra quem ainda não dormiu kkk

Então, era pro código ter três tentativas mas só tá indo duas =/ O que tá errado?

<meta charset="UTF-8">
<script>
    function pulaLinha(){
        document.write("<br>");
    }
    function mostra(frase){
        document.write(frase);
        pulaLinha();
    }
  var numeroPensado=Math.round(Math.random()*10);
  console.log(numeroPensado);
  var totalChances=3;
  var chance=1;
  while(chance<=totalChances){
    var chute=parseInt(prompt("Pensei em um número até 10. Tente advinhar!"));
    if(chute==numeroPensado){
      alert("Parabéns! Você acertou!");
      chance=totalChances;
    }else{
      totalChances=totalChances-1;
      alert("Você errou! Você tem mais "+totalChances+" tentativas!");
    }
    chance++;
  }
</script>

Ah, e o Math.random()*10 sorteia um número entre 1-10 ou entre 0-10?

6 respostas
solução!

Oi Jorge, tudo bem?

Cara, você está mexendo nas duas variáveis de validação da condição do while.

No else você está fazendo totalChances = totalChances - 1;. E no final do while está fazendo chance++.

Sendo assim, no final da primeira tentativa totalChances "vira" 2 e chance também "vira" 2.

E no final da segunda tentativa totalChances "vira" 1 e chance também "vira" 3, assim não entra na validação para a terceira tentativa.

Erick, muito obrigado pela sua ajuda!! Consegui fazer o código funcionar da forma que esperava. Obrigado!!

Você sabe se é possível alterar a mensagem var chute=parseInt(prompt("Pensei em um número até 10. Tente advinhar!")); na segunda e terceira tentativas para var chute=parseInt(prompt("Tente novamente!"));?

<meta charset="UTF-8">
<script>
    function pulaLinha(){
        document.write("<br>");
    }
    function mostra(frase){
        document.write(frase);
        pulaLinha();
    }
  var numeroPensado=Math.round(Math.random()*10);
  console.log(numeroPensado);
  var totalChances=3;
  var chance=1;
  while(chance<=totalChances){
    var chute=parseInt(prompt("Pensei em um número até 10. Tente advinhar!"));
    if(chute==numeroPensado){
      alert("Parabéns! Você acertou!");
      chance=totalChances;
    }else{
      var chancesRestantes=totalChances-chance;
      if(chancesRestantes>0){
        alert("Você errou! Você tem mais "+chancesRestantes+" tentativa(s)!");
      }else{
        alert("Você perdeu!");
      }
    }
    chance++;
  }
</script>

É possível sim, e tem diversas formas, uma delas seria assim:

var frase = chance === 1 
        ? "Pensei em um número até 10. Tente advinhar!" 
        : "Tente novamente";
    var chute=parseInt(prompt(frase));

Não entendi. Você pode explicar? Como ficaria o código que você comentou dentro do código que cometei?

Oi, vou fazer com if/else normal:

// iniciou do código...

var totalChances=3;
var chance=1;
var frase = "";
while(chance<=totalChances){
    if (chance === 1) {
        frase = "Pensei em um número até 10. Tente advinhar!";
    }
    else {
        frase = "Tente novamente";
    }
    var chute=parseInt(prompt(frase));
    if(chute==numeroPensado){

// restante do código abaixo

Valeu Erick! Muito Obrigado!