创建矩阵 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 - 1
和 height - 1
。
如 M. Aroosi 所说,尝试将 --width 更改为 width-1 并将 --height 更改为 height-1。您不想修改参数的值。我认为发生的事情是每次循环时,宽度和高度的值都会发生变化。
我在为游戏地图设计创建矩阵时遇到问题。
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 - 1
和 height - 1
。
如 M. Aroosi 所说,尝试将 --width 更改为 width-1 并将 --height 更改为 height-1。您不想修改参数的值。我认为发生的事情是每次循环时,宽度和高度的值都会发生变化。