我不知道如何很好地说出标题,但这是我的问题: 我正在用Java制作一个迷宫游戏,我想创建一个类,这样我就可以轻松设置块:
addBlock(32, 32)
第一个和第二个数字是应该放置块的x和y坐标。 我是Java的初学者,来自Python。
答案 0 :(得分:2)
你可以像这样创建一个基本的pojo:
public class Block {
private int x;
private int y;
public Block(int x, int y) {
this.x = x;
this.y = y;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
}
然后,您可以创建一个Maze
类,例如:
public class Maze {
public void addBlock(Block block) {
// your logic here
}
}
用于存储Block
对象的数据结构取决于具体情况。我建议HashMap
根据坐标(如果形状不规则)或数组/ String
使用List
键。
HashMap
版本:
private Map<String, Block> blocks; // ...
public void addBlock(Block block) {
blocks.put(block.getX()+","+block.getY(), block);
}
数组版本:
private Block[][] blocks; // ...
public void addBlock(Block block) {
blocks[block.getX()][block.getY()] = block;
}
您可以看到HashMap
版本的优势在于它是动态的。您必须使用默认值初始化数组。
答案 1 :(得分:0)
您可能想要一些高度封装的解决方案吗?
public class Maze {
private class Block {
private int x;
private int y;
public Block(int x, int y) {
this.x = x;
this.y = y;
}
}
private List<Block> blocks = new ArrayList<Block>();
public Maze addBlock(int x, int y) {
this.blocks.add(new Block(x, y));
return this;
}
}