vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: Round Robin Spielpaarungen erstellen 
Autor: SL
Datum: 19.10.07 09:55

Rundensystem - Jeder gegen Jeden
Rundensystem ist nicht nur allgemein die Bezeichnung dafür, daß jeder gegen jeden spielt, sondern auch ein spezielleres System, nach dem zum Beispiel die Ligaspiele ausgetragen werden. Ziel ist es dabei nicht nur, daß jeder gegen jeden spielt, sondern auch, daß möglichst viele Spiele gleichzeitig ausgetragen werden, daß man möglichst abwechselnd die schwarzen und die weißen Steine führt, daß die Turniertabelle übersichtlich ist und daß es für verschiedene Anzahlen von Teilnehmern anwendbar ist. In einem doppelten Rundenturnier spielt man im Gegensatz zum einfachen gegen jeden Gegner zweimal (mit vertauschten Farben). Es folgt nun etwas Mathematik, aber möglichst allgemeinverständlich erklärt:
Jeder der Teilnehmer (Mannschaft oder Spieler) erhält eine Startnummer. TAZ sei die Teilnehmeranzahl, Nr eine Startnummer. Jeder Teilnehmer spielt gegen alle anderen (TAZ-1). Da an einem Spiel zwei Teilnehmer beteiligt sind, ergibt sich als Anzahl der Spiele insgesamt TAZ*(TAZ-1)/2 (Bei 10 Teilnehmern also 10*9/2=45 Spiele). In einer Runde kommen halb so viele Paarungen zustande, wie es Teilnehmer gibt - bei ungerader Anzahl muß einer aussetzen, also TAZ/2 oder (TAZ-1)/2 - je nachdem, welche der beiden Zahlen gerade ist (bei 10 Teilnehmern 10/2=5 Paarungen). Daraus ergibt sich für die Anzahl der Runden (RAZ):
RAZ=(TAZ*(TAZ-1)/2) / TAZ/2 = TAZ-1 bzw.
RAZ=(TAZ*(TAZ-1)/2) / (TAZ-1)/2 = TAZ

RAZ ist also TAZ wenn TAZ ungerade ist, ansonsten TAZ-1. Dies waren an sich nur Vorbetrachtungen. Das Problem besteht ja meist darin, festzustellen, wer in welcher Runde gegen wen mit welcher Farbe spielt. Dazu benötige ich mehr Variablen. R sei die betreffende Runde, Gr der Gegner von Nr in der Runde R. In der ersten Runde ist festgelegt, daß der Teilnehmer mit der kleinsten Startnummer gegen den mit der größten spielt, der mit der zweitkleinsten gegen den mit der zweitgrößten usw., wobei die Startnummer 1 bei ungerader Teilnehmeranzahl spielfrei ist. Mathematisch ausgedrückt: G1 = RAZ+2-Nr

In jeder folgenden Runde spielt man gegen den Gegner, dessen Startnummer um eins höher ist, als die des Gegners der vorigen Runde, wobei nach dem Gegner mit der Startnummer Nr=RAZ die Startnummer 1 folgt. Für alle, die es genau wissen wollen: Gr = (R-Nr) mod RAZ +1 (mod RAZ bewirkt in diesem Fall, daß nach RAZ die 1 kommt)

Ergibt sich, daß Gr=Nr, man also gegen sich selbst spielen müßte, setzt man aus oder spielt bei gerader Teilnehmeranzahl gegen den Teilnehmer mit der höchsten Startnummer. Führt man eine normale Turniertabelle, füllt sich also in der ersten Runde die Diagonale von rechts oben nach links unten. Dann geht man in jeder Zeile waagerecht Feld für Feld weiter; kommt man an den hinteren Rand, fängt man vorn wieder an. Führt man aus irgendwelchen Gründen keine solche Tabelle, gibt es auch ein System, sich eine Paarungstabelle zu basteln:

1. Man schreibt halb so viele Ziffern in aufsteigender Reihenfolge nebeneinander, wie es Teilnehmer gibt.
1 2 3 4 5

Dann macht man in der nächsten Zeile bis RAZ weiter.
1 2 3 4 5
6 7 8 9

Man fängt wieder mit der eins an und führt so fort, bis man so viele Zeilen hat, wie es Runden gibt (RAZ).
1 2 3 4 5
6 7 8 9 1
2 3 4 5 6
7 8 9 1 2
3 4 5 6 7
8 9 1 2 3
4 5 6 7 8
9 1 2 3 4
5 6 7 8 9

2.+3. Man zieht neben den ersten Zahlen einer Zeile einen Trennstrich und beginnt die selbe Prozedur wie unter erstens von hinten, wobei man die neuen Zahlen jeweils rechts neben die alten schreibt und nichts neben die Ziffern links vom Trennstrich.
1 | 2 9 3 8 4 7 5 6
6 | 7 5 8 4 9 3 1 2
2 | 3 1 4 9 5 8 6 7
7 | 8 6 9 5 1 4 2 3
3 | 4 2 5 1 6 9 7 8
8 | 9 7 1 6 2 5 3 4
4 | 5 3 6 2 7 1 8 9
9 | 1 8 2 7 3 6 4 5
5 | 6 4 7 3 8 2 9 1

4. Als letztes schreibt man links vom Trennstrich die höchste Startnummer abwechseln rechts und links der vorhandenen Ziffern rechts beginnend für den Fall, daß die Teilnehmeranzahl gerade ist. Ansonsten setzt der Teilnehmer mit der Startnummer links vom Trennstrich in der entsprechenden Runde aus.
1 (10) | 2 9 3 8 4 7 5 6
(10) 6 | 7 5 8 4 9 3 1 2
2 (10) | 3 1 4 9 5 8 6 7
(10) 7 | 8 6 9 5 1 4 2 3
3 (10) | 4 2 5 1 6 9 7 8
(10) 8 | 9 7 1 6 2 5 3 4
4 (10) | 5 3 6 2 7 1 8 9
(10) 9 | 1 8 2 7 3 6 4 5
5 (10) | 6 4 7 3 8 2 9 1

Je zwei nebeneinander stehende Zahlen ergeben eine Paarung, wobei der linksstehende Weiß hat. Hat man sich von alledem nur die Formel gemerkt, wer gegen wen wann spielt, braucht man noch folgende Regel zur Farbbestimmung:
Ist die Summe der Startnummern der beiden Gegner ungerade, so hat der Spieler mit der kleineren Startnummer Weiß, ansonsten Schwarz. Für den Spieler mit der höchsten Startnummer bei gerader Teilnehmeranzahl gilt allerdings, daß er gegen die Teilnehmer mit Startnummern bis halb so groß wie seine eigene Schwarz hat, gegen die anderen Weiß.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Round Robin Spielpaarungen erstellen3.899Darth Sonic18.10.07 23:46
Re: Round Robin Spielpaarungen erstellen2.608me3683519.10.07 06:37
Re: Round Robin Spielpaarungen erstellen2.356Darth Sonic19.10.07 19:40
Re: Round Robin Spielpaarungen erstellen2.840SL19.10.07 09:55

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel