我正在编写机器人在房间的地板上移动的代码(被认为是地板的中心是原点(0,0))。机器人可以向任何方向(南,东,西,北)移动,触及地板上的不同顶点。我想知道它触及了多少个独特的顶点。 为此,我使用动态2D数组,记录每个存储顶点触摸。所以,像这样的逻辑......如果机器人接触到顶点,那么将在数组中检查该顶点。如果它在那里,我不会增加我的计数器。最后,我将获得机器人触及的所有独特顶点。
还有其他更好的方法可以找到机器人触摸的独特顶点。
感谢。
我在C#中编写代码。地板x轴(-1,00,000至1,00,000),y轴(-1,00,000至1,00,000)的大小
答案 0 :(得分:1)
这取决于地板的大小。如果它很小,那么你的方法可能是最好的。或者,如果地板大小太大以至于在内存中保留它的完整地图是不切实际的,那么使用顶点坐标作为键的关联数组(或C#中的等价物),以及一个简单的布尔值作为value,它只记录实际访问过的顶点。