成人视屏在线观看-国产99精品-国产精品1区2区-欧美一级在线观看-国产一区二区日韩-色九九九

您的位置:首頁技術(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)文章:
主站蜘蛛池模板: 国产高清一区二区三区视频 | 欧美一级在线免费观看 | 欧美三级不卡在线观看视频 | 免费一级a毛片在线播放视 免费一级α片在线观看 | 国产成人欧美一区二区三区的 | 亚洲视频国产 | 国产成人久久久精品一区二区三区 | 亚洲天堂日韩在线 | 99九九国产精品免费视频 | 亚洲另类激情综合偷自拍 | 久久视频精品线视频在线网站 | 成人污网站 | 国产精品毛片在线更新 | 99久久成人国产精品免费 | 男人天堂网在线 | 五月色婷婷琪琪综合伊人 | 在线免费看黄色 | 一区二区三区免费高清视频 | 男女男精品视频 | 性猛交毛片 | 亚洲免费在线视频播放 | 成 人 黄 色 免费网 | 三级中文字幕 | 日韩一中文字幕 | 亚洲欧美激情精品一区二区 | 国产成人高清视频在线观看免费97 | 美女张开腿给男生桶下面视频 | 国产精品爱久久久久久久小 | 538prom精品视频在放免费 | 在线精品视频在线观看高清 | 模特三级在线观看 | 欧美色xxxx| 黄色网址国产 | 亚洲不卡在线 | 毛片免费大全 | 69av美女| 久久久久久综合七次郎 | 久久精品国产精品亚洲人人 | 国产日韩欧美综合在线 | 国产欧美一区二区另类精品 | 一级毛片牲交大片 |