Jump to content
Fórum Script Brasil
  • 0

Erro no comando parar o jogo


William Cesar Silva
 Share

Question

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 to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...