Estou tentando fazer um jogo de adivinhação. O objetivo é que o jogo tenha 3 chances, ao final das chances, o script deveria alertar o usuário que não existem mais chances disponíveis e encerrar o loop. Caso o usuário acerte, o jogo teria que alertar que o usuário acertou e especificar quantas tentativas foram necessárias. Porém, estou enfrentando alguns problemas: mesmo acertando, o código segue rodando o loop, na verdade só é possível acertar na primeira tentativa, após isso, o jogo só repete "um pouco mais, quantidades de tentativas restantes" ou o mesmo porém para menos.
Segue abaixo o código:
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>jogo de adivinhação</title>
</head>
<body>
<script>
function pularLinha(){
document.write("<br>");
}
function mostra(frase){
document.write(frase);
}
function sorteio(n){
return Math.round((Math.random() * n));
}
alert("estou pensando em um número, você consegue adivinhar qual é?")
var numero = sorteio(10);
console.log(numero);
var chute = parseInt(prompt("Digite um número!"));
var tentativas = 0;
var vezesQueTentou = 0;
while(tentativas <= 3){
if(chute == numero){
vezesQueTentou++
tentativas++
alert("Parabéns, você acertou na " + vezesQueTentou + "° tentativa");
break;
}
else if(chute < numero){
tentativas++
alert("um pouco mais! " + (3 - tentativas) + " restantes")
if(tentativas == 3){
alert("acabaram as chances.")
break;
}
}
else if(chute > numero){
tentativas++
alert("um pouco menos! " + (3 - tentativas) + " restantes")
if(tentativas == 3){
alert("acabaram as chances.")
break;
}
}
parseInt(prompt("digite um número!"));
}
</script>
</body>
</html>