在乙個8*8的矩陣中,四面都是牆,矩陣中有幾個點不能通過;假設有乙個小球,要到達指定的座標,求出小球走過的路徑。
![在這裡插入描述](
1 ---------> 圍牆,不能通過
2 ----------> 目標點
3 ----------> 已經走過,但是走不通
4.策略逆時針找路,即按照:下 ---> 右 --->上---- 左的順序尋找
5.實現思路手動設定起點,使用查詢策略遞迴尋找終點,走到一點,就將其座標置為2,列印出小球的路徑。
6.**實現package modules;
/** * @program: 6.遞迴的應用
* @description: 主函式
* @author: zhou jian
* @create: 2020-07-14 22:49
*/public
class
main
// 將矩陣第一列和最後一列元素置為1
for(
int i =
0; i <
8; i++
)// 將(2,1)(3,1)置為1 --------> 障礙物
map[5]
[6]= map[2]
[2]=
1;// 列印矩陣
for(
int i =
0; i < map.length; i++
) system.out.
println()
;}system.out.
println
("***********************************====");
mazebackfunction
(map,1,
1);// 列印矩陣
for(
int i =
0; i < map.length; i++
) system.out.
println()
;}}// 迷宮
/** * @param array 傳入的矩陣
* @param x 起始點的x座標
* @param y 起始點的y座標
* @return 正確的路徑
*/public
static
boolean
mazebackfunction
(int
array,
int x,
int y)
else
elseif(
mazebackfunction
(array, x, y +1)
)elseif(
mazebackfunction
(array, x +
1, y)
)elseif(
mazebackfunction
(array, x, y -1)
)else
}else}}
}
遞迴(recursive) 迷宮回溯問題
建立乙個二維陣列 表示地圖 約定不同的數字表示不同的含義。元素的值,0 表示可以走還沒走過,1 牆,2 表示可以走,3 表示已經走過了,但是是死路。確定乙個策略。下 右 上 左。package chapter18.recursive object migong 左右全部置1 for i 0 unti...
遞迴演算法 迷宮回溯問題
package com.czn.recursion public class migong for int i 0 i 8 i map 3 1 1 map 3 2 1 for int i 0 i 8 i system.out.println boolean setway setway map,1,1...
遞迴與迷宮回溯問題
package com.dai.recursion public class migong 左右全置1 for int i 0 i 8 i 設定擋板 map 3 1 1 map 3 2 1 map 1 2 1 map 2 2 1 輸出地圖 system.out.println 地圖情況 for in...