2016-08-23 46 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);