基于广度优先算法迷宫生成类
来源:互联网 发布:好用的linux系统 编辑:程序博客网 时间:2024/05/16 19:54
package maze.eng;
import java.util.ArrayList;
import java.util.Random;
public class mapBuilderChilderTwo extends mapBuilderFarther
{
boolean set = true;
int xNum;
int yNum;
int count;
int xEnd;
int yEnd;
int keeper;
int longNum;
long time;
ArrayList myListToKeepMid;
ArrayList myListToKeepEnd;
manage theManage;
public mapBuilderChilderTwo()
{
xNum = 2;
yNum = 2;
count = 0;
xEnd = 2;
yEnd = 2;
keeper = 0;
}
public manage getMap(int myIn)
{
count = 0;
keeper = 0;
longNum = myIn;
set = true;
myListToKeepMid = new ArrayList();
myListToKeepEnd = new ArrayList();
theManage = new manage(myIn);
time = System.currentTimeMillis();
Random rand = new Random(time);
theManage.setManage(xNum, yNum, '2');
listType temp = new listType(2, 2);
myListToKeepMid.add(temp);
while(!myListToKeepMid.isEmpty())
{
boolean contEnd = true;
int buiDateIntOne = rand.nextInt() % myListToKeepMid.size();
while(buiDateIntOne < 0)
{
buiDateIntOne = rand.nextInt() % myListToKeepMid.size();
}
listType tempKeeper = (listType)myListToKeepMid.get(buiDateIntOne);
if(theManage.judgeBuild(tempKeeper.getX() - 1, tempKeeper.getY()))
{
theManage.setManage(tempKeeper.getX() - 1, tempKeeper.getY(), '2');
listType tempUpOne =
new listType(tempKeeper.getX() - 1, tempKeeper.getY());
myListToKeepMid.add(tempUpOne);
contEnd = false;
}
if(theManage.judgeBuild(tempKeeper.getX() + 1, tempKeeper.getY()))
{
theManage.setManage(tempKeeper.getX() + 1, tempKeeper.getY(), '2');
listType tempDoOne =
new listType(tempKeeper.getX() + 1, tempKeeper.getY());
myListToKeepMid.add(tempDoOne);
contEnd = false;
}
if(theManage.judgeBuild(tempKeeper.getX(), tempKeeper.getY() - 1))
{
theManage.setManage(tempKeeper.getX(), tempKeeper.getY() - 1, '2');
listType tempLeOne =
new listType(tempKeeper.getX(), tempKeeper.getY() - 1);
myListToKeepMid.add(tempLeOne);
contEnd = false;
}
if(theManage.judgeBuild(tempKeeper.getX(), tempKeeper.getY() + 1))
{
theManage.setManage(tempKeeper.getX(), tempKeeper.getY() + 1, '2');
listType tempReOne =
new listType(tempKeeper.getX(), tempKeeper.getY() + 1);
myListToKeepMid.add(tempReOne);
contEnd = false;
}
if(contEnd == true)
{
myListToKeepEnd.add(tempKeeper);
}
myListToKeepMid.remove(buiDateIntOne);
}
int length = 0;
for(int i = 0; i < myListToKeepEnd.size(); i++)
{
listType keepLength = (listType)myListToKeepEnd.get(i);
if(keepLength.getX() + keepLength.getY() > length)
{
xEnd = keepLength.getX();
yEnd = keepLength.getY();
length = keepLength.getX() + keepLength.getY();
}
}
theManage.setManage(xEnd, yEnd, '4');
theManage.setManage(xNum, yNum, '3');
theManage.setX(xNum);
theManage.setY(yNum);
return theManage;
}
}
- 基于广度优先算法迷宫生成类
- 走迷宫 A*算法 广度优先算法
- 广度优先寻找迷宫!
- 基于邻接矩阵的广度优先算法
- python3.5 爬虫 基于广度优先算法
- 基于广度优先搜索的拼图游戏算法
- 算法:队列与广度优先搜索(迷宫问题)
- 广度优先搜索迷宫路径算法的实现
- C++广度优先搜索算法之走出迷宫
- C++广度优先搜索算法之迷宫问题
- C++广度优先搜索算法之走迷宫
- 深度优先算法和广度优先算法(基于邻接矩阵)
- 深度优先迷宫生成类
- 深度优先遍历之迷宫生成算法
- 迷宫问题(广度优先)
- 迷宫之广度优先搜索
- 迷宫问题-广度优先搜索
- 迷宫问题-广度优先搜索
- 努力!
- 利用instr()函数防止SQL注入攻击
- 物流配送综合管理信息系统
- SQL注入攻击的原理及其防范措施
- SMDK2440A 5.0BSP之eboot流程(作者:wogoyixikexie@gliet)
- 基于广度优先算法迷宫生成类
- Oracle Develop OpenWorld 2008 印象
- Subversion在Linux系统的安装步骤
- 跨站式SQL注入技巧
- 归档文件大小的设置
- 地图存储类
- 开始规划
- 防范Sql注入式攻击
- 广度优先算法链表节点类