私はTic-Tac-Toeを実装するためにRx.Netを使用して、機能的反応プログラミングについてもっと学びたいと思っています。私が抱えている問題は、ゲームロジックに循環的な依存関係があるように見えることです。FRP(Rx.Net)の循環依存性をどのようにモデル化すればよいですか?
ストリーム(PlaceToken
,ResetGame
など)は、ユーザー入力ストリームから生成されます。
ゲーム(boardStates
)の現在の状態が初期状態から開始して、以前の状態にcommands
を適用することによって導出される:
var initialBoardState = new BoardState();
var boardStates = commands
.Scan(initialBoardState, (boardState, command) => command.Apply(boardState))
.DistinctUntilChanged();
しかし、commands
ストリームはboardStates
ストリームに依存しなければなりません。これは、有効なコマンドセットが現在の状態とともに変更されるためです。
たとえば、ユーザーが空のタイルをクリックしたときにのみ、コマンドを発行する必要がありますが、空のタイルのセットは現在の状態で定義されています。
要約すると、私はお互いに依存しているように見える2つの流れを持っています。機能対応プログラミングでこれを回避するにはどうすればよいですか?
本当に[mcve]が必要です。 – Enigmativity