找到开始和结束之间的移动

时间:2016-09-07 07:53:57

标签: java

目前我正在使用寻路游戏。我需要帮助来完成这个小游戏。

这是我的路径

S= starting point;

* = can move

# = blocker, you can’t move to it, must move around.

O=end point.

我需要从S到O,我需要从S' S'到了' O'。

    char[][] mygrid = {
    {'*', '*', '#', 'O', '*'},
    {'S', '#', '*', '*', '*'},
    {'*', '*', '*', '*', '*'}} ;

上面是我在java中的2D数组。我需要找到来自' S'到了' O'。

我是这个论坛的新人。请帮我这样做。

1 个答案:

答案 0 :(得分:2)

您可以使用1填充开头周围的所有未阻止的单元格。然后在每个2单元格周围填充1所有空(未阻塞且未启动)单元格。在每个周围 - 填写31除外,阻止并开始)。重复,直到最后一个数字周围没有空单元格,或者你到达终点。结果单元格的数字就是结果。

{'1', '*', '#', 'O', '*'}    {'1', '2', '#', 'O', '*'}    {'1', '2', '#', 'O', '*'}
{'S', '#', '*', '*', '*'}    {'S', '#', '*', '*', '*'}    {'S', '#', '*', '*', '*'}
{'1', '*', '*', '*', '*'}    {'1', '2', '*', '*', '*'}    {'1', '2', '3', '*', '*'}

{'1', '2', '#', 'O', '*'}    {'1', '2', '#', 'O', '*'}    {'1', '2', '#', 'O(6)', '*'}
{'S', '#', '4', '*', '*'}    {'S', '#', '4', '5', '*'}    {'S', '#', '4', '5', '6'}
{'1', '2', '3', '4', '*'}    {'1', '2', '3', '4', '5'}    {'1', '2', '3', '4', '5'}