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

Quando eu dígito um número errado, ele não diminui a vida e não chama um novo input. Poderiam me ajudar pf?

Tentei fazer uma função que cheque se o usuário ainda tem chances e caso tenha ele pode tentar novamente, e quando errar é para diminuir uma chance, porém quando erra não está fazendo nenhuma alteração.

4 respostas

Fala Leonardo, tudo certo?

A lógica, nesse caso, é criar uma variável com o total de chances disponíveis no início da aplicação e sempre ir retirando 1 quando for errando e a lógica condicional verifica sempre se essa variável é igual a 0 e se for irá parar as tentativas.

Para te ajudar melhor precisaria do teu código... Pressiona, aqui no forúm, ctrl+alt+c que irá abrir um bloco de crases para que você possa colar o código dentro do bloco.

Abs!

Bom dia Eraldo, tudo bem e com você??

Achei que tinha colado o código kk, desculpa.

<meta charset="UTF-8">
<script>

{ 
  function pulaLinha() {

        document.write("<br>");
    }

    function mostra(frase) {

        document.write(frase);
        pulaLinha();
    }

    var numeroPensado = Math.round(Math.random() * 10);
    var vidas = 3;   


      function palpite (palpite) {
    var palpite = prompt("De 0 á 10 em qual número eu estou pensando? você tem ") + vidas + 
(" Chances");
     return = palpite;
}

      function checarVidas() {
        if (vidas <= 3 && vidas >0) {
          palpite
        } else {
          mostra("Poxa você não tem mais chances!");}
 }
  if (palpite == numeroPensado){
mostra ("Uau! Você acertou, eu pensei no " + numeroPensado);}
  else { (vidas - 1) + checarVidas;}
}

</script>
solução!

Fala Leonardo,

Dei uma olhada no teu código aqui e fiz uma refatoração que vou tentar te explicar por aqui. Comentei o que alterei no código para tentar deixar claro a lógica que segui.

<meta charset="UTF-8" />
<script>
  function pulaLinha() {
    document.write('<br>')
  }

  function mostra(frase) {
    document.write(frase)
    pulaLinha()
  }

  var numeroPensado = Math.round(Math.random() * 10)
  var vidas = 3

  // fiz a inclusão de um laço de repetição que só irá parar nos "break's" de esgotamento das chances ou acerto do número
  while (true) {
    if (vidas == 0) {
      mostra('Poxa você não tem mais chances!')
      break
    }

    var palpite = prompt(
      `De 0 á 10 em qual número eu estou pensando? você tem ${vidas} chances`
    ) // armazenaremos, em cada repetição, uma nova tentativa que o usuário terá, caso erre e ainda tenha chances

    if (palpite == numeroPensado) {
      mostra('Uau! Você acertou, eu pensei no ' + numeroPensado)
      break
    }

    vidas-- // caso a vida seja maior que zero e o palpite não acerte o numero pensado o while chegará aqui e diminuirá 1 da variável "vidas" definida fora do laço
  }
</script>

Se você preferir, coloquei o código da dúvida e da solução no meu repositório no Github.

Poderá acessar o commit da solução por aqui.

Espero ter ajudado.

Abs!!!

Poxa muito obrigado Eraldo, era essa lógica que eu queria usar mas não tinha noção do while até então..

ficou ótimo, vlw!!!