Grâce à l'aide de vous, vous avez réparé mon petit jeu d'ajout RNG et l'avez fait fonctionner. Maintenant, à la suggestion d'un utilisateur, j'essaie de changer la portée du code du jeu additionnel de global à local avant de coder le prochain jeu; Je veux que chaque jeu soit complètement contenu dans sa propre portée, car je comprends que l'apprentissage de ne pas contaminer inconsidérément la portée mondiale est une bonne idée. Cependant, je suis un peu coincé sur la façon d'y parvenir.Modification de l'étendue du programme Javascript global à la rupture locale
Voici le code pour le jeu d'addition actuellement fonctionnelle:
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);
Et voici ma tentative de l'envelopper, qui ne réussit qu'à briser le jeu, de sorte que le bouton ne répond même pas:
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);
});
Le code fonctionnel est disponible sur JSFiddle here.
vous pouvez utiliser la fonction auto invocateur pour contexte local et il ne cassera pas votre code aussi. – Akhlesh
vous avez juste besoin d'apprendre à utiliser le violon ... quand désactiver les paramètres 'onLoad' – charlietfl