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>