Variable commençant par la même lettre, hashtables, classement

Signaler
-
 Pangoline -
Bonjour à tous et à toutes,

Je suis administratrice d'un channel IRC privé d'écriture. J'ai mis en place, il y a environ deux semaines un système de wordwar (tournoi d'écriture) qui se déclenche toutes les heures.

J'ai également scripter plusieurs remotes qui permettent d'enregistrer le score à la fin d'une wordwar, d'accéder au score des joueurs et une autre pour accéder au score cumulé de tous les participants.

Pour préparer la suite, j'aimerai créer un classement des 5 meilleurs, quand un joueur enregistre son score, une variable et créée à son nom avec pour valeur le score (qui s'ajoute au précédent score).

Pour exemple, pour moi si je tape !ww 250 et que j'obtiens une variable nommée ainsi :

%xPangoline 250

Si une heure après j'écris cette fois 100 mots :

%xPangoline 350

Je sais que pour un classement, le plus simple (et plus rapide il me semble) est de passer par les hashtables. J'ai lu tout plein de tutoriaux différents, et je pense avec un peu de patience m'en sortir pour créer ce classement.

Toutefois, j'aurai quelques questions :

Pour les scores cumulés, je suis passée par un code un peu long, qui je pense peut-être simplifié, le voici :

on 1:TEXT:!total*:#Monchat: /set %temp $calc( [ $var(%x*,1) ] + [ $var(%x*,2) ] + [ $var(%x*,3) ] + [ $var(%x*,4) ] + [ $var(%x*,5) ] + [ $var(%x*,6) ] + [ $var(%x*,7) ] + [ $var(%x*,8) ] + [ $var(%x*,9) ] + [ $var(%x*,10) ] + [ $var(%x*,11) ] + [ $var(%x*,12) ] + [ $var(%x*,13) ] + [ $var(%x*,14) ] + [ $var(%x*,15) ] + [ $var(%x*,16) ] + [ $var(%x*,17) ] + [ $var(%x*,18) ] + [ $var(%x*,19) ] + [ $var(%x*,20) ] + [ $var(%x*,21) ]) | /msg #MonChat 0,3 Chèr(e)s ami(e)s, à vous toutes et tous vous avez écrit 8,3 %temp 0,3 mots !

En effet, je n'ai pas trouvé le moyen de faire une addition plus simple de toutes les valeurs de variable commençant par %x.
Donc ma première question sera, est-ce qu'il existe un moyen plus simple de coder cela ?

Ensuite, je compte donc intégrer le nom des participants et leur score dans une hashtable pour pouvoir gérer un classement des 5 meilleurs.

Que me conseilleriez-vous de faire ?
D'entrer en première donnée les scores et ensuite les pseudos, pour que le classement se fasse automatiquement ?
(Mais à ce moment-là, est-ce que ce tri se fera ensuite automatiquement ?)

Est-ce que je dois passer par un $tok ? Qui il me semble permet de trier des données dans un certain ordre.

Me sera-t-il facile de gérer des variables commençant toutes par une lettre en commun ?

Je sais qu'il existe aussi le tri par bulles, mais pour le coup cela me semble super complexe, est-ce que cela pourrait être adapté à ce que je recherche ?

Je suis navrée de toutes ces questions qui sont certainement un peu idiotes, mais je débute.
Toutefois, sachez que j'ai déjà parcouru 1000 et 1 tutoriaux, que je ne compte pas avoir ici un code tout cuit mais au moins une réponse à mes questions.

Merci d'avance pour vos réponses,
Pangoline.

2 réponses

Pardon j'ai dit une grosse bêtise, c'est $sortok je crois qui permet de classer des données...
Je me permets de faire remonter ce message. Navrée pour le dérangement.