Ich entwickle ein Brettspiel mit einer Spielklasse, die den Spielfluss steuert, und Spielern, die der Spielklasse zugeordnet sind. Das Brett ist nur eine visuelle Klasse, aber die Kontrolle über die Bewegungen liegt ganz beim Spiel.
Der Spieler kann versuchen, falsche Bewegungen auszuführen, die dazu führen, dass das Spiel dem Spieler mitteilt, dass diese Art von Bewegung nicht zulässig ist (und den Grund dafür angeben). In einigen Fällen kann der Spieler jedoch einfach eine Bewegung ausführen und erkennen, dass dies nicht die beste Bewegung ist, oder einfach das Klicken auf das Brett verpassen oder einfach einen anderen Ansatz ausprobieren.
Das Spiel kann gespeichert und geladen werden, sodass bei einem Ansatz alle Daten vor der Bewegung gespeichert werden können und kein Rollback zulässig ist, der Benutzer jedoch die letzte automatisch gespeicherte Runde laden kann. Dies sieht nach einem netten Ansatz aus, beinhaltet jedoch eine Benutzerinteraktion, und das Neuzeichnen des Boards kann für den Benutzer mühsam sein. Gibt es einen besseren Weg, um solche Dinge zu tun, oder ist die Architektur in dieser Sache wirklich wichtig?
Die Spielklasse und die Spielerklasse sind nicht kompliziert, daher ist es eine gute Idee, die Klassen zu klonen, oder die Spieldaten von den Spielregeln zu trennen, um einen besseren Ansatz zu finden, oder das Speichern / Laden (auch automatisch bei einem angeforderten Rollback) ist in Ordnung?
UPDATE: Wie dieses Spiel funktioniert: Es hat ein Hauptbrett, auf dem Sie Züge machen (einfache Züge), und ein Spielerbrett, das auf die Züge reagiert, macht auf dem Hauptbrett. Es hat auch Reaktionsbewegungen entsprechend den Bewegungen anderer Spieler und auf sich selbst. Sie können auch reagieren, wenn Sie nicht an der Reihe sind und Dinge auf Ihrem Brett tun. Vielleicht kann ich nicht jede Bewegung rückgängig machen, aber ich mag die Idee des Rückgängigmachens / Wiederherstellens, die in einer der aktuellen Antworten schwebt.