我正在尝试用函数编程风格编写游戏,这意味着用纯粹的功能性,不可变数据结构来表示游戏状态。
最重要的数据结构之一是表示世界的3D网格,其中对象可以存储在任何[x,y,z]网格位置。我想要这个数据结构的属性是:
有关用于此目的的最佳数据结构的任何建议吗?
P.S。我知道这可能不是编写游戏的最实用的方式,我只是把它作为一种学习经验并用FP来扩展我的能力......
答案 0 :(得分:1)
我会尝试一个octtree。每个节点的边界坐标隐含在结构放置中,每个非终结节点保留8个子树但没有数据。因此,您可以“联合”以获得空间。
我认为不可变和无界(通常)是相互冲突的要求。
无论如何......要发展一个octtree你必须更换根。
应该满足您提出的其他要求。