Condition de sortie de boucle.
Je reviens encore avec mon jeu de hasard, j'ai du refaire tout, j'étais hors sujet.... mais petit à petit, je progresse.
Au démarrage de ma page, je sollicite l'utilisateur pour un nombre de coups maximums et j'incrémente un compteur à chaque proposition. Le compteur augmente bien mais la sortie de boucle ne se réalise pas quand le compteur dépasse le nombre de tentatives maximum. Pour le reste, tout semble fonctionner même si l'alerte vous avez perdu s'affiche après l'alerte vous avez gagné mais si déjà je pouvais arrêter la boucle au bon moment ... un problème à la fois.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| <!DOCTYPE html>
<html lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="TITLE" content="J'apprends le JavaScript ):"/>
<title>Je débute en javaScript ;)</title>
<!--link href="styles.css" rel="stylesheet" type="text/css"/-->
<script type="text/javascript" src="fichier_externe2.js"></script>
</head>
<body>
<div id="wrapper">
<header>
<h1>Le JavaScript en s'amusant ... </h1>
<form name="saisie" onsubmit="return Jouer()" method="post">
<input type="text" name="user_Number" placeholder="Votre entrée ..." />
<input type="submit" value="OK" />
</form>
</header>
<main>
</main>
</div>
</body>
</html> |
fichier java :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| var nb_Coup = prompt("Merci de vouloir indiquer le nombre de tentatives maximales :", "Nombres de tentatives");
var compteur = 0;
var numberToFind = Math.floor(Math.random() * 101);
function Jouer() {
console.log(numberToFind);
console.log(nb_Coup + " tentatives max");
var user_Number = document.forms["saisie"]["user_Number"].value;
do {
compteur++;
console.log(compteur);
if (user_Number !== "") {
if (isNaN(user_Number)) {
alert("Ce n'est pas un un nombre !");
return false;
}
} else {
alert("Ce champ doit être renseigné");
return false;
}
if (user_Number < numberToFind) {
alert("le nombre est trop petit");
return false;
} else if (user_Number > numberToFind) {
alert("Votre nombre est trop grand");
return false;
} else {
alert("Bravo ! Vous avez gagné :)");
}
}
while (nb_Coup <= compteur);
// alert("Vous avez perdu !");
} |
Merci de votre aide
Merci à tous ... je ne pensais pas que ma réponse susciterait un tel débat
Merci @badaze pour ta réponse, même si elle ne répond pas à ma question. N'ayant pas vu certaines fonctions que tu proposes, je ne peux l'utiliser et doit faire suite à mon cours qui comprend les boucles : do ... while, while et for.
Merci @galerien69 pour tes encouragements et ta réponse, cela me permet de me dire que je progresse et que mes efforts semblent être récompensés.
Pour le reste, ma question n'avait pas pour but de mettre les membres du forums en porte à faux et de susciter un tel débat.
J'ai donc bien compris que ma condition de sortie de boucle était dans le mauvais sens. Ceci dit, après avoir fait la modification, j'en suis au même point, je ne sors pas de la boucle, le compteur continue de s'incrémenter et je peux faire autant de tentatives que je le souhaite. en effet, si j'enlève les return false comme conseiller plus haut, je ne peux pas entrer de second voir troisième nombre... la boucle se bloque.
Je continue de chercher... :mouarf:
PS: Toutes mes excuses à ce forum pour la gêne occasionnée ;)