导航:首页 > 编程语言 > java迷宫

java迷宫

发布时间:2022-01-23 15:14:59

❶ 如何使用java开发一个迷宫小游戏

你得知道游戏的机制
迷宫需要些什么
画图如何画
怎么判定是否走出迷宫
是否遇到墙,此路不通
搞懂了这些流程,做起来就快了

❷ java迷宫程序代码

qq你了

❸ 急求一个用java写的迷宫代码

敢问LZ哪个学校的?LZ的题目和图跟我准备做的题目一摸一样啊,是不是JAVA书后面的?课程设计做 图形用户界面与算法设计的?

❹ 求Java关于迷宫的算法(用栈实现)

packagecom.Albert.LabyringhStack;

publicclassPoint{
intx;
inty;
intdirection;//direction指向此点附近的一个点应该有四个编号为1234
publicintgetX(){
returnx;
}
publicvoidsetX(intx){
this.x=x;
}
publicintgetY(){
returny;
}
publicvoidsetY(inty){
this.y=y;
}

publicintgetDirection(){
returndirection;
}
publicvoidsetDirection(intdirection){
this.direction=direction;
}
publicvoidaddDirection(){
this.direction++;

}
publicPoint(){
}
publicPoint(intx,inty){
super();
this.x=x;
this.y=y;
this.direction=1;
}
publicPoint(intx,inty,intdirection){
super();
this.x=x;
this.y=y;
this.direction=direction;
}

}
packagecom.Albert.LabyringhStack;

importjava.util.*;

publicclassLabyringhStack{

publicPointS;
publicPointF;
char[][]mazemap;
Stack<Point>path;

publicLabyringhStack(){
}
publicLabyringhStack(char[][]ma){//初始化存入数组
this.mazemap=newchar[ma.length][ma[0].length];
for(inti=0;i<ma.length;i++){
for(intj=0;j<ma[0].length;j++){//mazemap[0]必须有元素不可为空
this.mazemap[i][j]=ma[i][j];
}
}
S=returnPlace('S');
F=returnPlace('F');
}
publicPointreturnPlace(chars){//返回数组中字符的位置
Pointpoint=newPoint();
for(inti=0;i<this.mazemap.length;i++){
for(intj=0;j<this.mazemap[0].length;j++){//mazemap[0]必须有元素不可为空
if(this.mazemap[i][j]==s)
{point.setX(i);
point.setY(j);
point.setDirection(1);
}
}
}
returnpoint;
}
publiccharreturnChar(Pointpoint){
if(point.getX()>=0&&point.getY()>=0)
returnthis.mazemap[point.getX()][point.getY()];
else
return'#';
}
publicvoidreplacePlace(Pointpoint,chars){//更改特定位置处的字符
mazemap[point.getX()][point.getY()]=s;
}
publicvoidprintPath(){
Stack<Point>tempPath=newStack<Point>();
while(!path.empty()){//对栈进行反序
tempPath.push(path.pop());
}
while(!tempPath.empty()){
System.out.print("("+tempPath.peek().getX()+","+tempPath.pop().getY()+")");
}
}
publicbooleangetPath(){//取得路径的算法如果有路径就返回真
path=newStack<Point>();
S.setDirection(1);
path.push(S);
replacePlace(S,'X');
while(!path.empty()){
PointnowPoint=path.peek();//取得当前位置
if(nowPoint.getX()==F.getX()&&nowPoint.getY()==F.getY()){
//printPath();
returntrue;
}
Pointtemp=newPoint();//存放下一个可走的位置
intfind=0;//标志是否可向下走
while(nowPoint.getDirection()<5&&find==0){
switch(nowPoint.getDirection()){
case1:temp=newPoint(nowPoint.getX(),nowPoint.getY()-1,1);break;//取得当前位置左边的位置
case2:temp=newPoint(nowPoint.getX()+1,nowPoint.getY(),1);break;//取得当前位置下边的位置
case3:temp=newPoint(nowPoint.getX(),nowPoint.getY()+1,1);break;//取得当前位置右边的位置
case4:temp=newPoint(nowPoint.getX()-1,nowPoint.getY(),1);break;//取得当前位置上边的位置
}
nowPoint.addDirection();//指向下一个需要验证的点
if(returnChar(temp)=='O'||returnChar(temp)=='F')find=1;//如果能向下走则置为1
}
if(find==1){//如果可走就进栈
replacePlace(temp,'X');//设置成X防止回走
// printArr();
path.push(temp);
}else{//如果不可走就退栈
replacePlace(nowPoint,'O');
path.pop();
}
}
returnfalse;
}
publicvoidprintArr(){
for(inti=0;i<mazemap.length;i++){
for(intj=0;j<mazemap[0].length;j++){//mazemap[0]必须有元素不可为空
System.out.print(mazemap[i][j]);
}
System.out.println();
}
System.out.println();
}

}
packagecom.Albert.LabyringhStack;

publicclassMain{

/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
char[][]mazemap={
{'M','M','M','M','M','M','M','M'},
{'M','S','O','O','M','M','M','M'},
{'M','M','M','O','M','M','M','M'},
{'M','M','O','O','O','O','M','M'},
{'M','M','M','M','M','F','M','M'},
{'M','M','M','M','M','M','M','M'},
{'M','M','M','M','M','M','M','M'}
};
LabyringhStacksolution=newLabyringhStack(mazemap);
if(solution.getPath()){
System.out.print("迷宫路径如下:");
solution.printPath();
}
else{
System.out.println("没有可走的路");
}
}
}

❺ java栈实现走迷宫

首先,你要知道走迷宫的思路:就是遇到岔路都往一个方向,比如往右,遇到死路就回头,回头遇到岔路继续往右。

❻ Java迷宫的游戏

这个太简单了。。我用类C的代码写给你看看。。。直接手写的,不调试了
,谁让你就给这点分呢。。。。其实分啥都不是。。。

其实就是搜索,为了简单我就用深度优先了

int dir[4][2]={
{1,0},
{-1,0},
{0,1},
{0,-1}
};//用来控制方向的数组
int flag = 0;
int map[][];//这个就是你的迷宫

void dfs( int x, int y ){
if( flag ){
return;
}
map[x][y] = 0;
for(int i = 0; i < 4; i++ ){
int dx = x + dir[i][0];
int dy = y + dir[i][1];
if( 0 <= dx && dx < 行数 && 0 <= dy && dy < 列数 && map[dx][dy] == 1 ){
dfs(dx,dy);
}
}
map[x][y] = 1;
}

这个就是回溯函数了。。。。

❼ java怎么生成迷宫地图

//作者:zhongZw

❽ Java解决迷宫问题

以一个M×N的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。
(1) 根据二维数组,输出迷宫的图形。
(2) 探索迷宫的四个方向:RIGHT为向右,DOWN向下,LEFT向左,UP向上,输出从入口到出口的行走路径。

❾ java迷宫图形界面

这是我之前课程设计做的一个迷宫,Swing做的,发在javaeye的博客上了,有打包成jar的,安装了jdk可以直接双击运行,有源码,还有我写的一个说明文档,网址如下:
http://zpsailor.javaeye.com/admin/blogs/651141
自己下载下吧,我就不给你发到邮箱了。

阅读全文

与java迷宫相关的资料

热点内容
搭梯子用什么云服务器 浏览:544
光度学pdf 浏览:287
加密通讯器控制单元 浏览:150
vscode写python不提示代码 浏览:17
8051单片机汇编 浏览:868
把文件夹放进回收站就删除了嘛 浏览:353
文件夹是一种什么软件 浏览:213
pdf崩溃 浏览:872
小学手算法视频 浏览:965
预编译和第一遍编译 浏览:773
微信怎么样去除加密 浏览:574
php读取文档内容 浏览:631
亚马逊云的虚拟云服务器的产品 浏览:895
打开php网站空白 浏览:167
phpxml读取数据 浏览:338
如何安装微信安卓版 浏览:123
51单片机蓝牙传送到手机 浏览:72
使用hmcl压缩包用完不保存 浏览:269
php开启phpfpm 浏览:657
看pdf常亮 浏览:835