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

Aluno exagerado: resultados aleatórios?

Quando fui tentar recriar esse exercício de cabeça eu esqueci de criar uma variável para a função sorteio. Depois fiz o teste e percebi que os números eram aleatórios e revisei o código para ver se fiz algo errado. Depois de acrescentar a função na variável como dito acima, tudo funcionou corretamente. No código inicial não apenas as mensagens dos erros apresentaram valores diferentes como também o número inserido é diferente da resposta certa, tudo aleatório. Alguém sabe explicar o pq?

código com dúvida

function pulaLinha() {
  document.write("<hr>" + "<br>");
}

function mostra(mensagem) {
  document.write(mensagem);
  pulaLinha();
}

function sorteio() {
  return Math.round(Math.random() * 5);
}
console.log(numeroPensado);

var numeroPensado = sorteio();
var chute = parseInt(prompt("Pensei no número. Digite seu chute"));

if (chute == sorteio()) {
  mostra("Parabéns, você acertou!" + sorteio());
} else {
  contador = 1;
  while (contador <= 10) {
    mostra("Você errou feio, errou rude!" + sorteio());
    contador += 1;
  }
}

correção

function sorteio() {
  return Math.round(Math.random() * 5);
}
console.log(numeroPensado);

var numeroPensado = sorteio();
var chute = parseInt(prompt("Pensei no número. Digite seu chute"));

if (chute == numeroPensado) {
  mostra("Parabéns, você acertou!" + numeroPensado);
} else {
  contador = 1;
  while (contador <= 10) {
    mostra("Você errou feio, errou rude!" + numeroPensado);
    contador += 1;
  }
}
4 respostas
solução!

Por que no seu else do seu

if (chute == numeroPensado)

tem um esse while

 while (contador <= 10) {
    mostra("Você errou feio, errou rude!" + sorteio());
    contador += 1;
  }

?

function pulaLinha() {
          document.write("<hr>" + "<br>");
        }

        function mostra(mensagem) {
          document.write(mensagem);
          pulaLinha();
        }

        function sorteio() {
          return Math.round(Math.random() * 5);
        }

        var numeroPensado = sorteio();
        console.log(numeroPensado);
        var chute = parseInt(prompt("Pensei no número. Digite seu chute"));

        if (chute == numeroPensado) {
          mostra("Parabéns, você acertou!" + numeroPensado);
        } else {
            mostra("Você errou feio, errou rude!" + numeroPensado);
        }

Agora sim. Primeiro você deu um console.log na variável numero pensado antes dela existir

console.log(numeroPensado);
var numeroPensado = sorteio();

Segundo, você estava fazendo suas condições com a função sorteio e não com a variável que guardava o número pensado.

if (chute == sorteio())

mostra("Parabéns, você acertou!" + sorteio());

mostra("Você errou feio, errou rude!" + sorteio());

Assim ao invés de compara o número que estava guardado na variável numeroPensado você sempre ta gerando um aleatório.

Boa Mauricio!!

Eu queria confirmar minhas suspeitas. A parte do while fazia parte do contexto de um exercício. A parte do console antes do número existir foi um lapso meu, eu estava editando o código com um editor que não tava acostumado e acabei trocando as linhas de lugar com um atalho. Aprecio a ajuda.