Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Anonymous

unregistriert

1

23.05.2004, 02:36

Erstellung eines Spielplans (Fußballmanager)

Bei meinen ersten Gehversuchen in Sachen Spieleprogrammierung (und eigentlich auch der OOP) stecke ich im moment etwas fest. Ich brauche ein Objekt Saison, das bei jedem erstellen eines entsprechenden Objektes einen Spielplan erstellt. Die Anzahl der Vereine wird dabei übergeben. Nun müssen die Spiele erstellt werden, was an sich kein Problem ist. Diese Spiele nun zu einem Spielplan zusammenzustellen, so daß jeder Spieltag die maximale Anzahl an Spielen hat und dennoch keine Mannschaft an einem Tag zweimal spielt ist schwieriger als ich dachte. Auch weiß ich nicht so genau wie ich die Spieltage am besten darstelle.. ein Objekt Spieltag, das ein Array mit Zeigern auf die entsprechenden Spiele darstellt oder anders...
Stecke also wie gesagt etwas fest. Wäre daher dankbar für Vorschläge.

Joker

2

23.05.2004, 03:42

Vieleicht stellst du deine Manschaftsklasse eine Terminklasse zur verfügung, in der die Tag eingetragen sind, an denen diese eine Manschaft spielt und gegen wen diese Manschaft spielt.

Deine Planer Objekt fragt dann von der Manschaft dieses Termin Objekt ab und schaut eben nach ob diese Manschaft an dem zu setzendem Tag schon spielt oder halt nicht.

Die Terminklasse kann auch gleich dafür sorgen das in einer Runde nicht zweimal gegen die selbe Manschaft spielt.
Wichtig! Ich übernehme keinerlei Verantwortung für eventl. Datenverlust oder Schäden am Rechner ;D

Anonymous

unregistriert

3

23.05.2004, 05:29

Terminklasse gut und schön. Aber das Problem ist weniger wie ich die Termine an denen die Mannschaft spielt abspeichere sondern wie ich sie überhaupt berechne.
Einfach zufälig zusammenstellen ist leicht gesagt aber gar nicht so einfach.
Beispiel mit 6 Mannschaften:

Erster Tag, Spiele:
1-2
3-4
5-6

Zweiter Tag, Spiele:
1,3
2,4
Übrige Mannschaften: 5,6.. diese haben aber in der Runde schon gespielt, also dürften die erstel beiden Spiele nicht an einem Spieltag stattfinden. Ich finde momentan keine Logik die solche Fehler vollkommen unabhängig von der Mannschaftsanzahl vermeidet.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

4

23.05.2004, 12:05

Also wenn ich für sowas keine logische Erklärung finde lasse ich das Programm solange zusammen stellen bis es passt.

Mind

Treue Seele

  • Private Nachricht senden

5

24.05.2004, 08:44

puh das ist wirklich nicht so einfach wie es sichs anhört .ich hab das mal vor 3 jahren oder so gemacht hab ständig wieder neu angefangen und was neues ausdenken müssen. das glaubt man erst wenn mans selber erst mal ausprobiert ;-). zum schluss hatte ich was vernüftiges aber wie ich das genau gemacht hab weiß ich nix mehr =)

also so richtig logisches hab ich net gefunden ich hab das soweit ich mich noch erinnere so gemacht hab eine liste gemacht von allen begegnungen also

die zahlen stellen die teams da

1-2
1-3
1-4
...
2-3
2-4
...

die liste kann man ganz leicht erstellen einfach von 1 bis max
dann von 2 bis max bis max-1 bis max dann hast alle begegnungen dann kannst noch zufällig die zahlen vertauschen z.b. per zufall ob er 2-4 vertauschen sollen somit das das heimteam net immer vorne steht ;-)

auf der liste hab ich mit zufallszahlen zugegriffen und versucht den ersten spielttag zu machen und zwar hab ich dann immer überprüft ob das team schon am spieltag vorhanden ist falls ja noch mal neu gesucht solange bis ich was gefunden habe.

ist klar da könnte es deadlocks geben sozusagen das es keine freien begegnungen geben die noch nicht gegeneinander gespielt haben.
da hab ich einfach nochmal ganz von neu angefangen nach ein paar retrys. in meinem lauf hat sich sowas aber auch recht selten ergeben.

so hat das damals bei mir funktioniert und zwar wunderbar bisschen unschön wegen den mögliches deadlocks die dann noch mal von neu anfangen, aber ne bessere möglichkeit ist mir damals nicht eingefallen und ich hab viel probiert ;-)

Werbeanzeige