Welche Entwurfsmuster können verwendet werden, um ein Regel- / Validierungssystem für ein Spiel wie Schach zu erstellen (dies ist nur ein einfaches Beispiel, das eigentliche Spiel benötigt schwierigere Regelsätze).
Ich habe mehrere Fragen auf dieser Website gelesen und weder eine schlüssige Antwort noch eine Antwort gefunden, die mich in die richtige Richtung weist.
Dieses System würde Folgendes erfordern:
- Jedes Objekt, auf das Regeln angewendet werden, sollte eine bestimmte Schnittstelle mit einer Methode implementieren, die der Ausgangspunkt für die Validierung ist
- Die Regel sollte in zwei Schritten angewendet werden: Zuerst muss sie validiert werden (kann A auf Feld D4 verschieben), wenn wahr, dann Methode A ausführen, wenn falsch, dann Methode B ausführen
- Jedes Objekt kann mehrere Regeln haben, die in einer bestimmten Reihenfolge angewendet werden müssen. Wenn Regel 1 beendet ist, sollte Regel 2 mit der Validierung usw. Beginnen
- Jede separate Regel (zum Beispiel: kann sich nur um ein Quadrat bewegen, kann sich nur diagonal bewegen usw.) muss in einer eigenen Klasse sein und muss wiederverwendbar und auf Objekte anwendbar sein, die Regeln benötigen.
- Beachten Sie, dass dies in einem Multiplayer-Spiel im Backend verwendet wird
- Beachten Sie, dass jede Regel mehrere Objekte benötigt, um ihre Gültigkeit zu testen. Normalerweise kann sich ein Bauer um 1 Feld bewegen. Jetzt wird das nächste Feld auf dem Spielbrett von einem Bauern Ihres Gegners gefüllt. Ergebnis: Ihr Bauer kann sich nicht bewegen. Der Bauer sollte die anderen Bauernpositionen oder das Spielbrett in seine Validierung einbeziehen.
Ein anderes Wort für diese Regeln wären Verhaltensgrenzen.