我想用Java编写一个pacmanstyle迷宫游戏。
对于迷宫,我正在使用属性文件,其中坐标存储(即x = 1,y = 5 - > wall)作为字符串,格式如下:79,13=0 79,12=0 79,11=0
。
我想使用二维数组创建mazegrid:int [][] maze
。
我知道如何加载属性文件。然而我的问题是,我不知道如何首先从属性中提取字符串变量,其次是填充数组的正确方法。
public final class Labyrinth {
private int i;
private int j;
private static int [][] maze;
private String p;
private String l;
public void setMaze(int x, int y){
x = this.i;
y = this.j;
}
public static int[][] getMaze(){
return maze;
}
public Labyrinth(int rows, int cols) throws IOException{
try (FileInputStream in = new FileInputStream("level.properties")) {
Properties p1 = new Properties();
p1.load(in);
p = p1.getProperty("Height");
l = p1.getProperty("Width");
cols = parseInt(p);
rows = parseInt(l);
maze = new int[rows][cols];
for (i=0; i < rows; i++){
for(j=0; j < cols; j++){
setMaze(parseInt(p1.getProperty('ValueX,ValueY')),
parseInt(p1.getProperty('ValueX,ValueY')));
}
}
}
}
}
任何有益的想法都将受到高度赞赏!
答案 0 :(得分:1)
我不知道如何首先从.property中提取字符串变量,其次是填充数组的正确方法。
提取字符串变量是什么意思?属性文件只是键值对的列表。在您的情况下,键是x,y
,并且该值显然表示迷宫中的某个对象。
您可以尝试阅读这样的键:
for (i = 0; i < rows; i++) {
for(j = 0; j < cols; j++) {
int value = parseInt(p1.getProperty(i + "," + j); // Get the value of (i,j)
maze[i][j] = value; // Assign the value to the maze
}
}