我做了一些调查,看看是否能找出我的代码不起作用的原因,但我并不完全明白我应该寻找什么!
发生的情况是,当用户在文本框“playerinput”中输入猜测,然后点击提交(运行游戏功能)时,我的程序输出“您猜得太低了()。您有 4/3/2/1...猜测。”
让我抓狂的是 () 是猜测应该去的地方。由于某种原因它停留在 0(我认为)。
我的代码是否正确生成数字并正确调用它?
var NumberGame={
playerinput:document.getElementById("playerinput").value,
computernumber:0,
count:0,
output:document.getElementById("CPUoutput"),
guess:document.getElementById("guessbutton"),
randomnumber: function(){
NumberGame.computernumber = Math.floor(Math.random() * 20) + 1;
return NumberGame.computernumber;
}
}
function newgame() {
window.alert("A new game has begun. Your guesses have been reset to 0, and the new number has been generated.");
location.reload();
}
function game() {
if (NumberGame.count===0){
NumberGame.computernumber=NumberGame.randomnumber();
}
if (NumberGame.playerinput < NumberGame.computernumber)
{
NumberGame.count++;
NumberGame.output.innerHTML = "You have guessed too low. (" + NumberGame.playerinput + ") You have used up " + NumberGame.count + " guesses.";
}
else if (NumberGame.playerinput > NumberGame.computernumber)
{
NumberGame.count++;
NumberGame.output.innerHTML = "You have guessed too high. (" + NumberGame.playerinput + ") You have used up " + NumberGame.count + " guesses.";
}
else if (NumberGame.playerinput === NumberGame.computernumber)
{
NumberGame.output.innerHTML = "<h1>You Win!</h1>";
newgame();
}
if (NumberGame.count === 5)
{
NumberGame.output.innerHTML = "<h1>You Lose!</h1>";
newgame();
}
}
已更新:根据要求,这是 HTML。将尝试您的一些建议。但有一些我不明白的事情,需要更多的研究。
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>KevinPietteProject1</title>
<link rel="stylesheet" type="text/css" href="mycss.css">
</head>
<body>
<div id="gamebody">
<h1>-- Number Guessing Game --
</h1>
<p >Guess the number between 1-20.</p>
<input id="playerinput" type="text" maxlength="2" autofocus size="4" />
<br>
<input type="button" id="guessbutton" value="Guess!" onClick="game()"/>
<br>
<input type="button" value="New Game" onclick="newgame();" />
<p>
The object of the game is to guess what number the computer is thinking of.<br> The number is always between 1 and 20. Everytime you win, lose, or hit the new game button, a new number is generated. <br> Every new game, you begin with 5 guesses.
<br>
<div id="imagediv">
<img id="thepicture" src="Images/neutral.png" height="120" width="120">
</div>
<br>
<div id="Guessesleft">
</div>
</p>
<div id="CPUoutput">
</div>
</div>
<script src="rewrittenscript.js">
// Here, I've put the script at the bottom of the page so the DOM loads in the right order
</script>
</body>
</html>
最佳答案
您可以使用
onkeyup=""
在你的html中
onkeyup="NumberGame.playerinput = this.value"
我根本看不到您何时调用 NumberGame,但如果您仅在提交时运行 game(),则应该将 NumberGame 合并到您调用的函数中!
或者尝试写
playerinput : function() {return parseInt(document.getElementById("playerinput").value),10}();
然后每次调用时该值都会更新
NumberGame.playerinput
关于javascript - 没有从我的对象变量中获得正确的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20364713/