カードゲームフレームワークの開発
やや汎用的なカードゲームフレームワークを構築するために、どのようなデザインパターンとアイデアを使用できますか? これは、人気のスティーブジャクソンゲーム「マンチキン」のクローンを作ろうとしたためです。そのゲームの性質上、カードの機能を多くコード化する必要がなくなったため、開発は無秩序で行き詰まりました。私は何か一般的なものを構築したかったのですが、多くのオーバーライドされた関数と動作を決定するためのswitchステートメントを含む多くのクラスになってしまいました。 私は、デザインの経験が豊富な人が、汎用のカードゲームフレームワークを構築するこのようなタスク、または少なくとも拡張可能な何かを処理するのに何が必要かを知りました。または、マンチキンのようなカードゲームのシミュレーションを作成したい場合は、特定のフレームワークを作成することにこだわっています。 C#を使用したいと思います。 編集 最終的に達成したいことのいくつかを明確にしたいと思います。基本的にカスタム機能を備えたフェーズを実装できるフレームワークが必要です(フェーズ1:カードを引く、フェーズ2:アップキープルールを適用する、フェーズ3:カードを再生する、フェーズ4:解決するなど)。 その場合、カードとフェーズの両方に結び付けられるルールセットを定義するのが賢明だと思います。 次に、カードが定義され、ルールに関連付けられていると想定します。たとえば、ルールは「維持フェーズの間、トークンを1つ失う」とします。ただし、プレイヤーが持っているカードは「維持フェーズ中にトークンを失わないでください」を提供するかもしれません。したがって、これを結び付けることができればフレームワークの根幹の範囲内にあるとよいでしょう。 これも私のリーグからはずれていると思います。