AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 tri dans l'ordre croissant

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
glcraft
Utilisateur confirmé: Rang *****
avatar

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

MessageSujet: tri dans l'ordre croissant   Dim 24 Oct 2010 - 10: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 - 21:59, édité 1 fois
Revenir en haut Aller en bas
http://gameblog49.skyblog.com/
Mass
*Excellent utilisateur*
avatar

Messages : 3325
Localisation : Dans une canonnière wookie.
Projet Actuel :
Things


MessageSujet: Re: tri dans l'ordre croissant   Dim 24 Oct 2010 - 21: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 *****
avatar

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

MessageSujet: Re: tri dans l'ordre croissant   Dim 24 Oct 2010 - 21: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é




MessageSujet: Re: tri dans l'ordre croissant   

Revenir en haut Aller en bas
 
tri dans l'ordre croissant
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Organiser ses favoris pour les AD en ligne
» [ Les traditions dans la Marine ] LE GRAND PAVOIS
» LE MERITE NATIONAL
» Les phrases mnémotechniques
» médias dans l'ordre

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