私はYesochでパチス的なボードゲームを実装しようとしています。現在、HaskellのコードはAjax経由でボードの現在の状態を受け取り、それを使って(例えば、新しいピースがボードに入るかどうか、ゲームが終了するかどうかなどを計算して)、クライアントが使用できるJSONとして返しますビューを更新します。Yesodの状態を維持する
実際、私はクライアントに状態を保ち、Haskellには変更がないという問題を回避しています。他の言語では、おそらく変数gameState
を宣言し、サーバ側のコードを変更してクライアントに返しますが、Haskellでは...私は完全に何かが不足している可能性があります。私はそれがハスケルになると経験から遠いです。
私は可能な限りクライアントサイドでやりたいと思っています。私はHaskell: Yesod and stateを見つけましたが、実際にそれを理解できませんでした。したがって、問題は残っています。私のソリューションよりもゲームの状態を処理するための方法はありますか?
はい、これを行うより良い方法があります。たとえば、データベース内のすべてのクライアント状態を維持し、クライアント要求時にクライアント状態を取得/変更することができます(getにはIDのみが必要で、ID +チェンジセットをポストする)。 ['persistent'](https://www.yesodweb.com/book/persistent)は、' Yesod'でこれを行うための「デフォルト」の方法ですが、自分のソリューションをロールしたり、必要に応じて何かを使うことができます。 – Cubic