创建矩阵 Java

Creating matrices Java

我在为游戏地图设计创建矩阵时遇到问题。

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 

矩阵将是地图的蓝图。

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

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