Ir para conteúdo
Fórum Script Brasil
  • 0

Erro no comando parar o jogo


William Cesar Silva

Pergunta

Quando eu coloco "NÃO" o Jogo ainda soma mais uma carta para mim e depois finaliza, queria que ele finaliza-se com a ultima carta que me forneceu sem a soma. Alguém tem ideia?

JOGO 21 EM JavaSCript

 

<script type="text/javascript">
var resposta="sim"
var mao=0;
var geracarta = Math.floor((Math.random() * 10) + 1);

while(resposta=="sim");{
      resposta = prompt("Deseja pegar uma carta ?");

     mao=(geracarta+mao);
     
     alert("voce tem "+mao+ " de soma total");
    
     if(mao>21);{
         alert("você estourou");
         }
         if(mao==21);{
             alert("21!!!! VOCE GANHOU");
             }

    if (resposta=="não" || mao==21 || mao>21);{
            
            alert ("o jogo acabou ,  sua soma total era : " + mao );
            resposta=="não";
            
        }


}
</script>

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Há alguns problemas no teu código:

  1. O operador '==' só é usado em expressões de comparação, logo na expressão do while deves ter resposta = "sim". Da mesma forma, uma atribuição deve ser feita apenas com um '='. Exemplo: resposta = "não".
  2. As expressões if e while não terminam com ponto-e-vírgula.
  3. Ao atribuir um número aleatório à variável geracarta fora do while, estás a dizer que vais sempre somar o mesmo valor em cada iteração do ciclo.
  4. Criei uma nova variável (maoAnterior) que guarda o valor da última jogada para que possas mostrar quantos pontos o jogador tinha antes de perder.

Dito isto, fica aqui o código com os problemas que identifiquei acima resolvidos. Espero que ajude.

var resposta = "sim";
var mao = 0;
var geracarta = 0;
var maoAnterior = 0;

while (resposta = "sim") {
     resposta = prompt("Deseja pegar uma carta ?");
     geracarta = Math.floor((Math.random() * 10) + 1);
     maoAnterior = mao;
     mao = (geracarta + mao);
     
     alert("voce tem " + mao + " de soma total");
    
     if (mao > 21) {
       alert("você estourou");
     }
     if (mao == 21) {
       alert("21!!!! VOCE GANHOU");
     }
     if (resposta == "não" || mao == 21 || mao > 21) {            
       alert ("o jogo acabou ,  sua soma total era : " + maoAnterior);
       break; //sair do ciclo e terminar a execução do script
     }
}

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...