直到6,5這個小球標誌的點
package com.demo;
public
class
losepath
// 左右全部置為1
for(
int i =
0; i <
8; i++
)// 設定擋板
map[3]
[1]=
1;map[3]
[2]=
1;system.out.
println
("小球開始的地圖:");
// 遍歷輸出一把
for(
int i =
0; i <
8; i++
) system.out.
println()
;}// 玩一把,從1,1開始找
setway
( map,1,
1); system.out.
println
("小球走過的地圖");
for(
int i =
0; i <
8; i++
) system.out.
println()
;}}// 設定找到小球的方法
/*1.map[6][5]表示小球的位置
*2. i,j表示從哪個位置出發(1,1)
*3. 如果小球能找到map[6][5]位置說明通路找到。
*4. 約定:當map[i][j] 為0表示該點沒有走過,1表示牆,2表示通路可以走,3表示該點已經走過,但是走不通
* 5. 定乙個策略,下--》右--》上--》---》左如果該點走不能再回溯
*@param map 表示地圖
* @param i ,j 表示開始的位置
* return 如果找到通路,批回true,否則返回false.
** */
public
static
boolean
setway
(int
map,
int i,
int j)
else
elseif(
setway
( map,i,j+1)
)elseif(
setway
( map,i-
1,j )
)elseif(
setway
( map,i,j-1)
)else
}else}}
}
遞迴迷宮問題
這裡我們有乙個地圖 用二維陣列表示 小球位於地圖的起始點 也就是map 1 1 這個位置 然後小球通過進行迴圈判斷小球當前位置的上下左右是否能走,如果能走則在走之前把之前的位置標記為2,代表有路可走,如果上下左右都沒有路則把當前位置標記為3,代表無路可走,直到找到地圖的目的地,也就是map 6 5 ...
迷宮問題遞迴演算法
include define max1 100 using namespace std int flag max1 max1 標記該位置是否走過 int jihao 記錄迷宮的通路個數 typedef struct map1 迷宮的鄰接矩陣的結構體 typedef struct sign 記錄迷宮經...
迷宮問題(遞迴)筆記
上圖是乙個 8 行 7 列的迷宮,紅色方格表示牆,不能走,目的是從某一處起點開始讓小球最終走到右下角的位置 說明 map 表示地圖 i,j 表示從地圖的哪個位置開始出發 1,1 如果小球能到 map 6 5 位置,則說明通路找到.約定 當 map i j 為 0 表示該點沒有走過 當為 1 表示牆 ...