ゲームフローを制御するゲームクラスと、ゲームクラスに接続されたプレーヤーを含むボードゲームを開発しています。ボードは単なるビジュアルクラスですが、動きの制御はすべてゲームによって行われます。
プレーヤーは、この種の動きが許可されていないことをプレイヤーに伝えるゲームにつながる誤った動きを試みる可能性があります(その背後にある理由を伝えます)。しかし、場合によっては、プレイヤーは動きを作ってそれが最良の動きではないことに気づくか、ボードをクリックするのを忘れるか、または別のアプローチを試してみたいだけです。
ゲームを保存して読み込むことができるので、移動前にすべてのデータを保存してロールバックを許可せずに、ユーザーが最後に自動保存されたターンを読み込むことができます。これは素晴らしいアプローチのように見えますが、ユーザーとのやり取りが含まれており、ボードの再描画はユーザーにとって退屈な作業になる可能性があります。この種のことをするより良い方法はありますか、それともアーキテクチャが本当に重要なのですか?
ゲームクラスとプレーヤークラスは複雑ではないため、クラスのクローンを作成することをお勧めします。または、ゲームデータをゲームルールから分離してより適切な方法を選択します。
更新:このゲームの仕組み:移動(簡単な移動)を行うメインボードと、その移動に反応するプレーヤーボードがメインボード上にあります。また、他のプレイヤーの動きや自分の動きに応じたリアクションムーブがあり、自分の番でないときにリアクションしてボード上で行動することもできます。すべての動きを元に戻すことはできないかもしれませんが、現在の答えの1つに浮かぶ元に戻す/やり直しのアイデアが気に入っています。