【问题标题】:Creating matrices Java创建矩阵 Java
【发布时间】:2018-01-27 22:16:30
【问题描述】:

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

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改变width 的值。它的意思与width = width - 1 大致相同。你实际上应该写的是width-1(当然height也是如此)
  • “矩阵”是单数; "matricies" 是复数形式。

标签: java arrays matrix greenfoot


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2014-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-31
      • 2020-07-09
      相关资源
      最近更新 更多