导航:首页 > 编程语言 > 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迷宫相关的资料

热点内容
c语言返回命令 浏览:933
加密软件会导致文件损坏吗 浏览:434
在别人服务器里如何使用命令方块 浏览:852
易语言源码转python 浏览:364
程序员日祝福 浏览:883
阿里tv助手app哪里下载 浏览:187
app活动怎么关 浏览:202
java改变map 浏览:348
解压钢琴吕恒 浏览:991
程序员怎么获取被动收入 浏览:569
能不能别让编程猫打电话给我了 浏览:687
量线突破指标源码 浏览:458
云服务器阿里环境搭建 浏览:123
锥孔是怎么编程的 浏览:133
加强箍和加密箍的区别 浏览:897
怎么在腾讯服务器上传文件 浏览:643
公司门户app安卓怎么卸载 浏览:990
单片机中段源 浏览:143
电脑桌面文件加密要怎样解除 浏览:963
quickfoxapp的商场在哪里 浏览:2