Jogo da adivinhação
O seu jogo deve gerar um número aleatório entre 1 e 10, e o jogador, por sua vez, precisa adivinhar o número que foi gerado pela máquina. O jogador terá 3 tentativas para tentar descobrir qual é o número correto.
Se o jogador acertar, exiba uma mensagem de parabéns e mostre quantas tentativas foram necessárias para o acerto. Após cada tentativa incorreta, exiba uma mensagem informando se o número gerado pela máquina é maior ou menor do que o número escolhido pelo jogador.
Entrada de dados
A entrada de dados deve ser realizada com o comando prompt
.
Para saber mais sobre a entrada de dados com Prompt, acesso a seção Entrada de dados.
Geração de valores numéricos aleatórios
Em JavaScript, temos diversas funcionalidades implementadas e prontas para uso, como o objeto Math, que nos fornece uma série de funções matemáticas muito úteis. Neste exercício, por exemplo, você precisará gerar valores numéricos aleatórios.
Para isso, podemos utilizar o seguinte código JavaScript:
let valorAleatorio = Math.random() * 10;
A expressão Math.random() * 10 nos permite gerar valores aleatórios entre 0 e 10. Vale ressaltar que o valor gerado é decimal, ou seja, apresenta diversas casas decimais.
Para o jogo que você desenvolverá, o ideal é que os números gerados aleatoriamente sejam valores inteiros. O mais legal é que o objeto Math tem algumas funções capazes de "arredondar" valores numéricos para nós.
Math.ceil
e Math.floor
são métodos embutidos no objeto Math
que permitem arredondar números para cima (Math.ceil
) e para baixo (Math.floor
), respectivamente.
Math.ceil
: O métodoMath.ceil
(do inglês "ceiling" que significa teto) arredonda um número para o próximo número inteiro maior ou igual ao número fornecido. Em outras palavras, ele arredonda o número para cima. Se o número já for um inteiro, não haverá alteração. Por exemplo:console.log(Math.ceil(4.2)); // Saída: 5
console.log(Math.ceil(7.8)); // Saída: 8
console.log(Math.ceil(3)); // Saída: 3 (não há alteração, pois já é um inteiro)Math.floor
: O métodoMath.floor
(do inglês "floor" que significa chão) arredonda um número para o próximo número inteiro menor ou igual ao número fornecido. Em outras palavras, ele arredonda o número para baixo. Se o número já for um inteiro, não haverá alteração. Por exemplo:console.log(Math.floor(4.2)); // Saída: 4
console.log(Math.floor(7.8)); // Saída: 7
console.log(Math.floor(3)); // Saída: 3 (não há alteração, pois já é um inteiro)
Esses métodos são úteis em várias situações, como quando você precisa garantir que um número esteja arredondado para o próximo inteiro superior ou inferior, especialmente em cálculos matemáticos ou ao exibir resultados em um formato mais legível.
Agora, com essas dicas, você consegue gerar valores aleatórios entre 0 e 2 (incluso)?
Algoritmo proposto
Resolução
Mostrar Resolução
let numeroGerado = Math.floor(Math.random() * 11);
let tentativas = 1;
let numeroEscolha = +prompt("Tentativa 1: Qual número foi gerado?");
if (numeroEscolha == numeroGerado){
alert("Parabéns! Você acertou com 1 tentativa");
}else{
tentativas += 1;
numeroEscolha = +prompt("Tentativa 2: Qual número foi gerado?");
if (numeroEscolha == numeroGerado){
alert("Parabéns! Você acertou com 2 tentativas");
}else{
tentativas += 1;
numeroEscolha = +prompt("Tentativa 3 (última chance): Qual número foi gerado?");
if (numeroEscolha == numeroGerado){
alert("Parabéns! Você acertou com 3 tentativas");
}else{
alert("Deu ruim! Você não advinhou");
}
}
}
O objeto Math tem diversas outras funções além das aqui apresentadas. Para saber mais e conhecer outras funções disponíveis, acesse https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Math