Salut !
Vous avez besoin d'un système de tri ? Vous êtes au bon endroit ? !
Le petit algorithme suivant (moins de 15 lignes) va vous permettre de trier une liste contenant des nombres, dans un ordre croissant ou décroissant. Ce système de tri prend aussi en charge les égalités, les nombres à virgules ainsi que les nombres négatifs. Pratique non ? De plus, vous n'avez pas besoin d'autres plugins (juste Skript est nécessaire) !
function sorting(1: numbers) :: numbers:
loop {_1::*}:
set {_1} to 1
loop {_2::*}:
loop-value-1 >= loop-value-2 # Pour trier la liste dans un ordre décroissant, mettez "<=" au lieu de ">=".
add 1 to {_1}
set {_2} to {_1} + 1
set {_3::*} to {_2::*}
loop (size of {_2::*} - {_1} + 1) times:
set {_3} to {_2} - 1
set {_2::%{_2}%} to {_3::%{_3}%}
add 1 to {_2}
set {_2::%{_1}%} to loop-value
return {_2::*}
Pour utiliser la fonction, c'est très simple. Imaginons une liste {_numbers::*} contenant des nombres :
command /test:
trigger:
set {_numbers::*} to 8, 4, 12, -6, 2, 1.5, 19, 726, 0.28, -65, 3, 13, 19, 72, 21, 15 and 6
send "Départ :"
loop {_numbers::*}:
send "%loop-value%"
set {_numbers::*} to sorting({_numbers::*})
send "Arrivée :"
loop {_numbers::*}:
send "%loop-value%"
Cette commande va trier la liste ci-dessus dans un ordre croissant.
Pour trier la liste dans un ordre décroissant, référez-vous à la ligne 5 de la fonction.
Merci d'avoir lu ? !