Discuss Scratch

Dobby-Lestrange
Scratcher
43 posts

[Aide ] - Comment faire pour trier les élèments d'une liste ?

Bonjour à tous,

Je cherche à trier dans l'ordre décroissant une liste de score (au format nnn - username).

Comment réaliser ce tri dans un liste Scracth ?

Merci pour votre aide?.


@Dobby-Lestrange
Bouboufez
Scratcher
1000+ posts

[Aide ] - Comment faire pour trier les élèments d'une liste ?

Regarde ce projet et examine-le, il pourrait t'interesser :
https://scratch.mit.edu/projects/140488114/

Dobby-Lestrange
Scratcher
43 posts

[Aide ] - Comment faire pour trier les élèments d'une liste ?

Bouboufez wrote:

Regarde ce projet et examine-le, il pourrait t'interesser :
https://scratch.mit.edu/projects/140488114/
Merci je vais voir
dire [Merci pour l'aide] pendant (2) secondes
SBissay
Scratcher
500+ posts

[Aide ] - Comment faire pour trier les élèments d'une liste ?

Hmm, ce projet revient à un tri par insertion, qui a l'avantage d'être simple à coder, mais est plutôt gourmand en opérations. Si la vitesse d'exécution n'est pas un problème (parce que la liste à trier sera assez petite ou parce que tu as le temps), n'hésite pas à l'utiliser. Sinon, je ne saurais que te conseiller de te pencher sur des algorithmes de tris plus performants, et c'est un domaine plutôt fourni en informatique théorique (et pratique !).

Jette donc un œil ici, et va voir les liens correspondants aux tris qui t'intéressent, le tri est un excellent exercice d'algorithmique. D'autant plus qu'il n'y a pas de “meilleur” tri, juste des versions plus adaptées à chaque situation (qui dépend de la taille de la liste, de la répartition des éléments, de la présence ou non de doublons, de la mémoire disponible, etc.)

Generative art :              Pivot  :               Sudoku :
smrman
Scratcher
1000+ posts

[Aide ] - Comment faire pour trier les élèments d'une liste ?

Le plus performant reste de créer 2 listes.
1 avec les éléments à trier et l'autre qui sera notre résultat.
On n'aura plus qu'à transvaser chaque élément de la première liste pour le mettre dans la 2ème et au passage le trier.

Voila un petit script pour trier une liste par ordre croissant avec cette méthode.

répéter (longueur de [liste1 v] :: list) fois
répéter jusqu’à <(élément (premier v) de [liste1 v] :: list) > (élément (var) de [liste2 v] :: list)>
ajouter à [var v] (1)
end
insérer (élément (premier v) de [liste1 v] :: list) en position (var v) de la liste [liste2 v]
supprimer l'élément (premier v) de la liste [liste1 v]
end

Dobby-Lestrange
Scratcher
43 posts

[Aide ] - Comment faire pour trier les élèments d'une liste ?

smrman wrote:

Le plus performant reste de créer 2 listes.
1 avec les éléments à trier et l'autre qui sera notre résultat.
On n'aura plus qu'à transvaser chaque élément de la première liste pour le mettre dans la 2ème et au passage le trier.

Voila un petit script pour trier une liste par ordre croissant avec cette méthode.

répéter (longueur de [liste1 v] :: list) fois
répéter jusqu’à <(élément (premier v) de [liste1 v] :: list) > (élément (var) de [liste2 v] :: list)>
ajouter à [var v] (1)
end
insérer (élément (premier v) de [liste1 v] :: list) en position (var v) de la liste [liste2 v]
supprimer l'élément (premier v) de la liste [liste1 v]
end

Merci beaucoup je vais peut être essayer
Itharius
Scratcher
1000+ posts

[Aide ] - Comment faire pour trier les élèments d'une liste ?

smrman wrote:

Le plus performant reste de créer 2 listes.
1 avec les éléments à trier et l'autre qui sera notre résultat.
On n'aura plus qu'à transvaser chaque élément de la première liste pour le mettre dans la 2ème et au passage le trier.

Voila un petit script pour trier une liste par ordre croissant avec cette méthode.

répéter (longueur de [liste1 v] :: list) fois
répéter jusqu’à <(élément (premier v) de [liste1 v] :: list) > (élément (var) de [liste2 v] :: list)>
ajouter à [var v] (1)
end
insérer (élément (premier v) de [liste1 v] :: list) en position (var v) de la liste [liste2 v]
supprimer l'élément (premier v) de la liste [liste1 v]
end

je bloque depuis hier pour classer les elements d'une liste déjà définie par ordre croissant.
l'algo que tu proposes et je n'arrive pas à comprendre pourquoi classe les elements de la liste 1 dans la liste 2 par ordre décroissant. Help.
j'ai essayé en mettant var à 1 avant la boucle et dans la boucle avant le repeter jsqu'à et rien n'y change
(en fait je comprends pourquoi elle la classe dans l'ordre décroissant mais je trouve pas le truc pour le classer en croissant)

Last edited by Itharius (Aug. 27, 2017 14:04:31)

Itharius
Scratcher
1000+ posts

[Aide ] - Comment faire pour trier les élèments d'une liste ?

bon….je viens enfin de réussir à trouver le truc

supprimer l'element tout de la liste 2
ajouter element 1 de la liste 1 à liste 2
supprimer l'element 1 de la liste 1
ensuite le tout dans la boucle repeter longueur de la liste 1
mettre var à 1
repeter jusqu'à l'element 1 de la liste 1 < element var de la liste 2 OU var > longueur de la liste 2
ajouter à var 1

inserer l'element 1 de la liste 1 en position var de la liste 2
supprimer l'element 1 de la liste 1
Ascor
Scratcher
100+ posts

[Aide ] - Comment faire pour trier les élèments d'une liste ?

Ouais, c'était un truc vite fait mal fait, j'aurais du m'appliquer, ça t'aurais pris moins de temps, mais l'idée était là…

spirou201
Scratcher
500+ posts

[Aide ] - Comment faire pour trier les élèments d'une liste ?

D'ailleurs ranger les éléments d'une liste dans l'ordre croissant fait parti des opérations les plus lentes possibles, car ca utilise une complexité O^2
Voila c'est peut etre inutile mais c'est intéressant… :p
Ascor
Scratcher
100+ posts

[Aide ] - Comment faire pour trier les élèments d'une liste ?

Il y a plusieurs façons de faire …

https://goo.gl/66fbdT

Itharius
Scratcher
1000+ posts

[Aide ] - Comment faire pour trier les élèments d'une liste ?

le lien donné par Sbissay était trop complexe, surtout que je cherchais une solution simple. 24 possibilités différentes Oo.

Depuis que j'ai posté ce message, j'ai bien avancé et mon jeu est jouable, je vais m'attaquer à la partie de l'IA maintenant , je ne peux pas résister à vous dire que je suis en train de faire un poker joueur contre ordi ^^. j'avais besoin d'un truc pour classer les cartes dans le bon ordre afin que ce soit plus facile pour déterminer les mains. c'est bon les mains sont reconnues maintenant ^^ ( il n'y a que la main 1,2,3,4,5 que je n'ai pas codée). je suis assez excité car si je ne me trompe pas, je n'ai pas encore vu de projet scratch poker avec une IA Computer

Last edited by Itharius (Aug. 27, 2017 18:53:19)

abraGauthier
Scratcher
21 posts

[Aide ] - Comment faire pour trier les élèments d'une liste ?

Et pour l’ordre décroissant ?
Deuzz
Scratcher
500+ posts

[Aide ] - Comment faire pour trier les élèments d'une liste ?

Bonsoir

1) merci de ne pas déterrer de vieux sujets
2) Lis-le et tu constateras que le problème initial est que le systeme pour trier la liste par ordre croissant, la trie dans l'ordre décroissant… ça tombe bien, c'est ce que tu veux

Powered by DjangoBB