level 1
我爱舞女泪
楼主
最近在写推箱子的游戏,我要使用人工智能实现自动推箱子,其要实现的效果为:利用鼠标点击箱子可以选择要推的箱子,鼠标再点击目的地,如果有箱子被选择,就自动推动被选择的箱子到此坐标,否则,人移动到此坐标!这具体的移动步骤,当然是自动选择最短的路径。也就是说,你只要选择要它搬哪个箱子,并指定要搬到的目的地,它就自动搬好,当然,如果出发点到目的地没有路可走,有障碍物,当然它就不会搬!其它的已经实现,就是自动推箱子的问题有点复杂,我先分析一下自动推箱子的思路,并使用图解的方法,让大家能更清晰明了:符号提示:★ 代表人▲ 代表目的地○ 代表放箱子的洞● 代表箱子□ 代表可以行走的空地■ 代表不能通行的墙→←↑↓ 代表行走的四个方向图一■■■■■■■■■■■■□▲□□□□□□□■■■■■■■■□□□■■□□□□□□□□□■■□★□□□□□■■■■■■■■■■■■■■这第一个图是最简单的,只移动人,将人移动到目的地就可以了,它的行走路线就应该是如图■■■■■■■■■■■■□▲←←←←←□□■■■■■■■■↑□□■■□□□□□□↑□□■■□★→→→→↑■■■■■■■■■■■■■■图二■■■■■■■■■■■■□○□□□□□□□■■■■■■■■□□□■■□□□●□□□□□■■□★□□□□□■■■■■■■■■■■■■■这个图,是要先将人移动到箱子左边,再推动到箱子转角的地方,人必须要走到箱子的下面,向上推到顶,再走到箱子的右边推,直到进洞,为了直观,我把人走的路线,和箱子走的路线分开画■■■■■■■■■■■■□○←←←←←□□■■■■■■■■↑□□■■□□□●→→↑□□■■□★□□□□□■■■■■■■■■■■■■■上面的是箱子应该走的路线,下面的是要让箱子实现以上的路线,则人的路线图■■■■■■■■■■■■□○←←←←←↑□■■■■■■■■↑→□■■□↑→→→→↑□□■■□★□□□↓→■■■■■■■■■■■■■■图三■■■■■■■■■■■■■□□□□□□□□○□■■□□□■□■■■□□■■■■■□●□□□□□■■□□★□□□□□■■■■■■■■■■■■■■■此图就有些复杂了,同样,还是先是箱子行走路线,这里因为重复了路线,我将分两次显示■■■■■■■■■■■■■□□←←←□□□○□■■□□□■↑■■■□□■■■■■□●□□□□□■■□□★□□□□□■■■■■■■■■■■■■■■人行走路线■■■■■■■■■■■■■□□←←←←←←↑□■■□□□■↓■■■↑□■■■■■□→→→→→□■■□□★→↑□□□■■■■■■■■■■■■■■■第二步■■■■■■■■■■■■■□→→→→→→→○□■■□□□■□■■■□□■■■■■□□□□□□□■■□□□□□□□□■■■■■■■■■■■■■■■人行走路线■■■■■■■■■■■■■→→→→→→→→○□■■↑←←■□■■■□□■■■■■□□□□□□□■■□□□□□□□□■■■■■■■■■■■■■■■从以上图中可以看出,要做以自动推箱子,还是非常复杂的,如果要推一个箱子,它要可以自动推动指定的那个箱子,并会自动绕开障碍物,如果障碍物是要推的那个箱子,则要自动将这个箱子推到可以开路的地方,但他不能去推动其它箱子来达到排除障碍物的目的。希望大家都讨论一下自己的看法和思路!谢谢
2007年06月17日 11点06分
1