Affichage aléatoire de 4 images sans doublon
Pouet24
Messages postés
25
Statut
Membre
-
Pouet24 Messages postés 25 Statut Membre -
Pouet24 Messages postés 25 Statut Membre -
Bonsoir,
dans le cadre de la création d'un tirage de tarot, je dois
- faire un tirage de 5 images. (sur 22)
- les 4 premières doivent être différentes
- la 5ème peut être la même qu'une des 4 premières.
J'ai créé un bout de code qui ne fonctionne pas --> y a des doublons.
Je suis une vraie débutante.
Je vous donne le code ainsi que la page où il est actuellement à l'essai afin que vous voyez sous quelle forme je veux le placer.
et la page http://astro-free.com/tarot.php
D'avance, un tout grand merci!
dans le cadre de la création d'un tirage de tarot, je dois
- faire un tirage de 5 images. (sur 22)
- les 4 premières doivent être différentes
- la 5ème peut être la même qu'une des 4 premières.
J'ai créé un bout de code qui ne fonctionne pas --> y a des doublons.
Je suis une vraie débutante.
Je vous donne le code ainsi que la page où il est actuellement à l'essai afin que vous voyez sous quelle forme je veux le placer.
<?php $totalimages=22; $nimages[1]="/images/01.gif"; $nimages[2]="/images/02.gif"; $nimages[3]="/images/03.gif"; $nimages[4]="/images/04.gif"; $nimages[5]="/images/05.gif"; $nimages[6]="/images/06.gif"; $nimages[7]="/images/07.gif"; $nimages[8]="/images/08.gif"; $nimages[9]="/images/09.gif"; $nimages[10]="/images/10.gif"; $nimages[11]="/images/11.gif"; $nimages[12]="/images/12.gif"; $nimages[13]="/images/13.gif"; $nimages[14]="/images/14.gif"; $nimages[15]="/images/15.gif"; $nimages[16]="/images/16.gif"; $nimages[17]="/images/17.gif"; $nimages[18]="/images/18.gif"; $nimages[19]="/images/19.gif"; $nimages[20]="/images/20.gif"; $nimages[21]="/images/21.gif"; $nimages[22]="/images/22.gif"; srand((double)microtime()*1000000); $affiche1=rand(1,$totalimages); $affiche2=rand(1,$totalimages); $affiche3=rand(1,$totalimages); $affiche4=rand(1,$totalimages); $affiche5=rand(1,$totalimages); ?> <a href="#" onClick="a.src='<?echo $nimages[$affiche1];?>'"> <img name="a" src="/images/des3.jpg" border="0"> </a> <a href="#" onClick="b.src='<?echo $nimages[$affiche2-=$affiche1];?>'"> <img name="b" src="/images/des3.jpg" border="0"> </a> <a href="#" onClick="c.src='<?echo $nimages[$affiche3-=$affiche1&&$affiche2];?>'"> <img name="c" src="/images/des3.jpg" border="0"> </a> <a href="#" onClick="d.src='<?echo $nimages[$affiche4-=$affiche1&&$affiche2&&$affiche3];?>'"> <img name="d" src="/images/des3.jpg" border="0"> </a> <a href="#" onClick="e.src='<?echo $nimages[$affiche5];?>'"> <img name="e" src="/images/des3.jpg" border="0"> </a>
et la page http://astro-free.com/tarot.php
D'avance, un tout grand merci!
Configuration: Windows XP Firefox 2.0.0.1
8 réponses
-
Salut,
bein...ca va pas marcher comme ca.
Pourquoi ??
Tu recharges la page a chaque clique, alors comment peux tu savoir quelle carte á deja ete tirée. Exactement. Soit tu passes par l'adresse ou tu passe les données sous un formulaire.
Aprés, soit tu recharges la page avec "moins" de possiblilites pour les cartes oubien tu fais tourner ta boucle aussi longtemps que tu veux.
l' Homme grenouille -
Mm, merci pour cette réponse mais ça m'aide pô beaucoup...
Pourrais-tu m'en dire plus? un exemple ou euh... je sais pas... mais un peu plus :) -
Pour les 4 premières :
list($affiche1, $affiche2, $affiche3, $affiche4) = array_slice(shuffle($nimages), 0, 4);
-
Lefou,
je le place où ce morceau là?
je dois enlever quoi?
Merci -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
Comme ça
<?php $nimages = array('/images/01.gif', '/images/02.gif', '/images/03.gif', '/images/04.gif', '/images/05.gif', '/images/06.gif', '/images/07.gif', '/images/08.gif', '/images/09.gif', '/images/10.gif', '/images/11.gif', '/images/12.gif', '/images/13.gif', '/images/14.gif', '/images/15.gif', '/images/16.gif', '/images/17.gif', '/images/18.gif', '/images/19.gif', '/images/20.gif', '/images/21.gif', '/images/22.gif'); shuffle($nimages); list($affiche1, $affiche2, $affiche3, $affiche4) = array_slice($nimages, 0, 4); shuffle($nimages); $affiche5 = $nimages[0]; ?> <a href="#" onClick="a.src='<?php echo $affiche1; ?>'"> <img name="a" src="/images/des3.jpg" border="0"> </a> <a href="#" onClick="b.src='<?php echo $affiche2; ?>'"> <img name="b" src="/images/des3.jpg" border="0"> </a> <a href="#" onClick="c.src='<?php echo $affiche3; ?>'"> <img name="c" src="/images/des3.jpg" border="0"> </a> <a href="#" onClick="d.src='<?php echo $affiche4; ?>'"> <img name="d" src="/images/des3.jpg" border="0"> </a> <a href="#" onClick="e.src='<?php echo $affiche5; ?>'"> <img name="e" src="/images/des3.jpg" border="0"> </a> -
Merci Lefou!
Mm, dernière petite chose, est-ce que tu pourrais commenter le code? Histoire que je comprenne le pourquoi du comment? Rien d'urgent bien sûr :) -
Bon, je reviens à la charge.
Est-ce qu'il serait possible que la 5ème carte apparaisse directement après les 4 premiers cliks?
Donc 4 cliks sur les 4 premières cartes et hop, la 5ème apparait :$
Merciii