2016-08-23 7 views
1

私はJavaScriptを初めて使用しています。他の日にはRock Paper Scissorのゲームを作成しました。ゲームはうまくいきますが、ユーザーが無効な選択肢を入力すると警告ボックスが表示され、そのような入力が無効であると表示されます。 ここに私のコードです!JavaScript無効な入力条件

var userchoice=prompt("Wanna play Rock, Paper and Scissors?");{ 
    if (userchoice!="paper") { 
     alert("Invalid ID"); 
    } 
    else if (userchoice!="scissors") { 
     alert("Invalid ID"); 
    } 
    else (userchoice!="rock") { 
     alert("Invalid ID"); 
    } 
} 
var computerchoice=Math.random();{ 
    if(computerchoice<0.34){ 
    console.log(computerchoice="paper"); 
    } 
    else if (computerchoice<=0.67) { 
     console.log(computerchoice="rock"); 
    } 
    else{ 
     console.log(computerchoice="scissors"); 
    } 
}; 
var compare=function(choice1,choice2){ 
    if (choice1===choice2){ 
     console.log("The game was a tie!"); 
    } 
    else if (choice1==="rock") { 
     if (choice2==="scissors") { 
      console.log("rock wins!"); 
     } 
     else{ 
      console.log("paper wins!") 
     } 
    } 
    else if(choice1==="paper"){ 
     if (choice2==="rock") { 
      console.log("paper wins!"); 
     } 
     else{ 
      console.log("scissors wins!"); 
     } 
    } 
    else if (choice1==="scissors") { 
     if (choice2==="paper") { 
      console.log("scissors wins!") 
     } 
     else { 
      console.log("rock wins!"); 
     } 
    } 
}; 

compare(userchoice,computerchoice); 
console.log("User: "+userchoice); 
console.log("Computer: "+computerchoice); 
//End of Game 
+0

を小文字に大文字に変換する前と後の

  • trim()は空白を削除します。長いコードリストを表示すると、あなたが望む人々に負担がかかります。 –

  • +0

    'else'は条件を持つことができません。(行8) – yuriy636

    +0

    意味ユーザが"はさみ、岩または紙 "以外の入力をしようとすると、そのような"無効な入力 "という警告ボックスが表示されます。 – Mohommad

    答えて

    0

    ここでは、選択肢のいずれかが無効かどうかを調べるためのコンパクトなコードを示します。無効な選択肢がある場合は警告が表示されますが、より適切な動作に変更する必要があります。

    var VALID_CHOICES = ['rock', 'paper', 'scissors'] 
    var choice1 = 'rock', choice2 = 'something invalid' 
    var invalidChoice = false 
    ;[choice1, choice2].forEach(function(choice) { 
        if (VALID_CHOICES.indexOf(choice) === -1) invalidChoice = true 
    }) 
    if (invalidChoice) alert('Picked an invalid choice') 
    
    0

    Array.prototype.indexOf()を使用できます。以下のデモを試してみてください。

    function newGame(msg) { 
     
        var allowed = ["rock","paper","scissors"], 
     
         user = allowed.indexOf(prompt((msg||'Feeling lucky?') + ' Choose "rock", "paper" or "scissors":').trim().toLowerCase()), 
     
         comp = Math.floor(Math.random()*3); 
     
    
     
        if(user < 0) return newGame("Invalid ID!"); 
     
    
     
        console.log("You chose "+ allowed[user] +". Computer chose "+ allowed[comp] +"."); 
     
    
     
        if(user == comp) 
     
         console.log('The game was a tie!'); 
     
        else if([1,-2].indexOf(comp-user) > -1) 
     
         console.log('Computer wins with ' + allowed[comp] + '!'); 
     
        else 
     
         console.log('You win with ' + allowed[user] + '!'); 
     
    }
    <button onclick="newGame()">New game</button>

    0

    あなたはこのような機能を持たせることができる、それが要求されますが、また、選択が有効であるかどうかをチェックします。

    function ask(q) { 
     
        var choice = prompt(q); 
     
        if (choice != 'scissors' && choice != 'rock' && choice != 'paper') { 
     
         alert('Invalid input. Only "scissors", "rock" or "paper" are allowed.'); 
     
         return false; 
     
        } else { 
     
         return choice; 
     
        } 
     
    } 
     
    console.log('the choice is:',ask("Wanna play Rock, Paper and Scissors?"));

    ifチェックし、それは警告、およびfalseを返します無効な場合の選択肢は、"scissors"または"rock" or "紙" でない場合。 しかし、選択肢が有効であればchoiceを返します。

    0
    • 定義したとおりにcompareを保存することができます。ユーザーの回答
    • toLowerCase()はあなたが試したどのような結果は、あなたが期待したものと異なる方法を説明することによって、あなたの質問を向上

      var promptUser = function(text){ 
          var userAnswer = prompt(text); 
          var cleanAnswer = userAnswer.trim().toLowerCase(); 
          if(['paper', 'scissors', 'rock'].indexOf(cleanAnswer) === -1) { 
          alert('Invalid choice: ' + cleanAnswer); 
          } 
          return cleanAnswer; 
      } 
      
      var computerPlays = function() { 
          var computerchoice = Math.random(); 
          if(computerchoice<0.34){ 
          computerchoice="paper"; 
          } else if (computerchoice<=0.67) { 
          computerchoice="rock"; 
          } else { 
          computerchoice="scissors"; 
          } 
          return computerchoice; 
      }; 
      
      var userChoice = promptUser("Wanna play Rock, Paper and Scissors?"); 
      var computerChoice = computerPlays(); 
      console.log('user picks:', userChoice); 
      console.log('computer picks:', computerChoice) 
      compare(userChoice,computerChoice);