【问题标题】:(Java) How can I store my x and y values to use them outside of for loops?(Java) 如何存储我的 x 和 y 值以在 for 循环之外使用它们?
【发布时间】:2020-01-12 03:55:19
【问题描述】:

我正在处理 3 上编写 Conway 的生命游戏,我想存储 x 和 y,以便方块不会立即改变,但我不知道如何存储它以供以后使用。任何帮助表示赞赏!

void keyPressed() {

  for (int x = 0; x < 30; x++) {

    for (int y = 0; y < 30; y++) {

     int numNeighbours = numNeighbours(x,y);

     if (cells[x][y] == true) {

       if (numNeighbours > 3 || numNeighbours <= 1) { //underpopulation or overpopulation

       }
     }

     else if (cells[x][y] == false) {

       if (numNeighbours == 3) {

       }
     }
}
}
}

【问题讨论】:

    标签: java for-loop conways-game-of-life storing-data


    【解决方案1】:

    根据我对您的代码(和生命游戏)的理解,您不需要存储xy。您实际需要做的是存储单元格更改状态的(x, y) 对。

    您可以通过创建对并将它们添加到列表中来做到这一点。

    但另一个想法是使用代表下一代游戏的第二个数组并将所有新值放在那里;例如

    for (int x = 0; x < 30; x++) {
        for (int y = 0; y < 30; y++) {
            int numNeighbours = numNeighbours(x,y);
            if (cells[x][y] == true) {
                if (numNeighbours > 3 || numNeighbours <= 1) { 
                    cellsNext[x][y] = false;
                } else {
                    cellsNext[x][y] = true;
                }   
            }
            else if (cells[x][y] == false) {
                if (numNeighbours == 3) { 
                    cellsNext[x][y] = true;
                } else {
                    cellsNext[x][y] = false;
                }   
            }
        }
    }
    

    注意:这可以简化/写得更好,但我已经按照上面的方式写了,这样你就可以清楚地看到我做了什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-20
      • 1970-01-01
      • 1970-01-01
      • 2013-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多