这是当前的依赖关系图(TheTXI带有手绘圆圈)
游戏有玩家和他们之间共享的单个棋盘。玩家还可以访问棋盘,以便能够从中添加/移动/移除单位。玩家可以访问其拥有的单位,无论是在棋盘上还是棋盘外(一个单位也知道它的所有者,但可能可以将其删除并进行查找)。板上有单位并且知道单位的位置。单位有能力(玩家可能也有)
我无法弄清楚的最大问题是单位的能力。他们应该能够影响游戏中的任何东西,治疗/伤害玩家/单位,重新定位棋盘上的东西,甚至可能是游戏本身(目前还没有必要,但它可能会出现)。
我怎么能拥有可以影响任何事物的能力,而他们却没有对所有事物的参考?我意识到每个能力都可以而且应该只引用它需要的东西,但是一个单位类有内置的能力,所以如果一个单位的能力影响董事会,它需要以某种方式从单位获得对董事会的引用?
我试图让设计尽可能灵活,因为规则还没有一成不变(我们正在创造一个游戏,而且还很早,所以它尝试一些东西,看看感觉如何,改变规则直到游戏感觉正确)
即使是否有棋盘/地图仍然悬而未决,所以单元应该与它们当前的解耦。没有全局状态或任何“上帝对象”(还),我想保持这种状态。
特别是在 Python 和 webapp 中,所以虽然问题本身与语言无关,但当然欢迎任何基于具有一流功能的动态语言的细节。