私はスカラのスキルを養成する方法としてブラックジャックゲームをしたいと思います。機能的にはval属性だけを使用したいと思います。(機能的な)Scalaを使ったブラックジャックテーブルのモデル化
私は自分自身にカードのリストを含む靴を含むテーブルを持っています。 私はカードを扱うと、カードがなくても新しいカードリストを作り直す必要があります。変更できないので、靴が変更できないので、新しいカードリストで新しい靴を再構築する必要があります。しかし、テーブル自体が変化しないので、新しい靴でテーブルを再構築する必要があります。 私はこれが間違っていると感じています。テーブル自体はカジノなどの一部であるゲームフロアの一部です。カードが処理されるたびに、またはベットが行われるたびに、プレーヤーが参加または退室するたびに、すべてを再構築する必要がありますか?
誰かがこれを設計する最良の方法についていくつかの洞察を与えることができますか?
オブジェクトの代わりにデータベースにゲームの状態を保存する必要がありますか?
レンズ(かなり便利)を見ると、それは私が持っているのと同じ問題です、つまり、私は 'val cardListLens = lens [Casino] .cardRoom.table.shoeのようなレンズを作ったとしましょう。私はそれを使用してカードリストを更新すると、私はフロントエンドでデータを表示するために使用する新しいカジノを手に入れましたが、これはすべてを再構築しなければならないということです。 (私の場合ではないかもしれませんが、より大きなプロジェクトで) – Bentaye
あなたが使用するデータ構造とその特性に大きく依存します。たとえば、単独リンクされたリストでは、項目を追加するときに新しいオブジェクトを割り当てる必要はありません。Functional Data Structuresの周りにはいくつかの文献がありますが、現時点では便利なものはありません –