感谢你们优秀的溢出者的帮助,我修复了我愚蠢的小 RNG 加法游戏并让它工作。现在,根据一位用户的建议,在编写下一个游戏之前,我正在尝试将添加游戏代码的范围从全局更改为本地;我希望每个游戏都完全包含在它自己的范围内,因为我知道学习不要轻率地污染全局范围是一个好主意。但是,我有点坚持如何实现这一目标。
这是当前功能加法游戏的代码:
function beginAdditionChallenge() {
var x = Math.ceil(Math.random()*100);
alert(x);
for (var i = 0; i < 3; i++) {
var a = Number(prompt("Provide the first addend.", ""));
var b = Number(prompt("Provide the second addend.", ""));
if (a + b === x) {
alert("Well done!");
break;
}
else if (a + b !== x && i < 2) {
alert("Please try again.");
}
else {
alert("Derp.");
}
}
}
function initChallenge() {
var button = document.getElementById("challengeButton");
button.addEventListener("click", beginAdditionChallenge);
}
window.addEventListener("load", initChallenge);
这是我包装它的尝试,它只成功地破坏了游戏,以至于按钮甚至没有响应:
window.addEventListener("load", function() {
function beginAdditionChallenge() {
var x = Math.ceil(Math.random()*100);
alert(x);
for (var i = 0; i < 3; i++) {
var a = Number(prompt("Provide the first addend.", ""));
var b = Number(prompt("Provide the second addend.", ""));
if (a + b === x) {
alert("Well done!");
break;
}
else if (a + b !== x && i < 2) {
alert("Please try again.");
}
else {
alert("Derp.");
}
}
}
function initChallenge() {
var button = document.getElementById("challengeButton");
button.addEventListener("click", beginAdditionChallenge);
}
window.addEventListener("load", initChallenge);
});
功能代码在JSFiddle 上可用。