创建矩阵Java

时间:2018-01-27 22:16:31

标签: java arrays matrix greenfoot

我无法为游戏地图设计创建矩阵。

void prepareMatrix(int width, int height)
{
    room = new int[height][width];
    for(int i = 0; i < height; i++)
    {
        for(int j = 0; j < width; j++)
        {
            if(i < height/4)
            {
                room[i][j] = 2;
            }
            else if(j == 0 || j == --width)
            {
                room[i][j] = 1;
            }
            else if(i == --height)
            {
                room[i][j] = 1;
            }
            else
            {
                room[i][j] = 0;
            }
        }
    }
}

我想创建这样的东西:(1- Wall1,2- wall2,0-floor)

2 2 2 2 2 2
2 2 2 2 2 2
1 0 0 0 0 1
1 0 0 0 0 1
1 0 0 0 0 1
1 1 1 1 1 1

我明白了:

2 2 2 2 2 2 2 2 2 2 
2 2 2 2 2 2 2 2 2 2 
1 0 0 0 0 1 0 0 0 0 
1 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 

matrice将成为地图的蓝图。

2 个答案:

答案 0 :(得分:3)

您正在使用--width--height。从预期结果看,您希望1在第一列和最后一列以及最后一行中。正如评论者所暗示的那样,--width不仅会返回宽度减1,还会将宽度减少1.您可能需要width - 1height - 1

答案 1 :(得分:0)

像M. Aroosi所说的那样,尝试将--width更改为width-1,将-height更改为height-1。您不想修改参数的值。我认为正在发生的事情是,每次经过循环时,值都会随宽度和高度而变化。