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

Como fazer o resultado ser dependente das dicas? O resultado ELSE também não funciona.


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

function jump() {

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

function show(phrase) {

    document.write(phrase);
    jump();
}

alert("Vamos brincar?");
alert("Você terá que adivinhar um número. Te darei dicas.");
alert("Primeira dica: está entre 0 e 100.");
alert("Segunda dica: é multiplo de 7.");
alert("Terceira e última dica: não é 7.");

//Como fazer o resultado ser dependente das dicas? 
var numberThought = Math.round(Math.random() * 100);
var guessWhat = parseInt(prompt("Digite seu chute!"));

if(numberThought =! numberThought) {

    show("Parabéns! Você acertou!");
} // nao funciona
else { 

   show("Ixi. Você errou! O número correto é " + numberThought + ".")
}

</script>
4 respostas
solução!

Oi Mariana, tudo bem? O else não funciona por que o if sempre vai dar falso, você tá comparando um valor com ele mesmo e perguntando se são diferentes:

numberThought =! numberThough

Não deveria ser?

guessWhat  == numberThough

Agora pra sortear o número, você criou uma lógica interessante nas dicas. Vamos lá, ele precisa ser múltiplo de 7, não ser 7 e estar entre 0 e 100.

Uma possível solução é:

(Math.ceil(Math.random()) * 7) * Math.ceil(Math.random() * 100)

Explicando: O Math.ceil vai arredondar o número sempre pra cima. Então o primeiro Math.random vai gerar sempre o número 7. O ceil sempre vai gerar 1 e ai você multiplica por 7. Ok?

Depois, você precisa que esse 7 seja multiplicado por alguma coisa pra gerar um múltiplo. Ai entra o ceil novamente pra gerar o aleatório de 0 a 100.

Então você vai ter: 1 * 7 * X (0 - 100)

Nessa conta, ainda podemos ter um 7 ocasionalmente. A dica neste caso é separar essa lógica em uma função, assim você pode fazer um laço que fica tentando calcular o número certinho podendo excluir a possibilidade do 7 sair. Consegue pensar nessa função?

Lembrando que pra lógica ficar completinha, precisamos excluir o zero também, zero não é múltiplo de nenhum número.

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

function jump() {

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

function show(phrase) {

    document.write(phrase);
    jump();
}

alert("Vamos brincar?");
alert("Você terá que adivinhar um número que será escolhido ao acaso. Te darei dicas.");
alert("Primeira dica: está entre 0 e 100.");
alert("Segunda dica: é multiplo de 7.");
alert("Terceira e última dica: não é 7.");

var numberThought = (Math.ceil(Math.random()) * 7) * Math.ceil(Math.random() * 10);

var guessWhat = parseInt(prompt("Digite seu chute!"));

if(guessWhat == numberThought) {

    show("Parabéns! Você acertou!");
} 
else { 

   show("Ixi. Você errou! O número correto é " + numberThought + ".")

   alert("Errou! Tente novamente!")
   alert("Primeira dica: está entre 0 e 100.");
   alert("Segunda dica: é multiplo de 7.");
   alert("Terceira e última dica: não é 7.");

   var numberThought = (Math.ceil(Math.random()) * 7) * Math.ceil(Math.random() * 10);
   var guessWhat = parseInt(prompt("Digite seu chute!")); 
 }

</script>

Oi Mariana, deu certo? Você precisa de ajuda em mais alguma coisa? Alguma dúvida?

Deu sim! Obrigada!