Bonjour,
je suis entrain de réfléchir à une solution qui permettrait:
d'avoir 5 chiffres (ou x chiffres) par exemple 1 2 3 4 5
Si je change un des chiffres les autres doivent se comporter de manières à ce qu'ils soient tous différents de 1 à 5.
Par exemple si je mets 2 à la place du 1 le deuxième chiffre se mettra à 2 pour avoir 2 1 3 4 5
si je mets 1 à la place du 4 je devrais avoir 4 2 3 1 5.
si j'ai au départ 2 4 5 1 3 et que je change le 4 pour le 1 je devrais me retrouver avec 2 4 5 1 3
Y a t il une solution pour faire ça par ce que là je sêche ...
Merci de vos réponses
Hors ligne
Ensuite tu pourrais appliquer la procédure suivante, partant d'un couple (nouvelle valeur, emplacement cible) :
1) la nouvelle valeur que tu t'apprêtes à écrire à l'emplacement cible existe par nature déjà dans la collection ; cherche et mémorise la position dudit élément
2) mémorise la valeur actuelle située dans la collection à l'emplacement cible
3) tu écrases ladite valeur (tu ecris la nouvelle valeur)
4) tu écris la valeur qui vient d'être écrasée (mémorisée en 2) à l'emplacement dont la position a été mémorisée en 1
Malheureusement, quand j'écris "cherche et mémorise" dans le point 1 cela implique une petite boucle qui parcourt la collection élément par élément, un peu lourd mais je ne connais pas d'objet spécifique (j'ai pas cherché non plus).
Cette petite routine devrait fonctionner, y compris si tu écris à en endroit une valeur qui s'y trouvait déjà (collection inchangée)
Sorry si je me suis emballé et suis un peu scolaire,
Nau
Hors ligne
L'objet [list] permet ce genre de manipulation
Voici un exemple dans un patch sur http://puredata.hurleur.com/sujet-6223-scrambling-list
list-randomize.pd
Dernière modification par rdc182 (2013-03-16 05:08:44)
Hors ligne
Salut et merci de vos retours
j'ai trouvé une solution en passant par un tableau mais ça m'a l'air très compliqué ... Mais ça marche !
Voici le patch.
Hors ligne
Pages: 1