char[][] matrix = {
{'#','#','#','#','#','#','#','#','E','#',},
{'#','.','#','.','#','#','.','#','.','#',},
{'#','.','#','.','#','#','.','#','.','#',},
{'#','.','#','.','.','.','.','.','.','#',},
{'#','.','.','.','.','#','.','#','#','#',},
{'#','.','#','#','.','#','.','#','#','#',},
{'#','.','#','#','.','.','.','.','.','#',},
{'#','.','#','#','.','#','#','#','.','#',},
{'#','.','.','.','.','.','.','.','.','#',},
{'#','#','#','#','S','.','#','#','.','#',},
{'#','#','#','#','#','#','#','#','#','#',},};假设一个人PERSON在上述矩阵迷宫中,要从S处出发到达E,其中,"#"表示墙,不可以通过,"."表示道路可以通过,怎么样可以模拟PERSON从S寻找出口E的过程,PERSON主要是需要能具有判断道路的简单AI,请问如何JAVA实现。(特别注意,不是寻找最短,或最优路径)。谢谢,望指教。

解决方案 »

  1.   

    网上搜一下A*寻路算法,我记得好像有java版本的在网上
      

  2.   

    出口E的坐标为(0,9)出发点S的坐标为(9,4),那么我们要将S的坐标从9变为0,4变为9。首先对S的9进行自减工作即往上走,如遇到#,则对4进行自加,即往右走。如果两个都走不通,则往下走,下不通则往左,在往下或左行走的过程中,要将上一步的坐标的地点设置为#,即不可以再往回走,以免出现反复走的情况。
      

  3.   

    关于zdjray(PubSoft)兄的观点,我也有考虑过,通过给4个方向的移动设置优先级,如果遇到墙的话,优先级就会降低,然后了,移动方向就是动态变化的了,但是似乎,不太可行。还是在特定的情况下,出现反复的情况。不过还是十分感谢zdjray(PubSoft)兄的积极回应。还有以上楼层给出的解决方法,我会仔细考虑的,感谢。