6
respostas

[Contribuição] É possível continuar chutando depois de acertar

É um detalhe, mas me chamou a atenção quando estava testando meu código, que era possível continuar chutando números depois de ter acertado o número secreto.

Para corrigir, adicionei uma linha de código na função verificarChute, ao acertar o número, ele desabilita o botão que nomeei como "chutar": document.getElementById('chutar').setAttribute('disabled', true);

E na função reiniciarJogo, para voltar a habilitar o botão: document.getElementById('chutar').removeAttribute('disabled');

É um detalhe, e claro, ainda teria bugs com inserção de outros caracteres no chute. Mas, como os instrutores se preocuparam em habilitar e desabilitar o botão que reinicia o jogo, achei que essa seria uma boa contribuição para melhorar o jogo, nesse nível de aprendizagem.

6 respostas

Olá Daniela, tudo bem?

Esse detalhe também me chamou bastante a atenção. Na verdade me incomodou tanto isso de poder continuar chutando após o fim do jogo, que além de desativar o botão chutar, eu também desativei o campo onde inserimos os números, adicionando na função verificarChute a linha de código:document.querySelector('input').setAttribute('disabled', true);

Oxe, testei agora no meu e está assim também! Lá vou eu mexer de novo!

O único caractere não-numérico permitido no meu campo de texto é o ponto, e mesmo assim eu o desconsidero na hora de comparar o chute com o número secreto. O seu permite, Daniela? Eu não lembro de ter feito nada especial para impedir outros caracteres, achei que era alguma propriedade do próprio campo.

Outra coisa que fiz: só permito que coloque números maiores que zero e até o valor máximo.

Esse lance de só deixar que o usuário coloque valores acima de zero e até o número limite eu também fiz no meu projeto, mas eu não fazia ideia de que dava para colocar pontos nesse campo. Achei legal a ideia de desconsiderar o que vem depois do ponto, porém o que eu queria mesmo era fazer com que o campo aceitasse somente caracteres númericos.

Tenta colocar um break; assim que passar no bloco e for verdadeiro ele para o loop e sai do bloco.

while (chute != numeroSecreto) {
    chute = prompt(`escolha um número entre 1 e 2`);
    if (chute == numeroSecreto) {
    alert('Você acertou')
        break;

Um break não resolve, porque a pessoa ainda consegue clicar no botão e entrar na função.