java實現find迷宮路徑

      網友投稿 862 2022-05-30

      迷宮項目實現設計文檔

      項目介紹:

      一個網格迷宮由n行m列的單元格組成,每個大院個要么是空地(用0表示),要么是障礙物(用1表示)。你的任務是找一條從起點到終點的移動序列,其中只能上下左右移動到相鄰單元格。任何時候都不能在有障礙物的單元格中,也不能走到迷宮之外。起點為左上角和終點右下角。

      項目功能:

      解決迷宮路徑查找問題,尋找一條從左上角迷宮入口到右下角迷宮出口的一條有效路徑,0代表可走,1代表不能行走,找到請輸出最終的迷宮和路徑信息,找不到請輸出不存在有效路徑。

      項目所用知識點:

      java實現find迷宮路徑

      采用Java面向對象思想,二維數組以及非遞歸棧進行實現

      項目實現思路:

      定義一個迷宮節點類型(MazeNode)的二維數組

      初始化每個格子中的value值。給二維數組每個格子存放對象。對象的value值只能為0(當前格子可以走)或者1(當前格子不能走)

      創建圍墻,可以有效防止越界問題。根據當前節點周圍四個方向格子中的value值,判斷當前節點的上下左右四個方向是否可走(0是可走,1不可走)。

      開始走迷宮。采用棧操作,記錄行走的路徑,將元素入棧,判斷當前棧頂元素的哪個方向可走,將其中一個可走方向進行入棧操作,直到右下角元素停止。棧中保存走過的路徑。 注意: 如果遇到走入死胡同問題,此時需要將是棧頂元素并且棧頂元素的四個方向都不能行走,此時將其出棧,選擇新方向再次入棧,直到右下角元素停止。

      項目實現 :

      Maze類

      import?java.util.Scanner; public?class?Maze?{ ????private?MazeNode[][]?mazenode; ????private?int?row?;//行 ????private?int?colum;//列 ????public?Maze(){ ????} ????public?void?innode(){//添加迷宮路徑; ????????Scanner?scanner=new?Scanner(System.in); ????????System.out.println("請輸入迷宮行數和列數"); ????????row=scanner.nextInt()+2;//為后面加圍墻 ????????colum=scanner.nextInt()+2; ????????System.out.println("請輸入迷宮路徑:"); ????????mazenode=new?MazeNode[row][colum]; ????????build(mazenode);//創建一個row行colum列的mazenode并且把value值都給1 ????????for(int?i=1;i

      mazenode類

      public?class?MazeNode?{ ????public?int?index1; ????public?int?index2; ????public?int?value; ????public?MazeNode(int?value,int?index1,int?index2)?{ ????????this.value=value; ????????this.index1=index1;//下標1 ????????this.index2=index2;//下標2 ????} ????//改變找個點的值為2 ???public?void?changeValue(MazeNode[][]?mazeNode,int?index1,int?index2){ ????????mazeNode[index1][index2].value=2; ???} ???//判斷左邊是否可走 ????public?boolean?left(MazeNode[][]?mazeNode,int?index1,int?index2){ ???????if(mazeNode[index1][index2].value==0){ ????????return?true; ???????}return?false; ????} ????//判斷上邊是否可走 ????public?boolean?up(MazeNode[][]?mazeNode,int?index1,int?index2){ ????????if(mazeNode[index1][index2].value==0){ ????????????return?true; ????????}return?false; ????} ????//判斷右邊是否可走 ????public?boolean?right(MazeNode[][]?mazeNode,int?index1,int?index2){ ????????if(mazeNode[index1][index2].value==0){ ????????????return?true; ????????}return?false; ????} ????//判斷下邊是否可走 ????public?boolean?down(MazeNode[][]?mazeNode,int?index1,int?index2){ ????????if(mazeNode[index1][index2].value==0){ ????????????return?true; ????????}return?false; ????} }

      MyStake類//棧

      import?java.util.Arrays; import?java.util.EmptyStackException; public?class?MyStack?{ ????private?PuzzleValue[]array2; ????private?MazeNode[]array; ????private?int?size; ????private?final?int?INITSIZE=10; ????public?MyStack(){ ????????array=new?MazeNode[INITSIZE]; ????????array2=new?PuzzleValue[INITSIZE]; ????} ????//查找棧內是否存在此路徑 ????public??boolean?contain(MyStack?stack,MazeNode[][]?mazeNode,int?index1,int?index2){ ????????for(int?i=0;i>1)); ????????}else?{ ????????array[size]=mazeNode; ????????size++; ????????} ????} ????//出棧 ????public?void?pop(MazeNode?mazeNode){ ????????if(size==0){ ????????????return; ????????}else{ ????????????array[size]=null; ????????????size--; ????????} ????} ????//獲得棧頂元素 ????public?MazeNode?gettop(){ ????????return?array[size-1]; ????} ????//改變棧內的value值 ????public?void?toRoute(){ ????????for(int?i=0;i

      Java

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:BPMN工作流的基本概念!詳解工作流框架Activiti的服務架構和組件
      下一篇:第十一屆藍橋杯 2020年省賽真題 (Java 大學C組 )
      相關文章
      国产成人不卡亚洲精品91| 亚洲成a人不卡在线观看| 亚洲乱人伦精品图片| 亚洲真人无码永久在线| 亚洲乱码中文字幕手机在线 | 亚洲国产综合精品中文第一| 久久亚洲AV无码精品色午夜麻豆 | 亚洲男人的天堂网站| 亚洲欧洲无卡二区视頻| 亚洲综合无码无在线观看| 国产亚洲精品VA片在线播放| 亚洲一级在线观看| 亚洲大成色www永久网址| 亚洲人成网站色在线观看| 亚洲一卡2卡三卡4卡无卡下载| 亚洲中文无码卡通动漫野外| 亚洲熟妇无码AV| 亚洲AV日韩AV永久无码色欲| 国产亚洲一卡2卡3卡4卡新区| 激情小说亚洲色图| 亚洲男人天堂2020| 亚洲中文字幕久久精品无码APP| 亚洲色大成网站www永久一区| 亚洲精品色午夜无码专区日韩| 亚洲精品~无码抽插| 亚洲av无码一区二区三区不卡 | 亚洲av午夜福利精品一区| 久久亚洲精品成人av无码网站| 亚洲综合激情六月婷婷在线观看| 亚洲国产精品综合福利专区| 2020国产精品亚洲综合网| 亚洲人av高清无码| 亚洲国产精品综合久久一线| 亚洲免费人成在线视频观看| 亚洲高清在线视频| 亚洲免费观看在线视频| 亚洲av无码兔费综合| 亚洲人成无码www久久久| 久久精品国产亚洲av麻豆| 亚洲综合激情视频| 亚洲国产精品无码久久九九大片|