package recursion;
public class migong
// 左右全部置為1
for(int i = 0 ; i < 8 ;i++)
//設定擋板, 1 表示
map[3][1] = 1;
map[3][2] = 1;
// 輸出地圖
for(int i = 0 ; i < 8 ;i++)
system.out.println();
}//使用遞迴回溯給小球找路
//輸出新的地圖, 小球走過,並標識過的遞迴
//使用遞迴回溯給小球找路
//setway(map, 1, 1);
setway(map, 1, 1);
//輸出新的地圖, 小球走過,並標識過的遞迴
system.out.println("小球走過,並標識過的 地圖的情況");
for (int i = 0; i < 8; i++)
system.out.println();
}system.out.println(count);
//使用遞迴回溯來給小球找路
//說明
//1. map 表示地圖
//2. i,j 表示從地圖的哪個位置開始出發 (1,1)
//3. 如果小球能到 map[6][5] 位置,則說明通路找到.
//4. 約定: 當map[i][j] 為 0 表示該點沒有走過 當為 1 表示牆 ; 2 表示該點已經走過,通路可以走 ; 3 表示該點已經走過,但是走不通
//5. 在走迷宮時,需要確定乙個策略(方法) 下->右->上->左 , 如果該點走不通,再回溯
/***
* @param map 表示地圖
* @param i 從哪個位置開始找
* @param j
* @return 如果找到通路,就返回true, 否則返回false*/}
public static boolean setway(int map, int i, int j)
//0表示還沒有走過
if(map[i][j] == 0)else if(setway(map,i,j+1))else if(setway(map,i-1,j))else if(setway(map,i,j-1))else
}else
}}
遞迴的應用 迷宮問題和八皇后問題
右下角位置為出路 小球走過,並標識過的 地圖的情況 for int i 0 i 8 i system.out.println 1.map 表示地圖 2.i,j 表示當前位置座標 3.如果小球能到 map 6 5 位置,則說明通路找到.4.約定 當map i j 為 0 表示該點沒有走過 當為 1 表...
遞迴迷宮問題
這裡我們有乙個地圖 用二維陣列表示 小球位於地圖的起始點 也就是map 1 1 這個位置 然後小球通過進行迴圈判斷小球當前位置的上下左右是否能走,如果能走則在走之前把之前的位置標記為2,代表有路可走,如果上下左右都沒有路則把當前位置標記為3,代表無路可走,直到找到地圖的目的地,也就是map 6 5 ...
遞迴迷宮問題
直到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 ...