遞迴解決走迷宮問題

2021-10-01 18:23:28 字數 1199 閱讀 9021

**:

public static  void main(string args)

for (int i = 0; i <7 ; i++)

maze[3][1]=1;

maze[3][2]=1;

maze[1][2]=1;

maze[2][2]=1;

for (int i = 0; i < 8; i++)

system.out.println();

}if( mazegame(maze,1,1,6,5))else

for (int i = 0; i < 8; i++)

system.out.println();}}

/**

* 當前點設為2 自 右 下 左 上 依次檢視是否走得通 走過走不通的點設為3 走得通設為2 阻擋物為1 未走過為0

* @param maze 表示地圖

* @param starterow 起點行

* @param starteline 起點的列

* @param finishrow 終點行

* @param finishline 終點列

* @return true表示可以走出迷宮 false表示未走出迷宮

*/public static boolean mazegame(int maze,int starterow,int starteline,int finishrow,int finishline)else else if( mazegame(maze,starterow+1,starteline,finishrow,finishline))else if(mazegame(maze,starterow,starteline-1,finishrow,finishline))else if(mazegame(maze, starterow - 1, starteline, finishrow, finishline))else

}else}}

效果圖:

用回溯遞迴演算法解決走迷宮問題

迷宮是由許多小方格構成的矩形,在每個小方格中有的是牆,有的是路,走迷宮就是從乙個小方格沿上下左右四個方向到臨近的方格,當然不能穿牆。設迷宮的入口是在左上角 1,1 出口是右下角 8,8 根據給定的迷宮,找出一條從入口到出口的路徑。演算法設計思路 從入口開始廣度優先搜尋所有可到達的方格入隊,再擴充套件...

遞迴 走迷宮

時間限制 1 sec 記憶體限制 128 mb 提交 78 解決 17 提交 狀態 討論版 命題人 外部匯入 有乙個n m格的迷宮 表示有n行 m列 其中有可走的也有不可走的,如果用1表示可以走,0表示不可以走,檔案讀入這n m個資料和起始點 結束點 起始點和結束點都是用兩個資料來描述的,分別表示這...

問題 F 遞迴入門 走迷宮(迷宮問題)

題目鏈結 題目描述 有乙個nm格的迷宮 表示有n行 m列 其中有可走的也有不可走的,如果用1表示可以走,0表示不可以走,檔案讀入這nm個資料和起始點 結束點 起始點和結束點都是用兩個資料來描述的,分別表示這個點的行號和列號 現在要你程式設計找出所有可行的道路,要求所走的路中沒有重複的點,走時只能是上...