OOP组织与地图

时间:2014-09-30 22:59:39

标签: oop

我有一个关于组织代码的问题,同时还显示基本的OOP原则。我的任务是实现一个带有机器人的世界(MxN网格),这些机器人可以获得以字符串形式移动的指令。他们也有一个初始的起始位置和方向。说明一次完成一个机器人。

我创建了两个类,Robot和Map,但是当我完成编码后,我意识到Map并没有真正做任何事情,当我想在Robot类中测试函数时(确保坐标在边界内等等)。 )似乎Map类比任何东西都更麻烦。但是,我觉得展示事物分离很重要。在这种情况下,有必要有两个类吗?

1 个答案:

答案 0 :(得分:1)

我认为确实如此。

地图看起来像是机器人的集合。这就像机器人流入和流出的欧拉控制量。它跟踪空间和时间中可接受位置的空间。它维护规则(例如“一次只有一个正方形的机器人”)。感觉类似于Chess或Checkers游戏的棋盘。

问题似乎在于你无法弄清楚Map的有意义的状态和行为是什么。

我可以看到机器人如何与地图互动:它会提出一个运动,这是一个方向和幅度的矢量,并询问地图,看它是否与机器人的任何运动规则相冲突。这些是地图所有,而不是机器人。不同的地图可能允许不同的运动规则(例如,没有对角线移动,一次一个方格等)