需要帮助完成游戏

时间:2017-11-08 19:11:25

标签: javascript html if-statement

我正在尝试在我和AI之间创建更高数量的纸牌游戏,但无论我输入什么,它总是说房子赢了。如果有人能帮我弄清楚为什么我的if,else语句没有激活,我会很感激。

<head>
<meta charset="UTF-8">
<!-- Extra Credit -->
<!-- Jordan Smith -->
</head>

<body>
<h1> Beat the House! </h1>


<script>
var num1 = prompt("Please enter a number between 1 and 10.", "");
var result = Number(num1);
num1 = parseFloat(num1);

{
document.write("</p>" + num1 + " is your number. </p>");
}

for(i=0; i < 1; i++){
var num2 = document.write(Math.floor(Math.random() * 10) + " ");
}
{
document.write(" is the house's number.");
}

{
document.write("<br>");
document.write("<br>");
}


if (num1 > num2) {
document.write("You have the higher number! You win!");
} else {
document.write("The house has the higher number! You lose!");
}


</script>
 

</body>
</html>

2 个答案:

答案 0 :(得分:0)

document.write不会返回任何内容,因此会因不平等而转换为NaN。与NaN的比较总是错误的,所以在这种情况下它会像房子一样对待它。

你可能想要的是:

// num2 is a number
var num2 = Math.floor(Math.random() * 10);
document.write(num2 + " ");

答案 1 :(得分:0)

var num2 = document.write(Math.floor(Math.random() * 10) + " ");不会在您的情况下返回任何内容。

以上解决方案就是这样:

for(i=0; i < 1; i++){
var num2 = Math.floor(Math.random() * 10);
}
{
document.write(num2+" is the house's number.");
}

对于未来,你可以随时检查变量的含义,将它们输出到控制台:

console.log(num1);
console.log(num2);

那样你就会知道num1会输出你告诉它的任何东西,而num2(在你的例子中)会输出NaN - 因为你无法将数字与NaN进行比较:if-else语句将始终转到else。 / p>