我无法为游戏地图设计创建矩阵。
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将成为地图的蓝图。
答案 0 :(得分:3)
您正在使用--width
和--height
。从预期结果看,您希望1在第一列和最后一列以及最后一行中。正如评论者所暗示的那样,--width
不仅会返回宽度减1,还会将宽度减少1.您可能需要width - 1
和height - 1
。
答案 1 :(得分:0)
像M. Aroosi所说的那样,尝试将--width更改为width-1,将-height更改为height-1。您不想修改参数的值。我认为正在发生的事情是,每次经过循环时,值都会随宽度和高度而变化。