Le jeu du 21

Résolu/Fermé
cocodu67... Messages postés 3153 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 4 avril 2024 - 3 mars 2013 à 16:58
cocodu67... Messages postés 3153 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 4 avril 2024 - 3 mars 2013 à 19:32
Bonjour,

Je dois faire le jeu du 21, c'est à dire une simulation de lancés de dés entre 2 joueurs et le premier qui dépasse 21 points a gagné.

Voici mon code :


<SCRIPT LANGUAGE="JavaScript">
function has() 
{ 
n = Math.floor ( Math.random() * 6 ); 
} 

function jeu()
{

var scoreA=0;
var scoreB=0;
var icpt;
for(icpt=0; icpt<21; icpt++)
{
scoreA=scoreA+has();
scoreB=scoreB+has();
if(scoreA>=21||scoreB>=21)
{
if(scoreA>=21)
alert("Le joueur A a gagné");
else
alert("Le joueur B a gagné");
}
}

}
</SCRIPT>


La fonction jeu() s'exécute avec un bouton mais puisque ça fonctionne car j'ai testé en mettant alert("o"); juste avant la boucle for et l'alerte est apparu lorsque j'ai cliqué sur le bouton, je n'ai mis que le code JavaScript.

Pour moi ce code est juste mais je pense que l'erreur est toute bête.
Est ce que quelqu'un la voit ?

Merci beaucoup :)
A voir également:

2 réponses

Salut,

il faut que ta fonction has retourne une valeur :
ajoute return n; à la fin de cette fonction
0
cocodu67... Messages postés 3153 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 4 avril 2024 145
3 mars 2013 à 18:01
Merci tidjool :)

Puré ça se voit que j'ai pas programmé pendant toutes les vacances ... c'est une erreur de débutant ça ...
J'ai également rajouté break; après chaque alert après qu'elle ne s'affiche pas infiniment.

Pour ceux que ça intéresse, voici le code en entier :

function has() 
{ 
n = Math.floor ( Math.random() * 6 ); 
return n;
} 

function jeu()
{

var scoreA=0;
var scoreB=0;
var nombre=0;

for(var icpt=0; icpt<21; icpt++)
{
nombre = has();
scoreA=scoreA+nombre;
scoreB=scoreB+nombre;
if(scoreA>=21||scoreB>=21)
{
if(scoreA>=21)
{
alert("Le joueur A a gagné");
break;
}
else
{
alert("Le joueur B a gagné");
break;
}
}
}

}
</SCRIPT>

<input type="button" value="Jouer" onclick="jeu();">

<A HREF="jeu_du_21.html">Autre partie...</A> 


</body>
</html>


C'est pas du codage d'informaticien mais bon pour un exo ça suffit largement.

Bonne soirée :)
Et peut être à bientôt
0
Mais c'est bizarre, ça se joue à une personne ton truc :-)
0
Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 150
3 mars 2013 à 19:23
for(var icpt=0; icpt<21; icpt++)
{
nombre = has();
scoreA=scoreA+nombre;
scoreB=scoreB+nombre;
if(scoreA>=21||scoreB>=21)
{
if(scoreA>=21)
{
alert("Le joueur A a gagné");
}
else
{
alert("Le joueur B a gagné");
}
break;
}
}
0
cocodu67... Messages postés 3153 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 4 avril 2024 145
3 mars 2013 à 19:26
Ah bon mais avec ma syntaxe ça a l'air de fonctionner.

C'est normal ?
0
Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 150
3 mars 2013 à 19:30
c'est normal que ça fonctionne :) ça évite juste de le répéter, c'est plus "correcte". Puisque dans tout les cas, si score a ou b et >= 21 il faut stopper la boucle.
0
cocodu67... Messages postés 3153 Date d'inscription jeudi 28 janvier 2010 Statut Membre Dernière intervention 4 avril 2024 145
3 mars 2013 à 19:32
Ah oui et c'est plus lisible ainsi je trouve.
0