Gestion des tournois FFF

Auteur : lemonhead

Après avoir organisé quelques tournois, nous nous étions aperçu que ça traînait souvent en longueur, et que lorsqu'un tournoi dure plus de 4 ou 5 heures, les joueurs ne restaient pas et bien souvent la finale se jouait sans aucun spectateur (c'est triste).

 

Nous avons alors écrit un générateur de tournoi, qui permet de gérer des tournois de manière évolutive - c'est à dire qu'on peut inventer et créer des nouveaux "types" de tournois à volonté. Quasiment tout est possible, sauf une chose qui n'a jamais été faite : les loser bracket. C'était tout à fait volontaire, pour deux raisons :

- quand on a perdu, on est moins motivé pour continuer à jouer

- plus le tournoi avance, plus il y a de spectateurs dans les phases suivantes, chacun allait suivre tel ou tel joueur et parfois même, on commentait certains matchs sur TS. Les loser bracket auraient empêché cette convivialité, qui était pour nous essentielle et partie intégrante d'un tournoi.

 

Pour bien comprendre le générateur de tournoi, il faut savoir que des types ont été inventés et couvrent à peu près toutes les possibilités. Les tournois se génèrent tous seuls, le nombre de poule, le nombre de joueurs dans chaque poule, la manière dont les joueurs sont répartis dans les poules, la manière dont les gagnants sont reversés dans les phases suivantes, TOUT est décidé par le générateur en fonction du nombre de joueurs. Un tournoi d'un même type ne sera pas généré pareil si il y a 15 ou 16 joueurs par exemple. Une règle : FAITES CONFIANCE AU GENERATEUR.

 

Les grands types de tournois sont actuellement :

 

- Le tournoi à élimination directe (des matchs individuels, une défaite = élimination)

- Le tournoi complet (tout le monde rencontre tous les autres joueurs)

- Le tournoi poulettes (des poules sont créés de 3 à 5 joueurs en général)

- Le tournoi adaptatif (le générateur produit la meilleure formule possible et le nombre de matchs est réduit au maximum - le type de tournoi idéal quel soit le nombre de joueurs)

 

Certaines variantes existent pour chacun de ces types de tournois :

 

- BO1 ou BO3 (ou juste la finale en BO3 et le reste en BO1)

- variante "rapide" : la phase de finale arrive plus tôt, les phases intermédiaires sont sacrifiées

- variante "random" : les joueurs sont répartis au hasard (avec le risque que deux très bons joueurs se rencontrent en début de tournoi)

- variante "TS" (têtes de série) : les joueurs sont notés avant le début du tournoi et le générateur tient compte de ces notes pour éviter de faire rencontrer les têtes de série dès le départ

Pour les exemples qui vont suivre, j'ai créé un tournoi avec 11 inscrits (nombre un peu exotique, qui permet de voir comment le générateur s'en sort).

 

 

 

 

 

TOURNOI A ELIMINATION DIRECTE

 

Description officielle : Un tournoi à élimination directe est un tournoi à "phases". Les vainqueurs accèdent aux phases suivantes. Une défaite est donc éliminatoire.

 

Dans ce genre de tournoi, les phases sont des puissances de 2 (2, 4, 8, 16, 32 joueurs...). Pour 11 joueurs, le générateur est donc obligé de faire une phase de 16 joueurs avec donc 8 poules, mais il doit ajouter 5 "exempts". Les matchs contre les exempts sont automatiquement gagnés. Cette manière de faire est tout à fait standard.

 

Voici la résolution du tournoi par le générateur :

 

 

 

 

TOURNOI COMPLET

 

Description officielle : Le principe des tournois complets est très simple : tout le monde doit rencontrer tous les autres joueurs. Evidemment, ce type de tournoi ne peut être utilisé que pour un nombre de joueurs restreint.

 

La résolution du générateur est la suivante :

 

 

Pour 11 joueurs, les types "complet" et "massif" génèreront ce même tournoi. Le type "massif" pourra par contre décider de scinder en deux grosses poules (ou plus) si le nombre de joueurs est vraiment trop important.

 

Pour 11 joueurs, chacun a donc 10 matchs à faire dans la première phase. C'est beaucoup ! C'est donc un type de tournoi à garder pour des évènements qui se déroulent sur plusieurs jours, voir des semaines.

 

En variante "rapide", le tournoi aura plutôt cette tête :

 

 

 

 

TOURNOI POULETTES

 

Description officielle : Un tournoi poulettes est un tournoi par phases, constituées de petites poules de 3 à 5 joueurs. Les qualifiés de chaque poule passent à la phase suivante, elle-même constituée de ce genre de poules. Le nombre de phase et la taille des poules est déterminée automatiquement en fonction du nombre de joueurs. Il y a également une phase de demi-finales, et une phase finale qui se joue en BO3 pour la finale, et en BO1 pour la petite finale (3ème place).

 

Là encore, difficile de savoir comment le générateur va décider le nombre de poules et la taille des poules dans chaque phase du tournoi, mais ne vous inquiétez pas : ce sera toujours "au mieux" :

 

 

En variante "rapide", ce sera plutôt : 

 

 

 

 

TOURNOI ADAPTATIF

 

Description officielle : Le type de tournoi adaptatif a été créé dans le but de ne pas générer de tournois interminables lorsqu'il y a un grand nombre d'inscrits. L'algorithme utilisé génère un nombre limité de matchs dans la première phase (en général 4 matchs par participant), même avec des nombres de participants exotiques (comme 7, 11 ou 23). Le générateur trouvera toujours un moyen de créer un tournoi rapide, régulier, où tout le monde peut jouer en même temps, et où personne ne rencontre deux fois la même personne. La seconde phase est une demi-finale, suivie d'une finale en BO1. Nombre de participants maxi = 512.

 

C'est le dernier type que j'ai créé, et honnètement, c'est le meilleur. Il produit des tournoi intéressants et souvent inattendus. Le nombre de matchs est réduit, même dans des poules nombreuses. Si je vous expliquait comment fonctionne l'algorithme derrière ce truc, vous me prendriez pour un fou. Je vous garantie que vous ne trouverez jamais de tournoi de ce type ailleurs !

 

Voici ce qui est fait pour 11 joueurs :


 

Et là vous vous dites : mais c'est un tournoi complet (à la première phase) ?? Mais non ! Parce que tout le monde ne rencontre pas tout le monde dans la poule. Le générateur génère 4 matchs par personne, et tout le monde a le même nombre de matchs à faire ! (quatre). Avec 11 joueurs... si quelqu'un veut me faire l'explication mathématique, je suis tout ouïe :)

 

 

Juste pour vous montrer, si je rajoute un 12ème joueur, le générateur va faire complètement autre chose :

 

 

On a alors deux poules dans la première phase, mais là encore, tout le monde ne rencontre pas tout le monde, mais chacun a le même nombre de matchs à faire :

 

 

 

Lemonhead.

Commentaire de Gozzo :Samedi 11 Avril 2015 - 11:46)

Tu es genial Lemon ! Vraiment bravo c'est complet on comprend tous, Bravo pour le travail !

 

J'aurais une petit requète, pourrait tu autorisé a tout les membres a créer des tournois. Ca permettrait aux gens de s'impliquer directement :)

Commentaire de lemonhead :Samedi 11 Avril 2015 - 15:38)

Les gens qui s'impliquent ne restent pas simples membres très longtemps :)

Commentaire de wazahhh :Samedi 11 Avril 2015 - 15:58)

merci pour l'article lemon

Commentaire de Gozzo :Samedi 11 Avril 2015 - 17:07)

Finalement tu as codé le looser brackets ?

Commentaire de Toto :Samedi 11 Avril 2015 - 19:03)

Felicitations pour le boulot effectué! 

Ça va être bien utile pour le petit tounoi lol intersection :)

Commentaire de lemonhead :Dimanche 12 Avril 2015 - 14:34)

C'est écrit au début de l'article, Gozzo.

Commentaire de Gozzo :Dimanche 12 Avril 2015 - 14:48)

Oui Oui j'avais bien lu mais on va faire comment pour el tournoi de lundi alors ? Le looser bracket me parait important. =/

Commentaire de lemonhead :Dimanche 12 Avril 2015 - 23:19)

Tu peux le gérer à la main, je pense que c'est encore la meilleure solution (un deuxième tournoi ne permettra pas d'y faire entrer des gens au fur et à mesure).

Commentaire de Gozzo :Lundi 13 Avril 2015 - 10:30)

Ca marche je m'occuperai de ça ce soir alors