Autor Beitrag
der Berliner
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 417

Win Xp Home
delphi 2005
BeitragVerfasst: Sa 07.01.06 12:26 
Hallo zusammen...
Ich Versuche eine SkatTurnierverwaltung zu programmieren

Jetzt habe ich ein Problem :D

Ich habe x Teilnehmer und y Tische
es werden eine bestimme Anzahl von Serien gespielt (Jede serie hat 48 Spiele....für die Auslosung nicht wichtig)
an jedem Tisch sitzen im güntigsten fall 4 Teilnehmer (Kann aber auch sein das nur 3 an einem Tisch sitzen.
Die Zufallsauslosung für die erste Serie ist kein Problem da noch kein Spieler mit einem anderen gespielt hat.

für die 2. Serie fehlt mir schon der Ansatz :(

Mit den Optionen "Gegenspieler wechseln" und "zufällige Auslosung"
sollte jetzt kein Spieler mit jemandem am Tisch sitzen mit dem er in der Ersten Serie schon gespielt hat.

Grübel :?:

bei max. 24 Serien nimmt die Tauscherei doch wahnsinnge ausmaße an....kontrolle der Spieler(Vielleicht 100) und Serien(max.24).
kennt jemand nen Algorithmus mit dem sowas zu bewerkstelligen ist ???

Ein Dankbarer Berliner :D
Horst_H
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1654
Erhaltene Danke: 244

WIN10,PuppyLinux
FreePascal,Lazarus
BeitragVerfasst: Sa 07.01.06 13:12 
Hallo,

die Bedingung , das in der naechsten Runde keiner mit einem gleichen spielt, kannst Du nicht beliebig lang aufrecht erhalten, da irgendwann einmal ein Spieler z.B. nur noch nicht mit einem nicht gespielt hat.
Im Ansatz ist es doch so, dasz fuer jeden Spieler eine Menge(oder Liste) von Mitspielern vorhanden ist.
Alle Spieler(Kugeln) kommen in eine Urne.
Y-mal wird:
ein Spieler M ausgewaehlt
dann zusaetzlich 2 oder 3 Spieler, die noch nicht (mit M oder einem der Mitspieler) gespielt haben.
Diese Spieler werden aus der Urne entfernt.

Gruss Horst


Zuletzt bearbeitet von Horst_H am Sa 07.01.06 14:25, insgesamt 1-mal bearbeitet
der Berliner Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 417

Win Xp Home
delphi 2005
BeitragVerfasst: Sa 07.01.06 13:27 
Hallo Horst...
Danke erstmal für die schnelle Antwort.
Also das Prinzip habe ich verstanden.

genug zu tun gibt es noch, später soll dann noch, Raucher/Nichtraucher trennen,
Vereinsspieler trennen, und vieles mehr berücksichtigt werden :? :?

Gruß Andre
Aristoteles
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 69

SuSE Linux 10.0
Lazarus 0.9; Delphi7 PE
BeitragVerfasst: Sa 07.01.06 21:10 
Hallo Berliner!

Spontan würde ich für dein Problem folgendes vorschlagen:
1. Die Aufteilung in der ersten Serie geschieht durch den Zufallsgenerator.
2. In der zweiten Serie nimmt man von verschiedenen Tischen der Reihe nach jeweils einen Spieler für den Tisch 1 der zweiten Serie, für Tisch 2 der zweiten Serie u.s.w., bis alle Spieler an den Tischen erster Serie verteilt sind.
Durch diese Auswahl sollte garantiert sein, dass kein Spieler in der zweiten Serie mit den gleichen Spieler aus erster Serie spielt.
Der Computer muss die SPielerzusammensetzungen speichern.
3. Im dritten Schritt wird genauso wie unter 2. fortgefahren, nur, dass man hier mit Hilfe der gespeicherten Spielerzusammensetzung aufpassen muss, dass nicht doch die gleichen Spieler miteinander spielen.

Gruß, Aristoteles
der Berliner Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 417

Win Xp Home
delphi 2005
BeitragVerfasst: So 08.01.06 00:17 
Danke Aristoteles...

Also das werde ich jetzt mal als Ansatz benutzen hört sich gut an...
wenn mir nen Algorithmuss Eingefallen ist :idea:
werde ich den hier mal posten.

gruß der Berliner
der Berliner Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 417

Win Xp Home
delphi 2005
BeitragVerfasst: Sa 14.01.06 09:48 
Titel: Lösung gefunden
Hallo zusammen

habe eine für mich akzeptable Lösung gefunden
In einem anderen Thema wurde ein Lottogenerator vorgestellt
den ich auf meine Bedürfnisse umgebastel habe.

Thanks all
Gruß Andre
Grishnak
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 221

Windows XP Home
Delphi 7 PE, Delphi 2005 PE
BeitragVerfasst: Sa 14.01.06 10:27 
Ich würde für jeden Spieler eine Liste anlegen, die die noch möglichen Mitspieler beinhaltet (also diejenigen, mit denen man noch nicht gespielt hat). Sobald nun Spieler A mit Spieler B an einen Tisch gesetzt wird, wird Spieler B aus der Liste der möglichen Mitspieler von Spieler A gelöscht und umgekehrt (Spieler A aus der Liste der möglichen Mitspieler von Spieler B). So sollte es auch möglich sein, Nebenbedingungen (nur Raucher/Vereinsmitglieder/Frauen) an einem Tisch) zu berücksichtigen.

_________________
Mach' etwas idiotensicher und irgendjemand erfindet einen besseren Idioten!
der Berliner Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 417

Win Xp Home
delphi 2005
BeitragVerfasst: Sa 14.01.06 10:49 
user profile iconGrishnak hat folgendes geschrieben:
Ich würde für jeden Spieler eine Liste anlegen, die die noch möglichen Mitspieler beinhaltet (also diejenigen, mit denen man noch nicht gespielt hat). Sobald nun Spieler A mit Spieler B an einen Tisch gesetzt wird, wird Spieler B aus der Liste der möglichen Mitspieler von Spieler A gelöscht und umgekehrt (Spieler A aus der Liste der möglichen Mitspieler von Spieler B). So sollte es auch möglich sein, Nebenbedingungen (nur Raucher/Vereinsmitglieder/Frauen) an einem Tisch) zu berücksichtigen.


Genau so Habe ich es gemacht.

gruß Andre
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Sa 14.01.06 12:01 
Und das geht immer auf? Ich hatte mich vor mittlerweile ca. 25 Jahren mal mit Spielplänen befasst und bin zu dem Ergebnis gekommen, das es nur für bestimmte Anzahlen von Mannschaften/Spielern ohne Probleme (sprich Heuristik bzw. Backtracking) funktioniert. Zeig mir doch mal Dein Verfahren, oder skizziere es zumindest.

_________________
Na denn, dann. Bis dann, denn.
der Berliner Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 417

Win Xp Home
delphi 2005
BeitragVerfasst: Sa 14.01.06 12:08 
Titel: Irgenwann beisst es sich
user profile iconalzaimar hat folgendes geschrieben:
Und das geht immer auf? Ich hatte mich vor mittlerweile ca. 25 Jahren mal mit Spielplänen befasst und bin zu dem Ergebnis gekommen, das es nur für bestimmte Anzahlen von Mannschaften/Spielern ohne Probleme (sprich Heuristik bzw. Backtracking) funktioniert. Zeig mir doch mal Dein Verfahren, oder skizziere es zumindest.


Hallo Alzaimar

Nee...irgenwann hat jeder schon mal gegen einen anderen gespielt es geht also nich bis ins unendliche auf
aber die Procedure soll das solange versuchen wie es möglich ist..is noch nich ganz fertig.

gruß Andre