博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java小案例-(逃离迷宫)
阅读量:6534 次
发布时间:2019-06-24

本文共 2676 字,大约阅读时间需要 8 分钟。

Java小案例-(逃离迷宫)

一,迷宫需求描述:

1,用户输入迷宫图(限制方形):字母1位墙,0为通,e为出口,m为入口,*为已访问的位置,用外围1围住迷宫

2,运行轨迹右,左,下,上

3,判断该迷宫是否能从入口走到出口,并将搜索过程输出

二,迷宫实现:

1,迷宫元素类MazeCell:

package smalldemo.maze; class MazeCell {  public int x,y;  public MazeCell(){  }  public MazeCell(int x,int y){      this.x=x;      this.y=y;  }  public boolean equals(MazeCell cell){     return x==cell.x && y==cell.y;  }}

2,迷宫搜索类MazeUtils:

package smalldemo.maze;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintStream;import java.util.Stack;class MazeUtils {    private int rows,columns;    private MazeCell currentCell,exitCell=new MazeCell(),entryCell=new MazeCell();    private final char wall='1',passage='0',visited='*',entryMarker='m',exitMarker='e';    private char[][] stores;    private Stack
mazePath=new Stack
(); MazeUtils(){ int row=0,column=0; InputStreamReader in=new InputStreamReader(System.in); BufferedReader buf=new BufferedReader(in); Stack
mazeRows=new Stack
(); System.out.println("Enter a rectangular maze using the following"+ "characters\nm -entry\ne -exit\n1 - wall \n0 - passage\n"+"Enter one line at one time:" + "end with Ctrl- D:"); try { String str=buf.readLine(); while(str !=null) { row += 1; columns = str.length(); str = "1" + str + "1"; mazeRows.push(str); if (str.indexOf(entryMarker) != -1) { entryCell.x = row; entryCell.y = str.indexOf(entryMarker); } if (str.indexOf(exitMarker) != -1) { exitCell.x = row; exitCell.y = str.indexOf(exitMarker); } str = buf.readLine(); } } catch (IOException e) { e.printStackTrace(); } rows=row; stores=new char[rows+2][]; stores[0]=new char[columns+2]; for(;!mazeRows.empty();row --){ stores[row]=mazeRows.pop().toCharArray(); } stores[rows+1]=new char[columns+2]; for(int i=0;i

3,结果是:

Enter a rectangular maze using the followingcharactersm -entrye -exit1 - wall 0 - passageEnter one line at one time:end with Ctrl- D:1101000e00m1^D1111111110111000e1100m111111111110111000e1100*111111111110111000e110**111111111110111000e11***111111111110111*00e11***111111111110111**0e11***111111111110111***e11***11Success!Process finished with exit code 0
View Code

 

转载于:https://www.cnblogs.com/ksWorld/p/7398224.html

你可能感兴趣的文章
Mac下android环境搭建
查看>>
创建Visual Studio项目模版向导的几篇参考文章
查看>>
深入浅出SQL Server Replication第一篇:走近Replication(上)
查看>>
[TopCoder][SRM] SRM 562 DIV 2
查看>>
SQLSERVER是怎麽通过索引和统计信息来找到目标数据的(第一篇)
查看>>
LocalAlloc,VirtualAlloc,malloc,new的异同
查看>>
回调函数
查看>>
win7 x64 jdk1.7.0_51
查看>>
这些开源项目,你都知道吗?(持续更新中...)[原创]
查看>>
linux中利用iptables+geoip过滤指定IP
查看>>
在myeclipse中写sql语句的细节问题
查看>>
使用ShellExecute打开目标文件所在文件夹并选中目标文件
查看>>
HDU 4614 Vases and Flowers (2013多校2 1004 线段树)
查看>>
Minix中的字符判定ctype.c
查看>>
91平台iOS接入demo
查看>>
五个优秀的硬盘检测工具
查看>>
用js实现table内容从下到上连续滚动
查看>>
基于ffmpeg的流媒体服务器
查看>>
项目积累——Blockingqueue,ConcurrentLinkedQueue,Executors
查看>>
JVM学习笔记(一)------基本结构
查看>>