我正在尝试制作一款战舰游戏(参见维基百科:战舰游戏)。
我有一个Player
类、一个Grid
类和一个Ship
类。
每个玩家都有一个网格,每个网格上都有一组战舰。
如何确定在玩家类还是网格类中设置舰船集合?
在游戏开始时,玩家必须将他们的舰船放置在网格上。我有一个方法来询问玩家在哪里放置他们的舰船。如何确定该方法应放在哪个类中?如果它在玩家类中,但是舰船集合在网格类中,那么我就必须从网格中获取舰船集合的引用。然后,我应该使用Grid::PlaceShip(Ship)还是Ship::Place(x,y)?
是否有一种方法论可以解决这个问题?我已经尝试了“类-责任-协作”(CRC)方法,但它并没有给我提供答案让我开始编码。我宁愿学会如何自己找到答案,而不是为这个特定的例子提供答案。
Game
概念?行为几乎从不发生在代表所有行为发起者的实体上,比如Player
,User
等。否则,所有行为将在这些实体上进行。也许game.placeInitialShipsFor(player, shipLocations)
? - plalx