关于AI的小问题

nosiop 2007-08-09 10:27:57
char[][] matrix = {
{'#','#','#','#','#','#','#','#','E','#',},
{'#','.','#','.','#','#','.','#','.','#',},
{'#','.','#','.','#','#','.','#','.','#',},
{'#','.','#','.','.','.','.','.','.','#',},
{'#','.','.','.','.','#','.','#','#','#',},
{'#','.','#','#','.','#','.','#','#','#',},
{'#','.','#','#','.','.','.','.','.','#',},
{'#','.','#','#','.','#','#','#','.','#',},
{'#','.','.','.','.','.','.','.','.','#',},
{'#','#','#','#','S','.','#','#','.','#',},
{'#','#','#','#','#','#','#','#','#','#',},};

假设一个人PERSON在上述矩阵迷宫中,要从S处出发到达E,其中,"#"表示墙,不可以通过,"."表示道路可以通过,怎么样可以模拟PERSON从S寻找出口E的过程,PERSON主要是需要能具有判断道路的简单AI,请问如何JAVA实现。(特别注意,不是寻找最短,或最优路径)。谢谢,望指教。
...全文
145 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
nosiop 2007-08-09
  • 打赏
  • 举报
回复
不好意思,二楼所诉的做法是有问题的,在坐标(1,1),(1,2)时地方,会出现反复行走的情况,导致死循环,这样的做法正是由于没有AI进行正确道路的判断所造成的。
zdjray 2007-08-09
  • 打赏
  • 举报
回复
沿着墙走
往下不行(比如是#)就往右,往右不行就往上,如此类推
次序
下右上左
这样就可以找到了
nosiop 2007-08-09
  • 打赏
  • 举报
回复
关于zdjray(PubSoft)兄的观点,我也有考虑过,通过给4个方向的移动设置优先级,如果遇到墙的话,优先级就会降低,然后了,移动方向就是动态变化的了,但是似乎,不太可行。还是在特定的情况下,出现反复的情况。不过还是十分感谢zdjray(PubSoft)兄的积极回应。还有以上楼层给出的解决方法,我会仔细考虑的,感谢。
zdjray 2007-08-09
  • 打赏
  • 举报
回复
楼主你的参考系与我的不同

我说的上下左右是相对上次行走的方向而言的,这个是动态变化的
gaohang_dust 2007-08-09
  • 打赏
  • 举报
回复
出口E的坐标为(0,9)出发点S的坐标为(9,4),那么我们要将S的坐标从9变为0,4变为9。首先对S的9进行自减工作即往上走,如遇到#,则对4进行自加,即往右走。如果两个都走不通,则往下走,下不通则往左,在往下或左行走的过程中,要将上一步的坐标的地点设置为#,即不可以再往回走,以免出现反复走的情况。
hdhmail2000 2007-08-09
  • 打赏
  • 举报
回复
回溯算法就可以把?找本数据结构看就知道了
liujun999999 2007-08-09
  • 打赏
  • 举报
回复
网上搜一下A*寻路算法,我记得好像有java版本的在网上

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧