素晴らしいオーバーフローアンの助けのおかげで、私はばかげた小さな RNG Addition ゲームを修正し、動作するようになりました。現在、あるユーザーの提案で、次のゲームをコーディングする前に、追加ゲームのコードのスコープをグローバルからローカルに変更しようとしています。グローバル スコープを軽率に汚染しないことを学ぶことが良い考えであることを理解しているため、各ゲームが独自のスコープ内に完全に含まれることを望んでいます。しかし、私はそれを達成する方法に少しこだわっています。
現在機能している足し算ゲームのコードは次のとおりです。
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こちらで入手できます。