java - 创建矩阵 Java

标签 java arrays matrix greenfoot

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

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 

矩阵将是 map 的蓝图。

最佳答案

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

关于java - 创建矩阵 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48481102/

相关文章:

arrays - 字符串元胞数组 - 在 Matlab 中检查元素

python - 从动态字典创建矩阵

java - Eclipse 2019-09中光标随机消失并且有时停止写入

java - 在 docker 镜像中的 docker 上安装 Java

java - JFreeChart 交互式图表编辑 : transforming mouse coordinates into series values

java - 将二维数组拆分为多个较小数组的数组?

c - 为什么我的 C 程序要求的输入多于应有的输入?额外的输入甚至没有做任何事情

java - 在 JTextfield 中保留键盘布局?

python - 从 python 中的 .dat 文件导入数组

javascript - 为什么 jQuery 的 $.makeArray 忽略字符串键?