Hi Community,
Ich versuche mein Wissen in Java zu erweitern und vielleicht irgendwann passable Spiele erzeugen zu können.
Aktuell plane ich zu Übungszwecken ein Trading Card Game (ums genauer zu sagen eine Version von Duel Masters, das vor ein paar Jahren eingestellt wurde). Habs vorher auch schonmal mit einem One Piece TCG versucht, bin da aber auch an den Sonderregeln gescheitert. Und nachdem ich jetzt auch keine Möglichkeit habe an Bilder und Regeln der Karten zu kommen, musste ich das Projekt jetzt einstellen
.
Die Grundspielzüge und eine Gui zu programmieren ist ja kein sonderlich großes Problem (für den Notfall tuts zu Beginn ja auch eine Oberfläche mit Listen).
Das größte Planungsproblem sind die Sonderregeln der einzelnen Karten. Jede Karte kann mehere Sonderregeln haben. Jede Sonderregel hat Bedingungen in welchem Moment die Sonderregel aktiviert wird oder welche Zusatzvoraussetzungen erfüllt werden müssen. Außerdem wirken manche Sonderregeln nur für die eigene Karte, manche für mehere, manche betreffen beide Spieler, manche nur den gegnerischen etc.
Ich hab jetzt schon mehrere Arten gesehen, wie es zwar gehen könnte, weiß aber nicht welche die beste ist.
Einmal muss ich bei jedem Sonderregelobjekt zumindest mal festlegen, wann die Sonderregel der Karte eintritt.
Einmal die Möglichkeit, dass in einer Klasse Sonderrgeln alle Sonderregeln des Spiels Programmiert sind und diese Regeln über eine einelne Methode aufgerufen dann für die jeweilige Karte aufgerufen werden (switch Case zum Beispiel) Problem hierbei ist, dass die Methode zur automatischen Auswahl sehr viele Parameter haben müsste von denen manche dann in einigen Fällen keine Werte haben)
Eine andere Möglichkeit wäre die entsprechenden Sonderregeln über ein Objekt vom Typ Method in die Regeln der Karte zu integrieren. Ich weiß aber auch nicht, ob das die beste Möglichkeit ist. Dort muss ja aber dann auch sehr viel eingegeben werden und ob so alle Sonderregeln im richtigen Moment abgeprüft werden, kann ich gerade auch nicht sagen.
Teilweise könnte man zumindest mit einer Reihe Variablen vom Typ Boolean allgemeine Sonderregeln angeben. Nur gibt es aber auch Regeln die Regeln von anderen Karten verändern und nicht einfach über eine Boolvariable abgefragt werden können.
Kann mir hier jemand die beste Möglichkeit nennen, wie man die Sonderregeln einbinden könnte
Gruß
Erik "EMMachine"