Page 1 sur 1
Selection aléatoire.
Publié : dim. 23/oct./2005 18:45
par Chris
Un petit problème ou je coince.
C'est probablement tout simple, mais ça fait quatre heures que je bloque la-dessus.
Voilà.
J'ai une liste qui comporte 6 éléments. (Chemins d'accès à des images)
Il faut que je sélectionne, de manière aléatoire, chaque élément 4 fois.
Les éléments doivent être sélectionnés 4 fois, pas une de plus, pas une de moins.
Chaque élément ne doit pas être sélectionné plusieurs fois d'affilée
Le but, afficher chaque image 4 fois, à des positions aléatoires.
Je ne sais pas trop si vous avez compris ce que je veux dire, mais si quelqu'un a une idée....!

Publié : dim. 23/oct./2005 18:55
par nico
Avec des compteurs pour chaque élément et des tests pour empêcher la répétition du choix d'une même image.
Publié : dim. 23/oct./2005 18:59
par Backup
je ferai comme ça !
une memoire pour retenir les chiffres tiré (soit un tableau,soit une liste, soit une structure )
tu attribues un numero par image (de 1 a 4)
a chaque tirage ,
(random(4)+1)
tu commence par regarder dans ta memoire si ce chiffre est deja sorti ,
si oui , on refait un tirage, (recursif eventuellement ou un bon vieux goto ! )
si non
tu met le resultat dans la liste (ta memoire )
et tu affiche l'image correspondante au chiffre tiré !
heu ! 4 ou 6 c'est pareille , bref , c'est le principe quoi !

Publié : dim. 23/oct./2005 19:06
par Chris
C'est bien ce que j'avais pensé, mais au bout de quatres heures sur à peine dix lignes de code, je sens que j'ai la tête comme une citrouille!
Ca tombe bien, c'est bientôt Halloween
Je reprendrais ça demain

Publié : dim. 23/oct./2005 23:01
par LeCyb
Voilà ce que j'ai pu faire en moins de 5 min, y'a probablement moyen de faire plus propre ou efficace mais bon.
Code : Tout sélectionner
NewList liste.s()
For i = 1 To 4
AddElement(liste())
liste() = "chemin1"
AddElement(liste())
liste() = "chemin2"
AddElement(liste())
liste() = "chemin3"
AddElement(liste())
liste() = "chemin4"
AddElement(liste())
liste() = "chemin5"
AddElement(liste())
liste() = "chemin6"
Next
Repeat
rnd = Random(CountList(liste()) - 1)
SelectElement(liste(), rnd)
Debug liste()
DeleteElement(liste())
Until CountList(liste()) = 0
Publié : dim. 23/oct./2005 23:11
par nico
ça parait tellement évident maintenant, bien vu!

Publié : dim. 23/oct./2005 23:29
par Chris
Eh oui!
C'est le genre de bout de code tout con, mais qui peut te bouffer la vie, pour peu que tu commences à t'enerver dessus!
Merci!