亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術(shù)文章
文章詳情頁

java 實(shí)現(xiàn)迷宮回溯算法示例詳解

瀏覽:10日期:2022-08-27 17:11:48

用一個7 x 7的矩形表示迷宮,0和1分別表示的是通路和障礙。通過設(shè)計(jì)編寫程序找到藍(lán)色小球達(dá)到藍(lán)色旗子的路線

java 實(shí)現(xiàn)迷宮回溯算法示例詳解

思路:

構(gòu)建一個迷宮(用二維數(shù)組)實(shí)現(xiàn)找通路的方法findRoad()構(gòu)建二維數(shù)組不難,我們主要是要實(shí)現(xiàn)findRoad()這個方法,在實(shí)現(xiàn)這個方法前,我們需要約定好一下幾個點(diǎn):小球的位置當(dāng)作入口(1,1),小旗的位置當(dāng)作出口(5,5)數(shù)組里數(shù)的含義分別為(0沒有走過)、(1障礙)、(2走過且為正確的路線)、(3走過且為錯誤的路線)將我們每一步的走法稱為策略:下 -> 右 -> 上 ->左

實(shí)現(xiàn)

首先構(gòu)建出迷宮

public static void main(String[] args) { //1.創(chuàng)建二維數(shù)組模擬迷宮 int[][] maze = new int[7][7]; //2.初始化迷宮 for (int i = 0; i < maze.length; i++) { //maze[i][j]:i控制行 j:控制列 maze[0][i] = 1;//第1行都為1 maze[6][i] = 1;//最后一行都為1 maze[i][0] = 1;//第一列都為1 maze[i][6] = 1;//最后一列都為1 //其他位置的1 maze[4][1] = 1; maze[4][2] = 1; maze[4][3] = 1; maze[4][4] = 1; maze[3][4] = 1; maze[2][3] = 1; } //打印迷宮 System.out.println('完成迷宮初始化:'); for (int i = 0; i < maze.length; i++) { for (int j = 0; j < maze[i].length; j++) { System.out.print(maze[i][j] + ' '); } System.out.println(); } }

然后寫findRoad()方法

* 使用遞歸回溯找通路 (5,5為出口) * @param maze 迷宮 * @param i 從哪個位置開始找 * @param j 從哪個位置開始找 * @return 找到通路返回true 否則false */ public static boolean findRoad(int[][] maze, int i, int j) { //策略:下 -> 右 -> 上 ->左 //0:沒有走過 1:障礙 2:走過且為正確的路線 3:走過且為錯誤的路線 if (maze[5][5] == 2) {//找到通路 return true; } else { if (maze[i][j] == 0) { //當(dāng)前點(diǎn)沒走過,按策略走 maze[i][j] = 2;//當(dāng)前點(diǎn)改為2,假定能走通 if (findRoad(maze, i + 1, j)) {//向下走 return true; } else if (findRoad(maze, i, j + 1)) {//向右走 return true; } else if (findRoad(maze, i - 1, j)) {//向上走 return true; } else if (findRoad(maze, i, j - 1)) {//向左走 return true; } else { //該點(diǎn)無法走通 maze[i][j] = 3; return false;//返回到上個方法(即返回到上個點(diǎn)) } } else { //該點(diǎn)為 1或2或3,無法走通,直接返回上個方法(即上個點(diǎn)) return false; } } }

main方法調(diào)用findRoad()方法,傳入創(chuàng)建好的迷宮,和入口點(diǎn)(1,1)

//mian方法中調(diào)用findRoad()方法 findRoad(maze,1,1); //打印迷宮 System.out.println('完成路線的迷宮:'); for (int i = 0; i < maze.length; i++) { for (int j = 0; j < maze[i].length; j++) { System.out.print(maze[i][j] + ' '); } System.out.println(); }

效果

java 實(shí)現(xiàn)迷宮回溯算法示例詳解

到此這篇關(guān)于java 實(shí)現(xiàn)迷宮回溯算法示例詳解的文章就介紹到這了,更多相關(guān)java 實(shí)現(xiàn)迷宮回溯算法內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 久久亚洲国产视频 | 国产精品欧美视频另类专区 | 日韩精品一区二区三区在线观看l | 精品国产品国语在线不卡丶 | 美女黄频免费看 | 国产手机在线视频放线视频 | 高清一区二区在线观看 | 91四虎国自产在线播放线 | 国产91色综合久久免费 | 中文字幕综合在线 | 99香蕉网| 欧美成人免费大片888 | 国产成人精品在线观看 | 成人国产精品免费视频 | 在线精品亚洲 | 久久国产一片免费观看 | 亚洲精品中文字幕字幕 | 全国男人的天堂网 | 一个人看的免费观看日本视频www | 网站免费满18成年在线观看 | 99国产精品热久久久久久夜夜嗨 | 全部免费毛片在线 | 午夜视频一区二区三区 | 亚洲午夜成激人情在线影院 | 国产日韩欧美一区 | 毛片在线看免费 | 初爱视频教程在线观看高清 | 欧美午夜精品久久久久久黑人 | 欧美最猛性xxxxx亚洲精品 | 久久这里有精品视频 | 欧美一级淫片a免费播放口aaa | 中文字幕曰韩一区二区不卡 | 中国一级特黄真人毛片 | 欧洲freexxxx性 | 91精品国产薄丝高跟在线看 | 日本特黄乱人伦片 | 加勒比在线免费视频 | 91在线精品亚洲一区二区 | 欧美一级视频精品观看 | 亚洲一区二区在线免费观看 | 成人三级视频在线观看 |