私は、もう少し洗練されたUIを使用して作成した古いレベルシボードゲームを再実装しようとしています。インスピレーションを得るためにJensAlfkeのGeekGameBoardコードを見てきましたが、CALayersはUIを実装する方法のように見えます。
ただし、GeekGameBoardコードにはモデルとビューの明確な分離はありません。モデルはビューであるため、たとえば、AIプレーヤーのゲームツリー検索を実行するためにゲームの状態のコピーを作成することは困難です。ただし、2つの平行なグリッド(モデル用に1つ、ビュー用に1つ)を維持するための絶え間ない戦いを伴わない、モデルとビューの分離を可能にする構造の代替方法を思い付くことができないようです。 )同期しています。もちろん、これには独自の問題があります。
AIの検索に適したモデル構造と表示に適したビューの関係を最適に実装するにはどうすればよいですか?任意の提案/経験をいただければ幸いです。私は「良い答えはありません。できる限り対処してください」という答えを恐れていますが、驚かれる準備ができています。
ピーターの答えをありがとう。しかし、私はそれを完全に理解しているとは完全にはわかりません。最初のピースのセットを動かしたり、取り外したりした場合、これがどのように機能するかはわかりますが、人が新しいピースを置くとどうなりますか?これは次のように機能しますか?
- ユーザーがビューをクリックします。
- ビュークリックがボードの場所に変換され、コントローラーに通知されます。
- コントローラーは、継承国で新しいボードを作成します(適切な場合、つまり、それは合法的な動きでした)。
- ビューは、バインディングを介して新しいボードを取得し、既存のビュー/レイヤー階層を破棄して、現在の状態に置き換えます。
それは正しいですか?
PS:それがiPhone用かMac用かを特定できなかったことをお詫びします。私はiPhoneで動作するものに最も興味がありますが、最初にMacでうまく動作させることができれば、iPhoneで動作するようにソリューションを適応させることができると確信しています。(または新しい質問を投稿してください!)