Tive que criar outro tópico porque acabei marcando o anterior como resolvido sem querer.
Essa era minha dúvida inicial:
"Primeiramente, este foi o código que digitei. Eu fiquei bem satisfeito, apesar de ter atolado em algumas partes kkkk. Mas é da vida!
Dúvida abaixo do código..."
<meta charset="UTF-8">
<script>
function pularLinha() {
document.write("<br><br>");
}
function mostrar(frase) {
document.write(frase);
pularLinha();
}
function sorteia(n) {
return Math.round(Math.random() * n);
}
var numeroSorte = sorteia(10);
console.log(numeroSorte);
var chuteUsuario = parseInt(prompt("Chute um número de 0 a 10:"));
if (chuteUsuario == numeroSorte) {
mostrar("Parabéns, você acertou! O número sorteado pelo computador foi " + numeroSorte + " =)");
} else {
if (chuteUsuario > numeroSorte) {
mostrar("Que pena, o número que você chutou é maior do que o sorteado pelo computador =(");
mostrar("O número que o computador sorteou foi " + numeroSorte + ".");
} else {
mostrar("Que pena, o número que você chutou é menor do que o sorteado pelo computador =(");
mostrar("O número que o computador sorteou foi " + numeroSorte + ".");
}
}
</script>
"Bom, quando chamo o prompt, antes dele, eu especifico que quero um número inteiro através do parseInt correto? Mas, e seu exibisse para o usuário a seguinte mensagem: "Chute um número real igual ou menor que 10", como eu faria isso? Tem alguma função no JS que me permita trabalhar com números reais? Detalhe, tem que funcionar do mesmo jeito tanto pra quando o usuário digitar um inteiro ou um número com vírgula (claro, estou ciente que é usado o ponto no lugar da vírgula).
Só uma observação, eu ainda estou aprendendo a lógica de programação então, tente me explicar de uma forma condizente com conhecimento de alguém que está dando os primeiros passos ok!? Desde de já sou grato pela compreensão."
Aí um cara me respondeu:
"Fala Vinicius, Tudo bem?
Fiz algumas alterações tentando chegar no resultado que eu entendi que você queria na dúvida enviada.
Comentei as linhas que alterei no código tentando deixar claro o meu raciocínio para chegar no resultado final."
<meta charset="UTF-8">
<script>
function pularLinha() {
document.write("<br><br>");
}
function mostrar(frase) {
document.write(frase);
pularLinha();
}
function sorteia(n) {
// criei uma variável para receber o numero sorteado, sem arredondar com a função Round()
var sorteado = Math.random() * n;
// estou retornando, como resultado final da função, o número sorteado
// fixei o número de casas decimais para 1 através do método 'toFixed' passado 1 como parâmetro indicando que quero apenas 1 casa decimal
// usei o método para strings 'replace' e informei para o javascript alterar tudo que for '.' para ','
return sorteado.toFixed(1).replace('.',',')
}
var numeroSorte = sorteia(10);
console.log(numeroSorte);
// como o JS já transformou o resultado do número sorteado para string (utilizando o toFixed já altera o tipo numero para tipo string) eu retirei a função que transforma o numero digitado para tipo number
// todo prompt recebido é uma string. Então não mudei mais nada no código. A comparação lógica vai ser string == string
var chuteUsuario = prompt("Chute um número de 0 a 10:");
console.log(chuteUsuario)
if (chuteUsuario == numeroSorte) {
mostrar("Parabéns, você acertou! O número sorteado pelo computador foi " + numeroSorte + " =)");
} else {
if (chuteUsuario > numeroSorte) {
mostrar("Que pena, o número que você chutou é maior do que o sorteado pelo computador =(");
mostrar("O número que o computador sorteou foi " + numeroSorte + ".");
} else {
mostrar("Que pena, o número que você chutou é menor do que o sorteado pelo computador =(");
mostrar("O número que o computador sorteou foi " + numeroSorte + ".");
}
}
</script>