Aucun affichage du résultat de ma fonction
Bonjour,
Je cherche à faire un petit jeu de hasard... sans recopier bêtement une solution toute faite sur internet pour comprendre le fonctionnement de la programmation jS.
voici mon html (tout simple ) :
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
| <!DOCTYPE html>
<html lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="TITLE" content="Mon jeu de Hasard ):"/>
<title>Devine un nombre .... compris entre 1 et 100 ;)</title>
<link href="styles.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="gen_number.js"></script>
</head>
<body>
<div id="wrapper">
<header>
<h1>Le JavaScript en s'amusant ... Jeu de hasard et de découverte</h1>
</header>
<main>
<form>
<input type="button" onclick="partie()" value="Jouer"/>
</form>
</main>
</div>
</body>
</html> |
et mon Javascript
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
| function partie() {
var X = Math.floor(Math.random()*101);
var nb;
var cpt = 0;
var affichage = "Donnez-moi un chiffre entre 1 et 100 ..." ;
do{
nb = prompt(affichage);
if ( nb==null )
return 0;
cpt ++;
if ( nb<X )
affichage = "Le nombre indiqué est trop petit !";
else
affichage = "Le nombre indiqué est trop grand !";
}
while ( nb!=X )
return cpt;
}
function compteur(){
var cpt = 0;
var compteur = 0;
var cpt_max = 10;
var continuer;
do{
compteur = partie();
if (compteur)
{
cpt ++;
if ( compteur < cpt_max )
continuer = confirm("Bravo tu as gagné !");
}
else continuer = false;
}
while ( continuer )
} |
Tout semble bien fonctionner mais quand on trouve le résultat, cela ne dit pas que l'on a gagné... Qu'aurais-je oublié?
Merci
Pourtant à l'essai ce test fonctionne
Citation:
Envoyé par
CosmoKnacki
Ce test est faux (erreur de logique), je te laisse trouver pourquoi:
Code:
1 2 3 4
| if ( nb<X )
affichage = "Le nombre indiqué est trop petit !";
else
affichage = "Le nombre indiqué est trop grand !"; |
La variable
cpt dans la fonction
compteur ne sert à rien.
Si le test est faux, pourquoi fonctionne t il?
mais je peux remettre toutes les conditions si il le faut
Code:
1 2 3 4 5 6 7 8
| if ( nb<X )
affichage = "Le nombre indiqué est trop petit !";
else
if ( nb>X )
affichage = "Le nombre indiqué est trop grand !";
}
while ( nb!=X )
return cpt; |
Je saisi, il faut un code propre, pardon, je pensais que
Je suis tout a fait d'accord avec toi @jreaux62, mais comme il n'y avait qu'une seule instruction, j'avais pris la liberté de les enlever. Je les remets mais le résultat final qui est de dire que l'on a trouvé le bon chiffre ne fonctionne pas.
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
| function partie()
{
var nb;
var cpt;
var affichage = "Donnez-moi un chiffre entre 0 et 100 ..." ;
do{
nb = prompt(affichage);
if ( nb==null ){
return 0;
cpt ++;}
if ( nb === X ){
affichage = "Bravo tu as trouvé en " + cpt + " coup(s).";
cpt ++;}
else
if ( nb<X ){
affichage = "Le nombre indiqué est trop petit !";
cpt ++;}
else
if ( nb>X ){
affichage = "Le nombre indiqué est trop grand !";
cpt ++;}
else
if (cpt=5){
affichage=" Tu as perdu";}
}
while ( cpt<=5 )
} |