迷宫问题求解。
迷宫是m×n的字符矩阵,存储于文件中,其格式的例子如下:
6
8
########
SOOOOOOO
#O####O#
OOO#OEOO
####O###
######O#
前两个数字为迷宫的行数m与列数n,后面各行为迷宫字符矩阵。其中#表示墙壁,O表示道路,S与E分别表示起点和终点(分别只有一个)。任意输入一个迷宫文件,判断出是否存在从S到E的路径,如果存在,给出从S到E的最少移动步数和对应的移动方案(每上下左右移动一个字符为一步,不能穿过墙壁和移出迷宫外)。
迷宫是m×n的字符矩阵,存储于文件中,其格式的例子如下:
6
8
########
SOOOOOOO
#O####O#
OOO#OEOO
####O###
######O#
前两个数字为迷宫的行数m与列数n,后面各行为迷宫字符矩阵。其中#表示墙壁,O表示道路,S与E分别表示起点和终点(分别只有一个)。任意输入一个迷宫文件,判断出是否存在从S到E的路径,如果存在,给出从S到E的最少移动步数和对应的移动方案(每上下左右移动一个字符为一步,不能穿过墙壁和移出迷宫外)。
解决方案 »
- 『高分求助』大家进来帮我看看,关于Socket编程的,给我出出主意,谢谢~
- java 与vc 的socket通信问题
- 问下,有没一个布局管理是可以用坐标来控制的?
- JLabel添加addMouseListener并实现了mouseClicked和mousePressed为什么还监听不到消息
- 为什么不能重绘呢?
- wwm1978请进,接分
- 请问高手:服务器端怎么判断客户端是否已经断线?
- 引用变量的指向可以是多个吗
- instanceof
- DatagramSocket和DatagramPacket???
- 一道java认证题
- 我是一位初学者,用的是JBuilder 2005 ,用sql server 做后台服务,在运行程序的时候连接不到服务器,也没有抛出异常,该怎么办?
run函数实现
参数:子线程计数器,当前坐标,子线程迷宫图将子线程迷宫图当前点位置置为'n',计数器+1,
在当前点判断
相邻点是否为'E'
如果是则将字线程计数器与计数器比较 小于或计数器==-1则更新计数器,更新路径n-n-...-e。
否则判断
相邻点是否为'O'
如果有则启动等数量的新线程并传递'O'点坐标,子线程计数器,子线程迷宫图。
否则
销毁线程。主函数以参数 'S'点坐标,迷宫图,计数器=-1启动线程。结果计数器==-1 则路径不存在
计数器!=-1 路径存在
计数器+1为最小移动步数
路径为最小移动方案
异常处理:
点位置在范围内。