人工智能——包围网格中的物体并计算其数目



有一个方形网格,其中有空块和填充块。一组连续的块组成一个对象。我的机器人可以找出它邻近的8块的状态(无论它们是否被填满)。它可以移动到相邻的位置,如果那里没有填充块。

我的代码适用于没有紧空间的情况(即,对象之间至少有2个空块)。但是,在两个块之间可以有一个空间的情况下,因为我的bot无法知道相邻的填充块是否属于相同或不同的对象,所以它无法包围对象。

有办法解决这个问题吗?

如何:当机器人包围一个对象时,它正在修改其内部地图,将对象的边界正方形从"未知"更改为"填充"。如果它发现自己与两个(或更多)已售出的街区相邻,它应该注意的是标记为"未知"的街区,它的邻居是"填充"的街区。

仍然有一些特殊的情况需要处理,很大程度上取决于一些设计选择——对角线邻居是否是"连续的",如果是,如何处理棋盘,是在找到下一个方块之前还是之后标记一个方块,等等。但是地图标记和可见块的组合应该为机器人提供足够的信息来保持其方向。

最新更新