VERSION OBSOLETE! VOIR DERNIER POST
Wiwidor.zip
(edit 27/09/2008: Windows EXE: wiwidor.exe.tar.gz
)Mode d'emploi:
[plus totalement à jour; la syntaxe a été considérablement assouplie]
Spoiler: Reveal
Pour les Wiwilandais:
Contrairement à un dépouilleur humain, le système est très bête et n'a pas le sens de l'humour. Les bulletins doivent donc être remplis très sérieusement, et les noms des personnes pour lesquelles vous votez doivent être orthographiés exactement. Si les noms sont compliqués, faire un copier-coller n'est pas une mauvaise idée.
Les bulletins sont présentés selon un format simple, que le programme peut lire facilement: pour commencer, il faut préciser votre nom, en l'écrivant à la ligne directement en dessous de l'entête "VOTEUR". Par exemple, pour moi
(Note: les espace avant ou après un nom sont ignorés. Les espaces au milieu d'un nom comptent.)
Après cela, il ne reste plus qu'à voter. Chaque catégorie se présente sous cette forme:
Si vous voulez voter blanc (part), laissez une ligne blanche à la place d'un des noms. Attention:
est incorrect: ce sera interprété comme un vote pour "Tartempion", un vote blanc, et un vote pour un gars appelé "+autre_catégorie", inconnu au bataillon. Cette erreur obligerait la personne en charge des votes à corriger manuellement votre bulletin. Pas bien.
Un bulletin prêt à l'emploi est normalement fourni par le colorié en charge des votes.
Pour le colorié en charge des votes
créer un bulletin vierge: pour creer vers un fichier appelé "bulletin":
Si le fichier existe il est écrasé...
Normalement vous obtenez ce fichier:
stocker les bulletins: un bulletin est un fichier texte. Tous les bulletins correspondant à la même session des Wiwis d'Or doivent être stockés dans le même dossier (défaut: le dossier "votes", dans le répertoire courant.). Assurez-vous qu'il n'y a aucun autre fichier dans ce dossier.
Vérifier les noms: pour que le programme puisse déterminer si "Tartempion" existe réellement, il lui faut la liste des utilisateurs du forum, présentée dans un fichier texte contenant un nom par ligne, et rien d'autre. (défaut: users.list).
Dépouiller: pour dépouiller, si les votes et la liste des utilisateurs sont aux emplacements par défaut, il suffit de lancer le programme sans options: exemple sur quelques votes de test
Les résultats sont affichés par catégories, et triés par nombre de voix, puis par ordre alphabétique pour les ex aequos. La liste des voteurs est triée par ordre alphabétique.
Changer les défauts: pour plus d'infos, voir
Infos sur le dépouillement:
Les votes multiples pour une même personne dans une même catégorie ne sont pris en compte qu'une seule fois.
équivaut à un vote pour Gamall et deux votes blancs. Ceci n'est pas considéré comme une erreur.
Une personne peut voter pour elle-même.
Une personne ne peut utiliser qu'un seul bulletin. Un double bulletin provoque une erreur et interrompt le dépouillement.
Une personne (voteurs et candidats) doit avoir un nom d'utilisateur valide (ie. dans la liste). Un nom invalide provoque une erreur.
Contrairement à un dépouilleur humain, le système est très bête et n'a pas le sens de l'humour. Les bulletins doivent donc être remplis très sérieusement, et les noms des personnes pour lesquelles vous votez doivent être orthographiés exactement. Si les noms sont compliqués, faire un copier-coller n'est pas une mauvaise idée.
Les bulletins sont présentés selon un format simple, que le programme peut lire facilement: pour commencer, il faut préciser votre nom, en l'écrivant à la ligne directement en dessous de l'entête "VOTEUR". Par exemple, pour moi
Code: Select all
*VOTEUR
Gamall
Après cela, il ne reste plus qu'à voter. Chaque catégorie se présente sous cette forme:
Code: Select all
+identifiant_de_catégorie
Nom1
Nom2
Nom3
(éventuellement des lignes blanches)
+autre_catégorie
etc...
Code: Select all
+identifiant_de_catégorie
Tartempion
+autre_catégorie
Un bulletin prêt à l'emploi est normalement fourni par le colorié en charge des votes.
Pour le colorié en charge des votes
créer un bulletin vierge: pour creer vers un fichier appelé "bulletin":
Code: Select all
$ ./wiwidor -generate-ballot bulletin
** Ze Wiwi d'Or
** by Gamall Wednesday Ida
** email : gamall.ida@gmail.com
** web : gamall-ida.com
Generating white ballot 'bulletin'...
Ballot generated successfully.
Normalement vous obtenez ce fichier:
Code: Select all
# Les Wiwis d'Or: Premier tour
*VOTEUR
Votre pseudo Wiwiland
+annee
+sadique
+drole
+cool
+raleur
+flooder
+serviable
+plume
+rpiste
+journaliste
+fou
+sage
+bel_avatar
+moche_avatar
+signature
+dessinateur
* THE END
Vérifier les noms: pour que le programme puisse déterminer si "Tartempion" existe réellement, il lui faut la liste des utilisateurs du forum, présentée dans un fichier texte contenant un nom par ligne, et rien d'autre. (défaut: users.list).
Dépouiller: pour dépouiller, si les votes et la liste des utilisateurs sont aux emplacements par défaut, il suffit de lancer le programme sans options: exemple sur quelques votes de test
Code: Select all
$ ./wiwidor
** Ze Wiwi d'Or
** by Gamall Wednesday Ida
** email : gamall.ida@gmail.com
** web : gamall-ida.com
Building usernames table... 5 names recorded.
Loading vote files... < kafou > < bulletin > < gamall >
Main results :
Voters: Gamall, isa, Kafou
Ze Wiwilandais de l'ann�e
2 Gamall
1 isa
1 Isa
1 Kafou
Wiwi d'Or du plus sadique
3 Gamall
Wiwi d'Or du plus dr�le
1 Kafou
Wiwi d'Or du plus cool
1 Gamall
1 Kafou
Wiwi d'Or du plus r�leur
2 Gamall
1 ida
1 Kafou
Wiwi d'Or du plus floodeur
1 Kafou
Wiwi d'Or du plus serviable
1 ida
Changer les défauts: pour plus d'infos, voir
Code: Select all
$ ./wiwidor --help
Ze Wiwi d'Or HELP
wiwidor [-votes-dir <votes>] [-users-list <users.list>]
-> Make stats using votes in directory <votes>, validating
usernames against file <users.list>.
wiwidor -generate-ballot <path>
-> Generate a white, ready-to-use ballot.
wiwidor --help
-> Display this help page.
Les votes multiples pour une même personne dans une même catégorie ne sont pris en compte qu'une seule fois.
Code: Select all
+cat
Gamall
Gamall
Gamall
Une personne peut voter pour elle-même.
Une personne ne peut utiliser qu'un seul bulletin. Un double bulletin provoque une erreur et interrompt le dépouillement.
Une personne (voteurs et candidats) doit avoir un nom d'utilisateur valide (ie. dans la liste). Un nom invalide provoque une erreur.
Les sources sont fournies sous la GPL. (OCaml. J'utilise v. 3.09.2)
Les sources sont documentées: voir le dossier ./doc
L'exécutable fourni est compilé sur un Linux (K)ubuntu 7.10. Si ça ne vous va pas, il faut soit compiler vous-même, soit me demander.
La complexité asymptotique du dépouillement est en O(n*log n), où n est le nombre de votes.