Olá, Lucas, tudo bem?
Muito legal que você quis complementar a atividade!! Continue assim, avançando seus conhecimentos!
Mas antes de partir para sua dúvida, uma dica: quando você for escrever código aqui no fórum, você deve deixá-lo dentro de um bloco de código, senão não será possível visualizá-lo. O bloco de código começa com três crases seguidas e termina com mais três crases seguidas, assim:
Por exemplo, um código HTML:
Note que você pode escrever o nome da linguagem junto com as três primeiras crases para realçar o código!
Você também pode clicar no ícone </>
na barra de ícones para gerar um bloco de de código.
Agora vamos resolver sua dúvida!
Bem, acredito que o seu programa dá apenas 3 tentativas para o usuário e depois disso ele não pode mais adivinhar, certo?
Analisando seu código da função verifica
:
function verifica() {
while (tentativas <= 3) {
if (input.value == numeroPensado) {
alert("você acertou");
document.write("você conseguiu!!");
break;
} else {
alert("você errou!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
input.value = "";
input.facus;
}
tentativas++;
}
}
O problema é que você está executando o while
quando a função verifica
é chamada assim que o usuário clica no botão. O bloco while
executa várias vezes até que a condição seja quebrada, e por isso a mensagem de erro aparece 3 vezes seguidas assim que o usuário erra!
Então, na verdade, não há necessidade de usar o while
. E sem o while, precisamos tirar o comando break;
, senão haverá um erro no console. Seu código ficaria assim:
function verifica() {
if (input.value == numeroPensado) {
alert("você acertou");
document.write("você conseguiu!!");
// break;
} else {
alert("você errou!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
input.value = "";
input.facus;
}
tentativas++;
}
Mas desse jeito não estamos verificando se o usuário já alcançou o número máximo de tentativas! Onde podemos fazer essa verificação então?
Uma coisa que podemos fazer é "acabar" com o jogo escrevendo diretamente na tela que o usuário perdeu, caso o número de tentativas atinja o máximo. Então, depois da instrução tentativas++
, podemos fazer essa verificação com um if
:
function verifica() {
if (input.value == numeroPensado) {
alert("você acertou");
document.write("você conseguiu!!");
// break;
} else {
alert("você errou!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
input.value = "";
input.facus;
}
tentativas++;
if (tentativas > 3) {
document.write("Você perdeu :(");
}
}
Isso funciona, mas na verdade existem outras formas de fazer! Você pode programar de outra forma e fazer com que, em vez de "acabar" com o jogo usando document.write
, você mostra um alerta dizendo que a pessoa não tem mais tentativas, quando ela clicar no botão. Deixo como exercício!
Espero ter te ajudado! Qualquer dúvida estaremos aqui para te auxiliar. Continue assim e bons estudos! :)