2016-08-23 67 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

通過說明您已嘗試什麼,並提高你的問題的結果如何從您所期望的不同。顯示長的代碼列表給你希望能幫助你的人帶來負擔。 –

+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檢查如果選擇的是不"scissors""rock" or 「紙」,如果無效,它會提醒,並返回false。 但是,如果選擇有效,它將返回choice

0
  • 您可以按照您定義的方式保留compare
  • trim()刪除空格前後用戶回答
  • 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);