Lancer deux dés PHP

Signaler
Messages postés
28
Date d'inscription
vendredi 26 novembre 2010
Statut
Membre
Dernière intervention
9 juin 2012
-
007Julien
Messages postés
279
Date d'inscription
mercredi 22 septembre 2010
Statut
Membre
Dernière intervention
8 janvier 2014
-
Bonjour j'ai créé un script qui génère le lancer d'un dé avec une boucle tant qu'on a pas obtenu le chiffre 6

Je dois faire la même chose mais cette fois avec le lancer de deux dés et je n'y arrive pas.

Si quelqu'un peut m'aider meric.

Voici le script pour le lancer d'un seul dé;

<form name="recherche" method="post" action="de.php">



</form>






<?php

$jet=rand(1,6);
$compteur=0;

while($jet!=6)
{
$jet=rand(1,6);
$compteur++;


echo 'vous avez tiré un '.$jet;
echo '
';

}
echo 'vous avez tiré un six apres '.$compteur.'coups';



?>

6 réponses

Messages postés
28
Date d'inscription
vendredi 26 novembre 2010
Statut
Membre
Dernière intervention
9 juin 2012

J'oubliais cette fois il faut une boucle tant qu'on a pas obtenu deux 6
Messages postés
128
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
6 mai 2011
2
Bonjour

$compteur=0;
do
{
   $jet1=rand(1,6); // valeur du dé 1
   $jet2=rand(1,6); // valeur du dé 2
   $compteur++;
   echo 'vous avez tiré un '.$jet1;
   echo '
et un '.$jet2;
   echo '

';
}while($jet1 != 6 && $jet2 != 6);

echo 'vous avez tiré deux six apres '.$compteur.'coups'; 


Tant qu'on n'a pas 2 six on rejette les dés, et incrémente le compteur et on affiche les jets.
Messages postés
279
Date d'inscription
mercredi 22 septembre 2010
Statut
Membre
Dernière intervention
8 janvier 2014
2
Le javascript permet de faire des statistiques plus rapidement sans devoir recharger la page autant de fois !

Pour exécuter 100 fois 10 000 tirages :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="fr">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="PSPad editor, www.pspad.com">
<title>Doubles lmancers de dés</title>
<style type="text/css">
</style>
</head>

Doubles tirages



<script type="text/javascript">
DoubleTirage=function(n){var i,j,k=0,c=0;
k=0;while (k<n) {k++;
i=Math.floor(6*Math.random());if (i!=5) continue;
j=Math.floor(6*Math.random());if (j==5) c++;
}
this.res='n°'+cmp+' '+c+' doubles 6 sur '+n+' tirages';
}
var cmp=0;
function tir(){
document.getElementById('rst').innerHTML+='
'+new DoubleTirage(10000).res;
if (cmp++<100) setTimeout('tir()',100);
}
tir();
</script>
</html>
Messages postés
28
Date d'inscription
vendredi 26 novembre 2010
Statut
Membre
Dernière intervention
9 juin 2012

Merci ça marche un grand grand merci :-)
Messages postés
279
Date d'inscription
mercredi 22 septembre 2010
Statut
Membre
Dernière intervention
8 janvier 2014
2
C'est plus spectaculaire avec 36000 fois (il suffit d'écrire new DoubleTirage(36000).res à la fin du script), car l'on peut voir comment les résultats fluctuent autour de 1000 tirages...
Messages postés
279
Date d'inscription
mercredi 22 septembre 2010
Statut
Membre
Dernière intervention
8 janvier 2014
2
Les dés sont jetés !

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="fr">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="PSPad editor, www.pspad.com">
<title>Doubles tirages de dés</title>
<style type="text/css">
body {margin:0;padding:0;font:12px/17px Garamond;color:#009;text-align:center;}
#pge {margin:0 auto;width:700px;}
h1 {font:20px/28px;}
#trg {text-align:left;}
#grh,#grk {width:350px;float:left;text-align:left;}
#grh p{margin:0;padding:0;}
#grk p{margin:0;padding:0;}
.cls {display:block;float:left;margin:0;padding:0;border:0;background:#909;}
.fix {display:block;float:left;margin:0;padding:0;border:0;width:60px;text-align:right;}
</style>
</head>


Doubles tirages

Cette page simule des lancers de dés par tirages aléatoires.

Elle procède d'abord à 1000 épreuves comprenant chacune 3 600 doubles lancers et affiche

le nombre de « double-six » obtenus ainsi que le rang (entre parenthèses) du premier d'entre eux.




Elle procède ensuite à quelques comptages mettant en évidence la répartition des nombres et rangs obtenus.








<script type="text/javascript">
DblTrg=function(n){var i,j,k=0,c=0,r=0;
k=0;while (k<n) {k++;
i=Math.floor(6*Math.random());if (i!=5) continue;
j=Math.floor(6*Math.random());if (j==5) {c++;if (!r) {r=k;this.rng=k}}}
this.nbr=c;
}
var cmp=0,tbl={},tbr={};
function tir(){var n=new DblTrg(3600),t=n.nbr,r=n.rng;
document.getElementById('trg').innerHTML+=t+'('+r+')'+(++cmp<1000?', ':'.');
t=t-t%2;
if (typeof(tbl[t])=='undefined') tbl[t]=1;
else tbl[t]++;
if (typeof(tbr[r])=='undefined') tbr[r]=1;
else tbr[r]++;
if (cmp<1000) setTimeout('tir()',10);
else grp();
}
tir();
function grp(){var c='',t,s=0;
for (t=60;t<140;t+=2){
if (typeof(tbl[t])=='number') c+=' '+tbl[t]+' cas '+t+'-'+(t+1)+'

';
else c+=' '+t+'-'+(t+1)+'

';}
document.getElementById('grh').innerHTML=c;
c='';
for (t=1;;t++){
if (typeof(tbr[t])=='number') {s+=tbr[t];
c+=' '+tbr[t]+' cas '+t+'

';
if (s==1000) break;}
else c+=' '+t+'

';}
document.getElementById('grk').innerHTML=c;
}
</script>

</html>