J'ai passé une dizaine de minutes à essayer de comprendre ton code, et effectivement ça marche pour peu que les deux boucles utilisent des variables différentes, mais ça reste inutilement compliqué. Tu stockes l'ensemble des IDs d'instances dans une ds_list, lances une boucle pour tester si l'ID 0 est inférieur ou égal à l'ID 0, puis 1, puis 2, tout en comptant avec
totalxm le nombre de fois ou cette comparaison retourne un
true, en ne retenant ensuite l'ID 0 que si
totalxm est égal au nombre d'instances, ce qui ne peut être le cas que si l'ID 0 a été testé inférieur à tous les autres. Si ce n'est pas le cas, alors tu relances la boucle en comparant cette fois-ci l'ID 1 à l'ID 0, puis 1, puis 2.. Et ainsi de suite.
C'est fonctionnel mais très alambiqué. Inutile de stocker les IDs d'instances dans une liste et de parcourir celle-ci avec des boucles:
with le fait déjà automatiquement. Il suffit alors d'écrire quelque-chose dans ce style (j'ai repris tes noms de variables):
- Code:
-
xm = 9999;
with obj_col
{
if x < other.xm other.xm = x;
}
Qui peut être simplifié avec la fonction
min():
- Code:
-
xm = 9999;
with obj_col
{
other.xm = min(x,other.xm);
}
Ce qui est donc que je t'ai donné dans mon message précédent.
_________________