「java山水迷宫」java 迷宫
本篇文章给大家谈谈java山水迷宫,以及java 迷宫对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
java迷宫move类意思
这个没啥含义啊,一个对象类
private int x;
private int y;
两个属性,从字面意义上说x是横坐标,y是纵坐标。
public Move(){
}无参数的构造方法
public Move(int x, int y){
this.x = x;
this.y = y;
}有参数的构造方法
下面那些get方法时用来访问对象属性的,set方法是给对象属性赋值的。
给你举个例子你就知道了
Move m1=new Move();这里声明了一个Move类的对象,调用的是无参数的构造方法,也就是说m1的x和y都是没有赋值的。但是呢,int类型默认值是0;
然后你可以通过set方法去给属性赋值m1.setX(2),然后通过get方法取值m1.getX()这个时候就能取到2了。
而有参数的构造方法就是在声明对象的时候直接赋值给元素
Move m2=new Move(1,2);这个时候你再用get方法去取,就会有x=1,y=2了,就是省掉了用set方法赋值的一步。
你还是先看看什么是对象,什么是构造函数,还有get,set方法的作用吧
用java语言控制小机器人走迷宫的算法?
我昨天刚写了个走迷宫的界面(一个初始小球,一个目标小球,随机在界面种生成障碍(迷宫图),然后初始小球移动到目标小球那),不知道是否跟你的想法一样。用的是回溯法(目前我只知道这个算法走迷宫),你可以查下。PS:我电脑没联网不能把代码给你…QQ254774042。
java怎么生成迷宫地图
//作者:zhongZw
package cn.zhongZw.model;
import java.util.ArrayList;
import java.util.Random;
public class MazeModel {
private int width = 0;
private int height = 0;
private Random rnd = new Random();
public MazeModel() {
this.width = 50; //迷宫宽度
this.height = 50; //迷宫高度
}
public int getWidth() {
return width;
}
public void setWidth(int width) {
this.width = width;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
public MazeModel(int width, int height) {
super();
this.width = width;
this.height = height;
}
public ArrayList MazePoint getMaze() {
ArrayList MazePoint maze = new ArrayList MazePoint ();
for (int h = 0; h height; h++) {
for (int w = 0; w width; w++) {
MazePoint point = new MazePoint(w, h);
maze.add(point);
}
}
return CreateMaze(maze);
}
private ArrayList MazePoint CreateMaze(ArrayList MazePoint maze) {
int top = 0;
int x = 0;
int y = 0;
ArrayList MazePoint team = new ArrayList MazePoint ();
team.add(maze.get(x + y * width));
while (top = 0) {
int[] val = new int[] {
-1, -1, -1, -1
};
int times = 0;
boolean flag = false;
MazePoint pt = (MazePoint) team.get(top);
x = pt.getX();
y = pt.getY();
pt.visted = true;
ro1: while (times 4) {
int dir = rnd.nextInt(4);
if (val[dir] == dir)
continue;
else
val[dir] = dir;
switch (dir) {
case 0: // 左边
if ((x - 1) = 0 maze.get(x - 1 + y * width).visted == false) {
maze.get(x + y * width).setLeft();
maze.get(x - 1 + y * width).setRight();
team.add(maze.get(x - 1 + y * width));
top++;
flag = true;
break ro1;
}
break;
case 1: // 右边
if ((x + 1) width maze.get(x + 1 + y * width).visted == false) {
maze.get(x + y * width).setRight();
maze.get(x + 1 + y * width).setLeft();
team.add(maze.get(x + 1 + y * width));
top++;
flag = true;
break ro1;
}
break;
case 2: // 上边
if ((y - 1) = 0 maze.get(x + (y - 1) * width).visted == false) {
maze.get(x + y * width).setUp();
maze.get(x + (y - 1) * width).setDown();
team.add(maze.get(x + (y - 1) * width));
top++;
flag = true;
break ro1;
}
break;
case 3: // 下边
if ((y + 1) height maze.get(x + (y + 1) * width).visted == false) {
maze.get(x + y * width).setDown();
maze.get(x + (y + 1) * width).setUp();
team.add(maze.get(x + (y + 1) * width));
top++;
flag = true;
break ro1;
}
break;
}
times += 1;
}
if (!flag) {
team.remove(top);
top -= 1;
}
}
return maze;
}
}
迷宫
[java] view plain copy
//作者:zhongZw
//邮箱:zhong317@126.com
package cn.zhongZw.model;
import java.util.*;
import java.lang.*;
public class MazePoint {
private int left = 0;
private int right = 0;
private int up = 0;
private int down = 0;
private int x;
private int y;
public boolean visted;
public MazePoint(int x, int y) {
this.x = x;
this.y = y;
}
public int getLeft() {
return left;
}
public void setLeft() {
this.left = 1;
}
public int getRight() {
return right;
}
public void setRight() {
this.right = 1;
}
public int getUp() {
return up;
}
public void setUp() {
this.up = 1;
}
public int getDown() {
return down;
}
public void setDown() {
this.down = 1;
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
}
关于java山水迷宫和java 迷宫的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-24,除非注明,否则均为
原创文章,转载请注明出处。