2
respostas

Jogo adivinha com laço for

Fiz o programa adivinha com o laço for:

let numeroAdivinha = Math.round(Math.random()*10);
console.log(numeroAdivinha);
let tentativas = 1;

let adivinhaNumero = parseInt(prompt("Adivinhe o número: "));

for(let i = 3; i >= tentativas; i--){
    if(numeroAdivinha == adivinhaNumero){
        alert("Parabéns, você acertou!");
        break;
    }else{
        alert("Restam " + i + " tentativas.");
        adivinhaNumero = parseInt(prompt("Adivinhe o número: "));
    }
}

alert("Suas tentativas acabaram, fim de jogo, você perdeu!");



2 respostas

O seu código irá sempre exibir o alerta de fim de jogo e que o jogador perdeu. Eu faria assim:

let numeroAdivinha = Math.round(Math.random()*10);
let tentativas = 1;
let adivinhaNumero = parseInt(prompt("Adivinhe o número: "));

for(let i = 3; i > 1; i--){
    if(numeroAdivinha != adivinhaNumero){
        alert("Restam " + (i - 1) + " tentativas.");
        adivinhaNumero = parseInt(prompt("Adivinhe o número: "));
        tentativas++;
        if(tentativas == 3){
            alert("Suas tentativas acabaram, fim de jogo, você perdeu!");
        }       
        continue;
    }
    alert("Parabéns, você acertou!");   
}

Verdade, nem tinha percebido haha, ficou assim agora:

for(let i = 3; i >= tentativas; i--){
    if(numeroAdivinha == adivinhaNumero){
        alert("Parabéns, você acertou!");
        break;
    }else if(numeroAdivinha !== adivinhaNumero){
        alert("Restam " + i + " tentativas.");
        adivinhaNumero = parseInt(prompt("Adivinhe o número: "));
    }

    if(tentativas == i){
        alert("Suas tentativas acabaram, fim de jogo, você perdeu!");
    }
}