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....! :roll:

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é ! :D

heu ! 4 ou 6 c'est pareille , bref , c'est le principe quoi ! :D

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 :lol: #jaune

Je reprendrais ça demain :sleeping:

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! :oops:

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! :roll:

Merci!