Page 1 sur 1

Le tri sera top...

Publié : mer. 01/nov./2006 17:14
par Fig
Bonjours, Désolé pour le jeu de mot préhistorique... :oops:

J'ai un probleme avec le tri d'une matrice et les fonctions sort()

j'ai un tableau du type:
personnage(x,y)
en y j'ai les coordonnées y et en x les coordonnées... x

je veux trier le tableau en fonction des coordonnées y (de la plus petite à la plus grande) et je veux que les coordonnées x se réalignent avec leur correspondantes.

Je me sers de cela pour afficher dans l'ordre de profondeur les sprites.

merci pour vos réponses

Publié : mer. 01/nov./2006 18:40
par Backup
........

Publié : mer. 01/nov./2006 18:42
par Backup
tu peux faire la meme chose avec un tableau
il suffis de recuperer les Y dans un tableau
et les X dans un autre

et tu tri le tableau a 1 dimension des Y en Swapant Aussi sont equivalent X :D

Je viens de reediter mon code pour faire correspondre le numero des personage , pour que tu vois que ce principe s'aplique aussi a leur identité

on swap le Y, donc on swap le X, et on swap l'identité du personnage
pour que tout corresponde :D

Publié : mer. 01/nov./2006 18:55
par comtois
et tu peux remplacer tout ça

Code : Tout sélectionner

debut:
For i=1 To 10
    A=perso(i)\y
     For o=i+1 To 10
        b=perso(o)\y
         If A>b
             Swap perso(o)\y,perso(i)\y
             Swap perso(o)\x,perso(i)\x
            i=1 : Goto debut
         EndIf
     Next o
Next i 
par ça

Code : Tout sélectionner

SortStructuredArray(perso(), 0, OffsetOf(perso\y), #PB_Sort_Long)
C'est magique PureBasic :)

Assurez vous d'avoir la dernière lib 'sort' en la téléchargeant ici
http://www.purebasic.com/beta/

Publié : mer. 01/nov./2006 19:02
par Backup
......

MERCI

Publié : ven. 03/nov./2006 16:17
par Fig
Oui, c'est exactement ce que je voulais... Cf eviter un code pure basic bouclé mais utiliser sort... (direct assembleur) parecque sinon vu que j'ai pas loin de 3000 personnages max, ca va trop ralentir.


Merci beaucoup!

Je vais essayer ça.

@+

PS: J'ai la version pour PC ton lien pour la lib, pointe vers deux dossiers Linux et Mac... :?

Publié : ven. 03/nov./2006 16:29
par comtois
Tu peux oublier le lien si tu as téléchargé la version 4.01

Publié : ven. 03/nov./2006 16:36
par Fig
OK, merci encore. :10: