AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  
-50%
Le deal à ne pas rater :
-50% sur Nike Air Max 200 Winter
63 € 125 €
Voir le deal

 

 tri dans l'ordre croissant

Aller en bas 
AuteurMessage
glcraft
Utilisateur confirmé: Rang *****
glcraft

Messages : 1698
Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P
Projet Actuel : Jeu de survie avancé
||--------

tri dans l'ordre croissant Empty
MessageSujet: tri dans l'ordre croissant   tri dans l'ordre croissant EmptyDim 24 Oct 2010 - 12:07

voici un script que j'ai fait pour le faire en C++ :

Code:
ntruc=0
while(ntruc<argument0)
{
    for(i=0;i<argument0;i+=1)
    {
        if argument1[i]>argument1[i+1]
        {
            vari=argument1[i]
            argument1[i]=argument1[i+1]
            argument1[i+1]=vari
        }
        else
        ntruc+=1
       
    }
    if ntruc
        ntruc=0
    //screen_redraw()
    //sleep(100)
}
return argument1
argument0 : le nombre de valeur dans le tableau
argument1 : le tableau de valeur

voici l'exemple : Download ordre croissantr.gmk

et en C++ (pour ce que ca interresse)
Code:
int *tri_bulle(int num,int* tab)
{
    int step=0;
    int var=0;
    while (step
    {
        for(int i=0;i
        {
            if (tab[i]>tab[i+1])
            {
                var=tab[i];
                tab[i]=tab[i+1];
                tab[i+1]=var;
            }
            else
                step++;
        }
        if (step
        step=0;
    }
    return tab;
}
num : nombre de valeur dans le tableau (int)
tab : le pointeur du tableau de valeur (il faut qu'il soit allouer !) (int *)

tri_bulle parce que cette methode s'appelle le tri en bulle.

En revenche, je rapelle que le script GML que j'ai fait ne sert a rien car les listes sont faites pour ca, voici le proceder avec les listes :

créez la liste dans Create
Code:
list=ds_list_create()
ajouter des valeurs avec
Code:
ds_list_add(list,valeur)
et pour les remettre dans l'ordre :
Code:
ds_list_sort(list,1)//1 : ordre croissant; 0 : ordre décroissant
reprennez les valeurs :
Code:
valeur=ds_list_find_value(list,i)
et enfin detruisez la liste avec
Code:
ds_list_destroy(list)

et si on reprend mon script et qu'on inclus les listes, voila ce que ca donne :
Code:
list=ds_list_create()
for(i=0;i<num;i+=1)
{
ds_list_add(list,tab[i])
}
ds_list_sort(list,1)
for(i=0;i<nwin;i+=1)
{
tabreturn[i]=ds_list_find_value(list,i)
}
ds_list_destroy(list)
return tabreturn;

num=nombre de valeur
tab=tableau de depart
tabreturn=tableau de retour


Dernière édition par gabin49 le Dim 24 Oct 2010 - 23:59, édité 1 fois
Revenir en haut Aller en bas
http://gameblog49.skyblog.com/
Mass
*Excellent utilisateur*
Mass

Messages : 3338
Localisation : Dans une canonnière wookie.
Projet Actuel : Living the life
tri dans l'ordre croissant Void

tri dans l'ordre croissant Empty
MessageSujet: Re: tri dans l'ordre croissant   tri dans l'ordre croissant EmptyDim 24 Oct 2010 - 23:02

jveux pas te casser, mais avec une liste ça supprime le besoin d'indiquer le nombre de valeur, et la fonction ds_list_sort fait tout le travail Wink

_________________
Revenir en haut Aller en bas
http://madmass.mype.fr/CBNA/
glcraft
Utilisateur confirmé: Rang *****
glcraft

Messages : 1698
Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P
Projet Actuel : Jeu de survie avancé
||--------

tri dans l'ordre croissant Empty
MessageSujet: Re: tri dans l'ordre croissant   tri dans l'ordre croissant EmptyDim 24 Oct 2010 - 23:49

mais en C++ ?
De base, li n'y a pas de liste, j'ai fait le script uniquement pour le C++.
En GML, il faut evidement utiliser les listes. Elles sont plus rapide et c'est deja inclus dans GM.
Je vais mettre un script dans le topic pour cela
Revenir en haut Aller en bas
http://gameblog49.skyblog.com/
Contenu sponsorisé




tri dans l'ordre croissant Empty
MessageSujet: Re: tri dans l'ordre croissant   tri dans l'ordre croissant Empty

Revenir en haut Aller en bas
 
tri dans l'ordre croissant
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Scripts GML-
Sauter vers: