Ich versuche hier eine Art Sammelkartenspiel zu schreiben, in gewisser Weise ähnelt es Magic The Gathering oder Yu-Gi-Oh! Kartenspiel.
Für diejenigen unter Ihnen, die nicht mit dem Spiel vertraut sind, gibt es im Grunde genommen eine spezielle Art von Karte (Zauberkarten / Fallenkarten / usw.), die Spezialeffekte haben, die die Spielregeln verbiegen können. Ich habe überhaupt keine Ahnung, wie die Logik dieser Karten implementiert werden soll. Ich habe eine Idee, die Daten der Karte mit einigen Flags zu speichern, die anzeigen, über welche Fähigkeiten sie verfügt, aber die Möglichkeiten sind sehr begrenzt (möglicherweise nur einige einfache Statistikänderungen).
Um Ihnen eine Vorstellung davon zu geben, welche Effekte diese Karten haben können, finden Sie hier ein Beispiel für die Zauberkarteneffekte, die im Yu-Gi-Oh! Kartenspiel:
- Belebe eine zerstörte Kreatur wieder
- Übernimm die Kontrolle über die Kreatur des Gegners
- Ändere die Werte der Kreatur basierend auf bestimmten Bedingungen (z. B. Anzahl der Kreaturen mit bestimmten Namen, die zerstört wurden).
- Beschwöre eine bestimmte Kreatur als Spezialbeschwörung, wenn einige Bedingungen erfüllt sind.
- Füge zwei oder mehr Kreaturen zu einer stärkeren Kreatur zusammen.
- Immunität gegen einige Effekte der Spezialkarten.
Konami hat mehrere Videospiele des Spiels entwickelt, darunter die KI und Tausende von Karten. Ich denke nicht, dass es tatsächlich möglich ist, die gesamte Datenbank fest zu codieren, oder?
Natürlich versuche ich nicht, so komplexe Spiele zu entwickeln, aber ich bin gespannt, wie sie diese umsetzen.
Es ist ziemlich vergeblich zu versuchen, all das nur mit Schaltern und Variablen zu integrieren. Sie müssten entweder Hardcode-Funktionen verwenden oder wahrscheinlich ein Skript, das Sie zur Laufzeit interpretieren. Sie würden dem Skript die erforderlichen Funktionen zum Überprüfen des Status des Brettes, der Decks und der Friedhöfe sowie die Funktionen zum Ausführen von Aktionen usw. zur Verfügung stellen. Das Skript ist dann nur eine einfache Zeichenfolge, die zusammen mit den anderen mit der Karte verknüpften Variablen gespeichert werden kann.
quelle
Ich plane auch Kartenspiele mit Web-Sprachen mit MySQL DB. Ich arbeite derzeit an einem sehr allgemeinen Setup, damit es für neue einzigartige Karten sehr flexibel bleibt. Zum Beispiel anstelle von:
es könnte leicht sein:
Wenn Sie dieses Konzept für alle Aktionen anwenden, werden die Klassen vereinfacht, und Sie können neue Karten erstellen, indem Sie einfach eine einzelne Zeile in Ihren Kartentisch einfügen.
Alle Optionen und Fähigkeiten werden in der Datenbank in dieser einzelnen Zeile definiert.
quelle