AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 tri dans l'ordre croissant

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

_________________
GLEngine, la génération procédurale avancée !
Image:
 


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 : 3331
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

_________________
Wyvup
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

_________________
GLEngine, la génération procédurale avancée !
Image:
 
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
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: