2014-09-12 55 views
-2

试图在JS中构建一个简单的游戏(剪刀,石头,纸),但并不真正知道我在这里做错了什么。在我输入prompt并选择例如paper之后,我没有从代码中得到任何反应。有人能以一种非常教学的方式为我解释吗?我错过了什么?为什么我不能从这个摇滚纸剪刀游戏中得到任何结果?

var Number = Math.random() 
Number = Number * 10; 
Number = Math.round(Number); 
var Number = Math.floor(Math.random() * (2 - 0 + 1)) + 0; 

console.log (Number); 

var userInput = prompt("Choose between scissors, stone or paper. Good luck!").toLocaleLowerCase; 

if (Number == 0) { 
    Number = "scissors"; 
} if (Number == 1){ 
    Number = "stone"; 
} if (Number == 2){ 
    Number = "paper"; 
} 

if (Number == userInput){ 
    alert("TIE"); 
} else if (Number == "scissors" && userInput == "paper"){ 
    alert("Scissors Win's"); 
} else if (Number == "scissors" && userInput == "stone"){ 
    alert("Stone Win's"); 
} else if (Number == "paper" && userInput == "scissors"){ 
    alert("Scissors Win's"); 
} else if (Number == "paper" && userInput == "stone"){ 
    alert("Paper Win's"); 
} else if (Number == "stone" && userInput == "scissors"){ 
    alert("Stone Win's"); 
} else if (Number == "stone" && userInput == "paper"){ 
    alert("Paper Win's"); 
} 
+0

检查控制台错误 – tymeJV 2014-09-12 20:46:06

+0

没有错误:) @tymeJV – Danju 2014-09-12 20:47:02

+0

请创建的jsfiddle能重现问题。 – 2014-09-12 20:47:33

回答

0

你的主要错误是在这条线:

var userInput = prompt("Choose between scissors, stone or paper. Good luck!").toLocaleLowerCase; 

我固定的只是调用.toLowerCase(),我也更新了您的变量名不是一个全局对象,我也清理你的数学和可变重新关联你不必要的代码在两个地方。代码如下,你可以检查小提琴:http://jsfiddle.net/vxkcw4u2/

var num = Math.random() 
num = num * 10; 
num = Math.round(num); 
num = Math.floor(Math.random() * (2 + 1)); 

var userInput = prompt("Choose between scissors, stone or paper. Good luck!").toLowerCase(); 

if (num == 0) {num = "scissors";} 
if (num == 1){num = "stone";} 
if (num == 2){num = "paper";} 

if (num == userInput){alert("TIE");} 
else if (num == "scissors" && userInput == "paper"){alert("Scissors Win's");} 
else if (num == "scissors" && userInput == "stone"){alert("Stone Win's");} 
else if (num == "paper" && userInput == "scissors"){alert("Scissors Win's");} 
else if (num == "paper" && userInput == "stone"){alert("Paper Win's");} 
else if (num == "stone" && userInput == "scissors"){alert("Stone Win's");} 
else if (num == "stone" && userInput == "paper"){alert("Paper Win's");} 
0

您对线路错误8.

var userInput = prompt("Choose between scissors, stone or paper. Good luck!").toLocaleLowerCase; 

把上面一行

var userInput = prompt("Choose between scissors, stone or paper. Good luck!").toLowerCase(); 

正确的代码:

var Number = Math.random() 
Number = Number * 10; 
Number = Math.round(Number); 
var Number = Math.floor(Math.random() * (2 - 0 + 1)) + 0; 

console.log (Number); 

var userInput = prompt("Choose between scissors, stone or paper. Good luck!").toLowerCase(); 

console.log(userInput); 

if (Number == 0) { 
    Number = "scissors"; 
} if (Number == 1){ 
    Number = "stone"; 
} if (Number == 2){ 
    Number = "paper"; 
} 



if (Number == userInput){ 
     alert("TIE"); 
} else if (Number == "scissors" && userInput == "paper"){ 
    alert("Scissors Win\'s"); 
} else if (Number == "scissors" && userInput == "stone"){ 
    alert("Stone Win\'s"); 
} else if (Number == "paper" && userInput == "scissors"){ 
    alert("Scissors Win\'s"); 
} else if (Number == "paper" && userInput == "stone"){ 
    alert("Paper Win\'s"); 
} else if (Number == "stone" && userInput == "scissors"){ 
    alert("Stone Win\'s"); 
} else if (Number == "stone" && userInput == "paper"){ 
    alert("Paper Win\'s"); 
} 

JSFiddle

相关问题