Hallo Pudding,
also auf jeden fall wollte ich eine klasse spieler mit den eigenschaften machen ...
Das klingt einleuchtend, weil es das zugrunde liegende Problem direkt in den code überträgt. So wie du das jetzt beschrieben hast, war's das aber wohl auch schon. Ich würde mir das jetzt so vorstellen, dass irgend ein Container die "lebenden" Spieler enthält und eine Schleife über den Elementen dieses Containers iteriert. Für jeden Spieler wird dann eine relatif einfache Operation ausgeführt (Kampf mit zufälligem Gegner). Dieses Schleife wird von einer zweiten Schleife ummantelt, die zuerst die innere Schleife mit den Kämpfen ausführt, anschließend die Spieler mit Energie <= 0 eliminiert und dann die Angriffstärken der verbleibenden Spieler berechnet (wie auch immer das geht). Die äußere Schleife wird verlassen, sobald maximal ein Spieler übrig bleibt.
Welche weiteren Klassen du nun brauchst, hängt davon ab, was dein Programm konkret machen soll. Wenn du beispielsweise die einzelnen Kämpfe grafisch darstellen willst, wirst du diese Grafik sicher irgendwie auslagern wollen. Ob du dafür weitere Klassen verwendest oder die Daten in die vorhandene Spieler-Klasse reinpackst ist ein Implementierungsdetail. Eventuell Brauchst du weitere Klassen für Gegenstände wie Kettensägen oder Billardkugeln ;-)
Vielleicht willst du den Ablauf der Kämpfe protokollieren. Dann wäre eine Kampf-Klasse sinnvoll, die die wichtigsten Informationen zu einem Kampf enthält. Das wäre dann aber wohl eher eine einfache Datenstruktur ohne Methoden ("struct" in C++, "record" in ObjectPascal). Dafür bräuchtest du dann wieder einen Container, der alle Kämpfe in einer festen Reihenfolge enthält (wahrscheinlich so etwas wie eine linked-list bzw. queue).
Oder du möchtest verschiedene Schläge zulassen. Jeder Schlag könnte aus einer Stärke und einer Richtung bestehen. (Ich mag solche Spiele eigentlich nicht, aber ich muss zugeben, dass es interessant ist, über verschiedene Implementierungsmöglichkeiten nachzudenken.)
ne klasse ligaspiel, die abgeleitet wird von spielern ...
Wozu? Willst du mehrere Ligaspiele ablaufen lassen und dann vergleichen können? Dann fände ich es aber nicht sinnvoll, diese Klasse von Spieler abzuleiten. Ich würde eher an irgend etwas denken, dass einen Container aller Spieler und die Liste der Kämpfe enthält.
Vererbungshierarchien sehe ich hier im Moment höchstens, wenn es verschiedene Typen von Spielern geben soll - z.B. Menschen, Tiere und Roboter. Dann könnten diese Spielertypen eigene Methoden enthalten, die den Verlust von Energie berechnen, wenn auf sie eingeschlagen wurde.
War jetzt viel wirres Zeug auf einmal, aber ich weiß eben nicht genau, was dein Programm wirklich machen soll. Ich bin ein Fan von guten objektorientierten Programmierstielen, aber für das grundlegende Spiel, so wie du es beschrieben hast, würde ich persönlich nicht unnötig viele Klassen einführen.
Viel Erfolg,
Robert