Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dar uma mensagem diferente de NaN

Pessoal, criei um código simples para contagem de pontos de um jogo de cartas (canastra), só pra praticar um pouco mesmo. Mas fiquei com uma curiosidade: se eu , ao abrir o programa, for apertando enter sem responder aos prompts, a resposta vai ser "Você fez um total de NaN nessa rodada". Beleza, entendo que as respostas não foram um número, então ele vai me devolver um NaN. Mas tem como eu criar uma mensagem para caso o usuário não responda aos prompts corretamente? Algo como "Você não preencheu corretamente as informações". Imagino que com o "if" dê fazer, mas não consegui aqui. Aproveito para pedir dicas de como eu posso melhorar esse código com o conhecimento já visto até aqui. Agradeço desde já!

<meta charset="UTF-8">

<script>

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

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

    function totalRodada (x,y,z){
    return (x * 5) + (y * 10) + (z * 15) 
        }

var pontos1 = parseInt (prompt ("Quantas cartas de 3 a 7 você tem?"));
var pontos2 = parseInt (prompt ("Quantas cartas de 2 e de 8 a Rei você tem?"));
var pontos3 = parseInt (prompt ("Quantos Ás você tem?"));
var pontosRodada = totalRodada (pontos1, pontos2, pontos3)

mostra ("Você fez um total de " + pontosRodada + " nessa rodada")

var rodadaAnterior = prompt ("A partida já tem rodadas anterioras? Responda sim ou não")

if (rodadaAnterior == "sim"){
var pontosAnteriores = parseInt (prompt("Quantos pontos você tinha?"))
var totalJogo = parseInt (pontosAnteriores) + parseInt (pontosRodada)

mostra ("Você fez um total de " + totalJogo + " no jogo")
    }
</script>
1 resposta
solução!

Faz assim ó, enquanto pontos1 não for um número ele não para de pedir pra você dizer Quantas cartas tem.

var pontos1="";
while (isNaN(pontos1)) {
    pontos1 = parseInt (prompt ("Quantas cartas de 3 a 7 você tem?"));
    if (isNan(pontos1){
        alert("Por favor, digite um número.");
    }
}