<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    cavenaghi

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      4 Posts :: 0 Stories :: 3 Comments :: 0 Trackbacks

    迷宮文件boya.ice:

    8
    9
    #########
    #s0##0###
    #0##00###
    #0##0####
    #0000####
    #0##0####
    #0##00e##
    #0000####

     

    package maze;
    import java.io.*;
    import java.util.*;
    public class Maze{
     private char[][] maze;//迷宮數組
     private int startX,startY,endX,endY;//迷宮起點,終點的位置
     private int x,y,step=0;//迷宮長寬及步驟
     //依據輸入的文件名創建對象
     private Maze(String fileName){
      try{
       LinkedList aList=new LinkedList();//用于存儲文件每行的內容
       BufferedReader files=new BufferedReader(new FileReader("map\\"+fileName));
       //將每行的內容依次加入到LinkedList中
       String temp=new String();
       int i=0;
       while((temp=files.readLine())!=null){
        aList.add(temp);
       }
       files.close();
       //讀取并設置迷宮的長寬
       x=Integer.parseInt((String)aList.getFirst())+2;
       aList.removeFirst();
       y=Integer.parseInt((String)aList.getFirst())+2;
       aList.removeFirst();
       //依據長寬對迷宮進行初始化
       maze=new char[x][y];
       //將迷宮的賦予外圍墻
       for(i=0;i<x;i++){
        maze[i][0]='#';
        maze[i][y-1]='#';
       }
       for(i=0;i<y;i++){
        maze[0][i]='#';
        maze[x-1][i]='#';
       }
       //將LinkedList中內容讀入數組
       Iterator it=aList.iterator();
       i=1;
       char[] row;
       while(it.hasNext()){
        temp=((String)it.next());
        row=new char[y-2];
        row=temp.toCharArray();
        for(int j=1;j<y-1;j++){
         maze[i][j]=row[j-1];
         if(maze[i][j]=='s'){
          startX=i;
          startY=j;
          maze[i][j]='0';
         }
         else if(maze[i][j]=='e'){
          endX=i;
          endY=j;
          maze[i][j]='0';
         }
        }
        i++;
       }
      }
      catch(FileNotFoundException e){
       System.out.println("File Name Input Wrong!!!");
      }
      catch(IOException e){
       System.out.println("Wrong Input!!!");
      }
     }
     //遞歸方法尋找路徑
     private boolean findWay(int x,int y){
      if(maze[endX][endY]=='i')
       return true;
      else
       if(maze[x][y]=='0'){
        maze[x][y]='i';
        if(findWay(x-1,y))
         return true;
        else if(findWay(x+1,y))
         return true;
        else if(findWay(x,y+1))
         return true;
        else if(findWay(x,y-1))
         return true;
        else{
         maze[x][y]='c';
         return false;
        }
       }
       else return false;
     }
     //打印迷宮路徑
     private void show(){
      maze[startX][startY]='s';
      maze[endX][endY]='e';
      for(int i=1;i<x-1;i++){
       for(int j=1;j<y-1;j++){
        if(maze[i][j]=='i'){
         maze[i][j]=' ';
         step++;
        }
        else if(maze[i][j]=='c') maze[i][j]='0';
        System.out.print(maze[i][j]);
       }
       System.out.println("");
      }
      System.out.println("I Have went "+step+" Steps To The End!");
     }
     public static void main(String arg[]){
      try{
       System.out.println("Boya(8*9)\n"+"Ice(10*12)\n"+"Sky(15*17)\n"+"Input the map name:");
       BufferedReader is=new BufferedReader(new InputStreamReader(System.in));
       for(;;){
        String input=new String();
        input=is.readLine().trim();
        if(input.equals("q")) break;
        else{
         Maze boya=new Maze(input+".ice");
         if(boya.findWay(boya.startX,boya.startY)){
          boya.show();
         }
         else System.out.println("No Ways to the end!");
        }
        System.out.println("Input another map name or input 'q' to quit:");
       }
       is.close();
      }
      catch(IOException e){
       System.out.println("Wrong Input!!!");
      }
      catch(NullPointerException e){
       System.out.println("Wrong Input!!!");
      }
     }
    }

    posted on 2005-07-27 11:54 Cavenaghi 閱讀(767) 評論(1)  編輯  收藏

    Feedback

    # re: 遞歸尋求迷宮出路 2005-12-11 04:55 sd
    xing bu xing ya zhe duan dai ma ?  回復  更多評論
      


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲高清中文字幕免费| 中国亚洲呦女专区| 亚洲精品国产精品乱码视色| va亚洲va日韩不卡在线观看| 国产乱子伦精品免费女| 国产v片免费播放| 亚洲成人高清在线| 免费成人av电影| 亚洲成A∨人片天堂网无码| 亚洲国产一区视频| 在线a亚洲v天堂网2019无码| 久久久久久A亚洲欧洲AV冫| 好看的亚洲黄色经典| 亚洲天堂中文字幕| 亚洲人成777在线播放| 亚洲国产乱码最新视频| 久久亚洲中文字幕无码| 免费看一级毛片在线观看精品视频| 麻豆69堂免费视频| 久久一区二区三区免费| 久久午夜夜伦鲁鲁片免费无码 | 亚洲高清国产拍精品熟女| 亚洲国产成人无码AV在线| 老外毛片免费视频播放| 国产精品免费久久久久电影网| 免费无码H肉动漫在线观看麻豆| 国产精品偷伦视频观看免费| 久久免费看黄a级毛片| 在线免费观看a级片| 亚洲国产成人精品久久久国产成人一区二区三区综 | 国产97视频人人做人人爱免费| 91福利免费网站在线观看| 久久国产色AV免费看| 女人被男人躁的女爽免费视频| 免费看国产一级片| 亚洲国产精品成人久久| 亚洲乱人伦精品图片| 免费在线观看自拍性爱视频| 免费观看在线禁片| 日韩伦理片电影在线免费观看| 亚洲真人日本在线|