Jeu du 21 (statistique)

Guiiil Messages postés 13 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 10 juin 2009 - 5 févr. 2008 à 13:21
Guiiil Messages postés 13 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 10 juin 2009 - 7 févr. 2008 à 13:24
<html>
<head>
 <title>Jeu du 21 (statistiques)</title>
</head>

Jeu du 21 (statistiques)
<HR>
Deux joueurs lancent un dé l'un après l'autre. Les points obtenus s'ajoutent, le
premier qui atteint ou dépasse 21 a gagné.

Qui a le plus de chances de gagner ?

Le joueur 1 qui commence à lancer ou le joueur 2 ?

Pour nous faire une opinion, simulons 1000 parties et observons les résultats.

<SCRIPT LANGUAGE="JavaScript">
var score1=0;
var score2=0;

function unePartie() {
 var total=0;
 var joueur=1;
 var de=0;
 while (total<21) {
  de=1+Math.floor(Math.random()*6);
  total+=de;
 joueur=14-joueur;
 }
 joueur=14-joueur;
 if (joueur==1) score1++;
 else score2++;
}

for (var i=0; i<1000; i++) unePartie();
document.writeln("
Victoires du joueur 1 : ",score1);
document.writeln("
Victoires du joueur 2 : ",score2);
</SCRIPT>
<HR>
[21.html Recommencer]

</html>

J'ai trouvé ce programme sur le net, et je m'interrogeais, à quoi sert le " joueur=14-joueur;"?
C'est juste par culture personnelle ^^, ce n'est pas d'une extreme urgence.

4 réponses

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
5 févr. 2008 à 19:26
Bonjour,
En observant la valeur successive de joueur tu te rends compte qu'il ne vaut que 13 ou 1 alternativement...
C'est une méthode pour faire tourner une variable,
cela permet dans ce cas de faire jouer le joueur 13 et le joueur 1 à tour de rôle, regarde comment il incrémente le score.


exemple :
k = 0;
for( i = 0; i < 1000; i++){
  if( k)
    document.write( 'Ligne paire
');
  else

    document.write( 'Ligne impaire
');

  k = 1-k; // valeur 0 ou 1





}




;O)
0
Guiiil Messages postés 13 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 10 juin 2009
6 févr. 2008 à 12:11
Bonjour,

Je te remercie de ta réponse! Je pense avoir compris, en fait, joueur est une sorte de booleen, c'est bien ça?
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
6 févr. 2008 à 17:32
Bonjour,
Tout à fait, il représente en fait 2 états, donc un bollean suffit...
la fonction aurait pu s'écrire
//------------------
function unePartie() {
  var total = 0;
  var FirstJoueur = true;
  var de = 0;
  while (total<21) {
    de = 1 +Math.floor(Math.random() *6);
    total += de;
    FirstJoueur = !FirstJoueur;
  }
  FirstJoueur = !FirstJoueur;
  if( FirstJoueur)
    score1++;
  else
    score2++;
}
voilou !
;O)
0
Guiiil Messages postés 13 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 10 juin 2009
7 févr. 2008 à 13:24
Je te remercie, ça me sera utile pour plus tard! Bonne journée ^_^.
0
Rejoignez-nous