Programme Guess The Number
Résolu
iamtheone
Messages postés
40
Statut
Membre
-
iamtheone Messages postés 40 Statut Membre -
iamtheone Messages postés 40 Statut Membre -
Bonjour,
Je suis en train d'apprendre le javascript et j'ai essayé de faire un programme "guess the number" classique. Mais celui-ci ne marche pas... Et même avec les "indications" de la console je ne trouve pas les erreurs.
Voici mon code html :
Et voici mon code javascript :
Je tiens à préciser que j'utilise "sololearn" comme compiler.
Merci de me révéler les erreurs que vous voyez. ;)
Je suis en train d'apprendre le javascript et j'ai essayé de faire un programme "guess the number" classique. Mais celui-ci ne marche pas... Et même avec les "indications" de la console je ne trouve pas les erreurs.
Voici mon code html :
<!DOCTYPE html> <html> <head> <title>Guess the number</title> </head> <body onLoad="reset()"> <h2>Guess the number HTML/CSS/JS</h2> <p><a href="">Cliquez ici</a> pour découvrir la manière la plus rapide de deviner un nombre compris entre x et y.</p> <hr /> <input type="submit" value="Actualiser" onClick="reset()"> <p>Vous devez deviner le nombre z compris entre <span id="x"></span> et <span id="y"></span>.</p> <p id="so" align="center" color="red"></p> <form name="form"> <input type="number" name="number" value="0"><br /><br /> <input type="submit" name="submit" value="Soumettre" onClick="submit()"><br /> </form> <p>Votre nombre d'essais : <span id="trys"></span></p><br /><br /><br /><br /><br /><br /> </body> </html>
Et voici mon code javascript :
window.onload = function() { function reset() { x = Math.floor(Math.random() * (-101)); document.getElementById("x").innerHTML = "'+x+'"; y = Math.floor(Math.random() * 101); document.getElementById("y").innerHTML = "'+y+'"; z = Math.random() * (y - x) + x; trys = 0; document.getElementById("trys").innerHTML = "'+trys+'"; } function submit() { var ztry = eval(document.form.number.value); trys++; var so = document.getElementById("so"); if (ztry > z) { so.innerHTML = "c'est moins"; } elseif (ztry < z) { so.innerHTML = "c'est plus"; } elseif (ztry == z) { so.innerHTML = "c'est gagné !!!"; } else { so.innerHTML = "Merci d'entrer un nombre valide."; trys--; } } }
Je tiens à préciser que j'utilise "sololearn" comme compiler.
Merci de me révéler les erreurs que vous voyez. ;)
A voir également:
- Programme Guess The Number
- Programme demarrage windows - Guide
- Programme word gratuit - Guide
- Message programmé iphone - Guide
- Mettre en veille un programme - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
3 réponses
Voici le code corrigé
Il manquait plein de choses ... comme par exemple la déclaration des variables "globales" x y z ...
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Guess the number</title> </head> <body onLoad="reset();"> <h2>Guess the number HTML/CSS/JS</h2> <p><a href="">Cliquez ici</a> pour découvrir la manière la plus rapide de deviner un nombre compris entre x et y.</p> <hr /> <input type="button" value="Actualiser" onClick="reset()"> <p>Vous devez deviner le nombre z compris entre <span id="x"></span> et <span id="y"></span>.</p> <p id="so" align="center" color="red"></p> <input type="number" id="number" value="0"> <input type="button" name="submit" value="Soumettre" onClick="verifier();"><br /> <p>Votre nombre d'essais : <span id="trys"></span></p><br /><br /><br /><br /><br /><br /> <script type="text/javascript"> //declaration des variables "globales" en dehors de toute fonction. var x; var y; var z = 0; var trys; function reset() { x = Math.floor(Math.random() * (0)); document.getElementById("x").innerHTML = x; y = Math.floor(Math.random() * 101); document.getElementById("y").innerHTML = y; z = parseInt(Math.random() * (y - x) + x); trys = 0; document.getElementById("trys").innerHTML = trys; } function verifier() { var reponse = ""; var ztry = parseInt(document.getElementById('number').value); trys = parseInt(document.getElementById('trys').innerHTML); trys++; console.log( "z : " + z + " -> ztry: " + ztry); if (ztry > z) { reponse = "c'est moins"; } else if (ztry < z) { reponse = "c'est plus"; } else if (ztry == z) { reponse = "c'est gagné !!!"; } else { reponse = "Merci d'entrer un nombre valide."; trys--; } document.getElementById("so").innerHTML = reponse; document.getElementById("trys").innerHTML = trys; } </script> </body> </html>
Il manquait plein de choses ... comme par exemple la déclaration des variables "globales" x y z ...
iamtheone
Messages postés
40
Statut
Membre
Un grand merci, ça marche très bien. Je vais regarder comment tu as fais pour ne plus faire les mêmes erreurs.
Bonjour,
Remplace
par :
et dans le js
remplace par :
Remplace
<input type="number" name="number" value="0"> <input type="submit" name="submit" value="Soumettre" onClick="submit()">
par :
<input type="number" id="number" value="0"> <input type="button" name="submit" value="Soumettre" onClick="submit()">
et dans le js
var ztry = eval(document.form.number.value);
remplace par :
var ztry = parseInt(document.getElementById('number').value);
C'est le code COMPLET de ma page. Je rappele que j'utilise sololearn.
--
--
ça ?
<!DOCTYPE html> <html> <head> <title>Guess the number</title> <script> function reset() { x = Math.floor(Math.random() * (-101)); document.getElementById("x").innerHTML = "'+x+'"; y = Math.floor(Math.random() * 101); document.getElementById("y").innerHTML = "'+y+'"; z = Math.random() * (y - x) + x; trys = 0; document.getElementById("trys").innerHTML = "'+trys+'"; } function submit() { var ztry = parseInt(document.getElementById('number').value); trys++; var so = document.getElementById("so"); if (ztry > z) { so.innerHTML = "c'est moins"; } elseif (ztry < z) { so.innerHTML = "c'est plus"; } elseif (ztry == z) { so.innerHTML = "c'est gagné !!!"; } else { so.innerHTML = "Merci d'entrer un nombre valide."; trys--; } } </script> </head> <body onLoad="reset()"> <h2>Guess the number HTML/CSS/JS</h2> <p><a href="">Cliquez ici</a> pour découvrir la manière la plus rapide de deviner un nombre compris entre x et y.</p> <hr /> <input type="submit" value="Actualiser" onClick="reset()"> <p>Vous devez deviner le nombre z compris entre <span id="x"></span> et <span id="y"></span>.</p> <p id="so" align="center" color="red"></p> <form name="form"> <input type="number" id="number" value="0"> <input type="button" name="submit" value="Soumettre" onClick="submit()"><br /> </form> <p>Votre nombre d'essais : <span id="trys"></span></p><br /><br /><br /><br /><br /><br /> </body> </html>