2013-07-15 2 views
0

저는 작업중인 Rock-Paper-Scissors의 기본 JavaScript 버전에 대한 약간의 도움이 필요합니다. 방금 학습을 시작한 것이므로 가능한 한 코드를 가능한 한 그대로 유지하려고합니다.기본 자바 스크립트 바위 종이 가위 게임이 제대로 작동하지 않습니다.

내가 가진 주요 문제는 루프와 관련이 있습니다. 나에게 '다시'를 'no'(프롬프트를 통해)로 설정 했음에도 불구하고 계속됩니다. 당신은 모든 if 문에 = 대신 while 문에서 ==와 같은를 사용하는

<html> 
<script type="text/javascript"> 
    var myChoice = ""; 
    var compChoice = ""; 
    var again; 
    while (again = "yes") 
     { 
     myChoice = prompt("Do you choose rock, paper or scissors?"); 
     compChoice = Math.random(); 
      if (compChoice < 0.33) 
       { 
       compChoice = "rock"; 
       } 
      else if(compChoice < 0.67) 
       { 
       compChoice = "paper"; 
       } 
      else 
       { 
       compChoice = "scissors"; 
       } 
     if (compChoice = myChoice) 
      { 
      alert("It's a tie!"); 
      again = prompt("Would you like to play again?(yes/no)"); 
      } 
     else if (compChoice = "rock") 
      { 
      if(myChoice = "scissors") 
       { 
       alert("You lose!"); 
       again = prompt("Would you like to play again?(yes/no)"); 
       } 
      else if (myChoice = "paper") 
       { 
       alert("You win!"); 
       again = prompt("Would you like to play again?(yes/no)"); 
       } 
      } 
     else if (compChoice = "paper") 
      { 
      if (myChoice = "rock") 
       { 
       alert("You lose!"); 
       again = prompt("Would you like to play again?(yes/no)"); 
       } 
      else if (myChoice = "scissors") 
       { 
       alert("You win!"); 
       again = prompt("Would you like to play again?(yes/no)"); 
       } 
      } 
     else if (compChoice = "scissors") 
      { 
      if (myChoice = "rock") 
       { 
       alert("You win!"); 
       again = prompt("Would you like to play again?(yes/no)"); 
       } 
      else if (myChoice = "paper") 
       { 
       alert("You lose!"); 
       again = prompt("Would you like to play again?(yes/no)"); 
       } 
      } 
     }; 
</script> 
</html> 
+0

* sidenote : * Rock, Paper & Scissor의 확률은 동일하지 않습니다. 왜 난수를 사용하지 않고'random_number % 3'의 결과를 사용합니까? – Raptor

+0

http://stackoverflow.com/questions/22623331/rock-paper-scissors-lizard-spock-in-javascript/22624288#22624288 –

답변

2

: 또한, 컴퓨터가 항상 록을 선택하는 것 같다 ... 난 그냥 간단하게 뭔가를 누락 느낌이 ==는 비교 연산을하는 동안은 또한

= 할당 연산자이고,

var myChoice = ""; 
var compChoice = ""; 
var again; 
do 
{ 
    myChoice = prompt("Do you choose rock, paper or scissors?"); 
    compChoice = Math.random(); 
    if (compChoice < 0.33) 
    { 
     compChoice == "rock"; 
    } 
    else if(compChoice < 0.67) 
    { 
     compChoice = "paper"; 
    } 
    else 
    { 
     compChoice == "scissors"; 
    } 
    if (compChoice == myChoice) 
    { 
     alert("It's a tie!"); 
    } 
    else if (compChoice == "rock") 
    { 
     if(myChoice == "scissors") 
     { 
      alert("You lose!"); 
     } 
     else if (myChoice == "paper") 
     { 
      alert("You win!"); 
     } 
    } 
    else if (compChoice == "paper") 
    { 
     if (myChoice == "rock") 
     { 
      alert("You lose!"); 
     } 
     else if (myChoice == "scissors") 
     { 
      alert("You win!"); 
     } 
    } 
    else if (compChoice == "scissors") 
    { 
     if (myChoice == "rock") 
     { 
      alert("You win!"); 
     } 
     else if (myChoice == "paper") 
     { 
      alert("You lose!"); 
     } 
    } 
    again = prompt("Would you like to play again?(yes/no)"); 

}while (again == "yes"); 

데모 : Fiddle

+0

빠른 답장을 보내 주셔서 감사합니다! 나는이 충고를 따랐지만, 이제는 스크립트가 실행되지 않을 것이다 (적어도 초기 프롬프트는 나타나지 않을 것이다). 어떤 아이디어? – Blawdfire

+0

@Blawdfire 지금 업데이트를 시도하십시오 –

+0

예. 사실 수동으로 먼저 설정해야합니다 ... – loxxy

1

큰 문제 중 하나는 값을 대신 여러 위치에있는 값을 할당하는 것입니다.

a = 2 // assigns a to value 2, and evaluates to true 
a == 2 // compares a to 2, only evaluates to true if a has value 2 
관련 문제