Créez un tableau à élimination directe avec exemptions
Cinq équipes donnent un tableau de huit places avec trois exemptions pour les mieux classées, un match d’ouverture et trois tours jusqu’à la finale ; la même liste produit toujours le même tableau. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Participants
- North Stars, River Hawks, City Lions, Valley Foxes, Coastal Bears
- Nombre de participants
- 5
- Taille du tableau
- 8
- Nombre d'exemptions
- 3
- Nombre de manches
- 3
Transformez une liste ordonnée de participants en tableau complet à élimination directe. L’outil calcule la prochaine taille correspondant à une puissance de deux, ajoute uniquement les exemptions nécessaires et numérote chaque match jusqu’à la finale. Aucun tirage n’est aléatoire : une liste identique produit toujours exactement le même tableau.
Préparez la liste dans l’ordre des têtes de série
Commencez par au moins deux noms et classez-les selon l’ordre que le tableau doit respecter. La première entrée devient la tête de série 1, la deuxième la 2, et ainsi de suite. Les noms peuvent désigner des personnes, équipes, clubs, établissements, projets ou autres concurrents, mais chaque entrée doit être une chaîne non vide.
Les espaces placés au début et à la fin sont supprimés afin de nettoyer les libellés copiés depuis les inscriptions. Les doublons sont conservés, car deux concurrents peuvent légitimement partager un nom d’affichage ; ajoutez une ville, une division ou un code si le public doit les distinguer. Le générateur ne mélange pas la liste, ne consulte aucun classement et n’introduit aucun hasard.
Une entrée identique produit donc toujours le même plan. Si le classement détermine les places, triez les noms avant l’appel. Séparer la politique de sélection de la construction permet à chaque tournoi d’appliquer ses propres règles sans hypothèse cachée.
Comprenez la taille, les matchs et les exemptions
Un tableau à élimination directe repose naturellement sur une puissance de deux : 2, 4, 8, 16, puis les tailles suivantes. Lorsque le nombre de participants se situe entre deux valeurs, le générateur choisit la plus petite puissance de deux capable de tous les accueillir. La différence correspond aux exemptions.
Ainsi, cinq participants nécessitent huit places : trois têtes de série passent sans jouer et les deux autres disputent le premier match. Les exemptions reviennent de manière déterministe aux premières têtes de série ; les concurrents restants sont associés dans l’ordre fourni. Chaque match initial indique le nom et le numéro de série.
Une exemption précise aussi qui avance automatiquement. Les tours suivants comportent des références telles que « Vainqueur du match 1 », afin de relier les résultats sans les deviner. La réponse donne également le nombre de participants, la taille du tableau, les exemptions et les tours pour simplifier validation et affichage.
Intégrez le tableau au déroulement de l’événement
Les tours renvoyés peuvent alimenter un affichage graphique, un programme imprimable, une base de matchs ou une liste d’opérations. Parcourez les tours et leurs matchs dans l’ordre fourni. Au premier tour, affichez directement les noms ; en présence d’une exemption, faites avancer le concurrent indiqué sans demander de score.
Aux tours suivants, remplacez chaque référence par le vainqueur du match concerné. Cette capacité construit uniquement la structure : elle ne collecte pas les scores, ne choisit pas les gagnants, ne réserve pas les terrains, ne traite pas les forfaits et ne réorganise pas le tableau. Ces responsabilités doivent rester dans l’application afin que ses règles soient explicites.
Une bonne intégration conserve le tableau initial comme plan immuable, puis enregistre séparément les résultats par numéro de match. L’historique reste ainsi disponible après un forfait ou une correction. Vérifiez la liste avant publication, car modifier son ordre change le tableau.
Cas d’usage
Organiser un tournoi local
Transformez les inscriptions définitives en tableau numéroté que l’équipe peut publier et gérer.
Ajouter des tableaux à un logiciel événementiel
Générez des matchs prévisibles et leurs références de progression à la clôture des inscriptions.
Planifier une compétition interne
Créez une structure à élimination claire pour des équipes, jeux, projets, démonstrations ou concours scolaires.
Questions fréquentes
Comment les exemptions sont-elles calculées ?
Le tableau est porté à la plus petite puissance de deux pouvant accueillir tout le monde. Les places vides deviennent des exemptions.
Qui reçoit une exemption ?
Les exemptions vont aux premiers participants de l’ordre des têtes de série fourni, selon une règle déterministe.
Le générateur mélange-t-il les noms ?
Non. Il n’utilise jamais le hasard. Triez ou mélangez la liste avant l’envoi si le règlement prévoit un tirage.
Deux participants peuvent-ils porter le même nom ?
Oui. Les noms d’affichage identiques sont conservés et les numéros de série distinguent toujours les entrées.
L’outil suit-il les scores et les vainqueurs ?
Non. Il crée le tableau initial et les références de progression ; l’application utilisatrice gère les résultats.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/game/tournament-bracket-build \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"participants":["North Stars","River Hawks","City Lions","Valley Foxes","Coastal Bears"]}'const res = await fetch("https://api.kit.forhosting.com/game/tournament-bracket-build", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"participants": [
"North Stars",
"River Hawks",
"City Lions",
"Valley Foxes",
"Coastal Bears"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/game/tournament-bracket-build",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"participants": [
"North Stars",
"River Hawks",
"City Lions",
"Valley Foxes",
"Coastal Bears"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/game/tournament-bracket-build", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"participants":["North Stars","River Hawks","City Lions","Valley Foxes","Coastal Bears"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"participants":["North Stars","River Hawks","City Lions","Valley Foxes","Coastal Bears"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/game/tournament-bracket-build", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"participants": [
"North Stars",
"River Hawks",
"City Lions",
"Valley Foxes",
"Coastal Bears"
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "game.tournament_bracket_build",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
L’ordre de saisie sert d’ordre de têtes de série, ce qui rend le résultat stable, explicable et réutilisable dans une page d’événement, un système d’inscription ou une API de compétition.
Intégrez le tableau au déroulement de l’événement
Une requête API automatisée coûte $0.002.
Questions techniques
Combien de participants faut-il ?
Au moins deux noms sont requis. Une liste plus courte renvoie une erreur invalid_input.
Combien coûte une requête API ?
Chaque requête API coûte $0.002. L’expérience dans le navigateur peut exécuter localement la même logique déterministe.