Jeder-gegen-jeden-Spielplan aus Namen erstellen
Vier Teams wie Falcons, Owls, Ravens und Hawks spielen 3 Runden und 6 Partien, und jedes trifft genau einmal auf jedes andere. Fügen Sie Ihre Liste ein und erhalten Sie nummerierte Runden, alle Paarungen und bei ungerader Zahl eine Pause pro Runde. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Teilnehmer
- Falcons, Owls, Ravens, Hawks
- Teilnehmerzahl
- 4
- Rundenzahl
- 3
- Anzahl der Spiele
- 6
Verwandeln Sie eine Liste von Teams, Spielern, Vereinen oder anderen Teilnehmenden in einen vollständigen Jeder-gegen-jeden-Spielplan. Der Generator verwendet die bewährte Kreismethode: Eine Position bleibt fest, die übrigen rotieren zwischen den Runden, sodass alle genau einmal gegeneinander antreten. Bei einer geraden Anzahl sind in jeder Runde alle Plätze belegt. Bei einer ungeraden Anzahl wird pro Runde automatisch ein Freilos verteilt, sodass alle einmal aussetzen. Das Ergebnis enthält nummerierte Runden, eindeutige Begegnungen, mögliche Freilose und Kennzahlen. Die Verarbeitung erfolgt lokal, deterministisch und wiederholbar: Dieselbe geordnete Liste liefert stets denselben Spielplan, ohne Netzwerkzugriff, Zufall oder veränderliche externe Daten.
Bereiten Sie eine eindeutige Teilnehmerliste vor
Beginnen Sie mit mindestens zwei Namen in der Reihenfolge, die Sie für den Anfangskreis verwenden möchten. Ein Eintrag kann ein Team, eine Person, eine Schulgruppe, einen Spieleverein oder einen anderen eigenständigen Wettbewerber bezeichnen. Leerzeichen am Anfang und Ende werden vor der Planung entfernt; jeder Name muss danach jedoch eine nicht leere, eindeutige Zeichenfolge sein.
Eindeutige Bezeichnungen verhindern Verwechslungen bei den Begegnungen. Falls zwei Teams Tiger heißen, ergänzen Sie Stadt, Liga, Nummer oder Initialen. Unterstützt werden bis zu 1000 Teilnehmende, wobei ein vollständiger Spielplan schnell wächst, weil jedes mögliche Paar vorkommen muss.
Zwei Teilnehmende ergeben ein Spiel, zehn ergeben 45. Die Eingabereihenfolge beeinflusst die Verteilung auf die Runden, aber weder die Paarungen noch deren Gesamtzahl. Behalten Sie dieselbe Reihenfolge bei, wenn Sie reproduzierbare Ergebnisse für Tests, Veröffentlichungen oder Folgesysteme benötigen.
Zu kurze Listen, leere oder doppelte Namen, andere Datentypen oder zu viele Einträge führen zu einem Fehler statt zu einem unvollständigen Spielplan.
Verstehen Sie das Ergebnis der Kreismethode
Die Kreismethode erzeugt einen ausgewogenen einfachen Rundenturnierplan ohne Suche, Raten oder Mischen. Bei gerader Anzahl bleibt eine Position fest, während alle anderen nach jeder Runde rotieren; gegenüberliegende Positionen werden gepaart. Eine gerade Liste mit n Teilnehmenden benötigt daher n minus 1 Runden mit jeweils n geteilt durch 2 Spielen.
Bei ungerader Anzahl fügt der Algorithmus intern einen leeren Platz hinzu. Wer diesem Platz gegenübersteht, erhält das Freilos, das in der Runde angegeben und nicht als Scheinspiel ausgegeben wird. Eine ungerade Liste benötigt deshalb n Runden, hat n minus 1 geteilt durch 2 echte Spiele pro Runde und gibt allen genau ein Freilos.
Jede Runde besitzt eine Nummer ab 1 und ein Array matches mit participant1 und participant2; ungerade Pläne enthalten zusätzlich bye. Jedes ungeordnete Paar erscheint genau einmal, und niemand bestreitet zwei Spiele in derselben Runde.
Veröffentlichen und erweitern Sie die Begegnungen
Nutzen Sie die Runden als Grundgerüst und ergänzen Sie anschließend Termine, Orte, Tische, Schiedsrichter, Übertragungen oder Spielfelder nach Ihren betrieblichen Vorgaben. Die Kreismethode löst die Paarungsaufgabe, wählt aber keine realen Termine und berücksichtigt weder Verfügbarkeit noch Reisen, Feiertage, Ruhezeiten, Heimrecht oder Übertragungswünsche. Diese Entscheidungen gehören in einen späteren Planungsschritt.
Für Hin- und Rückspiele erstellen Sie zunächst diesen einfachen Plan und erzeugen danach in Ihrem Ablauf eine zweite Hälfte mit umgekehrten Begegnungen. Senden Sie Namen in einem Webformular als Array und zeigen Sie jede nummerierte Runde separat an. Zeigen Sie bye bei ungerader Anzahl deutlich an, damit ein Freilos nicht wie eine fehlende Angabe wirkt.
Anwendungsfälle
Spielplan für eine örtliche Liga
Erzeugen Sie jede Ligabegegnung einmal und weisen Sie den nummerierten Runden danach Plätze, Termine und Schiedsrichter zu.
Gruppenplanung im E-Sport
Bauen Sie eine reproduzierbare Gruppenphase, in der jedes Team oder jede Person genau einmal gegen alle anderen antritt.
Rotationen in Schule und Verein
Bilden Sie ausgewogene Paarungen für Debatten, Trainingsspiele, gegenseitige Bewertungen oder ähnliche Aktivitäten.
Häufige Fragen
Was geschieht bei einer ungeraden Teilnehmerzahl?
Der Generator vergibt in jeder Runde ein Freilos. Über den gesamten Plan setzt jede Person genau einmal aus.
Treten wirklich alle gegeneinander an?
Ja. In diesem einfachen Rundenturnier erscheint jedes ungeordnete Paar genau einmal in den Begegnungen.
Dürfen zwei Teilnehmende denselben Namen haben?
Nein. Nach dem Entfernen äußerer Leerzeichen müssen Namen eindeutig sein, damit jede Begegnung klar bleibt.
Vergibt der Generator Termine oder Spielorte?
Nein. Er erzeugt nur Runden, Begegnungen und Freilose. Ergänzen Sie danach Termine, Orte und weitere Vorgaben.
Wie viele Runden und Partien hat mein Turnier?
Bei gerader Teilnehmerzahl gibt es eine Runde weniger als Teilnehmende und halb so viele Partien pro Runde. Vier Teams spielen sechs Partien in drei Runden, zehn Teams fünfundvierzig Partien in neun Runden.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/game/round-robin-schedule \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"participants":["Falcons","Owls","Ravens","Hawks"]}'const res = await fetch("https://api.kit.forhosting.com/game/round-robin-schedule", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"participants": [
"Falcons",
"Owls",
"Ravens",
"Hawks"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/game/round-robin-schedule",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"participants": [
"Falcons",
"Owls",
"Ravens",
"Hawks"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/game/round-robin-schedule", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"participants":["Falcons","Owls","Ravens","Hawks"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"participants":["Falcons","Owls","Ravens","Hawks"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/game/round-robin-schedule", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"participants": [
"Falcons",
"Owls",
"Ravens",
"Hawks"
]
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "game.round_robin_schedule",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Verstehen Sie das Ergebnis der Kreismethode
Die Antwort bewahrt die normalisierte Liste und enthält participant_count, round_count, match_count sowie das Array rounds.
Veröffentlichen und erweitern Sie die Begegnungen
Speichern Sie bei einer API-Integration die Kennzahlen zur Prüfung und durchlaufen Sie rounds und matches beim Anlegen von Ereignissen. Erfolgreiche API-Anfragen kosten $0.002 pro Element. Da weder Zeit, Zufall, Netzwerk noch externe Modelle verwendet werden, führt dieselbe Eingabe immer zum selben JSON und eignet sich für Tests und Neuaufbauten.
Technische Fragen
Wie viel kostet eine API-Anfrage?
Eine erfolgreiche Anfrage kostet $0.002 pro Element. Die deterministische Berechnung benötigt keinen externen Dienst.