我正在开发一个用于为特定回合制策略游戏构建AI的API。我打算有一个Game
课程,它保存有关游戏的一般信息,包括地图的布局(地图每次都会有所不同,并且会有“地形”需要考虑) 。然后,我希望Game
类包含另一个Unit
类的列表。这是当前在游戏地图上的单位列表。然后我希望Unit
类有一个类似canMove
的函数,给定一个位置将检查单位是否可以移动到地图上的那个位置。所以我的情况是Unit
需要查看其父级(Game
)的地图信息。
实现此目标的一种方法是让Unit
记住其父Game
并在必要时引用其地图信息。这可行,但是,这似乎有点周期性,我不知道以这种方式编程似乎是最合适的。
另一种方法是,不是使用Unit.canMove
函数,而是具有Game.unitCanMove
函数。但是,从API的用户角度来看,这种方法似乎更复杂,对我来说似乎也不对。
一般来说,有更合适的方法吗?我只是过分担心这些方法吗?还有其他建议吗?非常感谢!