Java 多维数组的问题
在我的家庭作业中,我需要表示宇宙中的细胞,其中“*”表示活细胞,空白(“”)表示死细胞。以下规则用于确定特定单元在下一代中的状态:Java 多维数组的问题,java,multidimensional-array,Java,Multidimensional Array,在我的家庭作业中,我需要表示宇宙中的细胞,其中“*”表示活细胞,空白(“”)表示死细胞。以下规则用于确定特定单元在下一代中的状态: 任何少于两个活邻居的活细胞都会死亡,就好像是由于人口不足造成的一样 任何有两个或三个活邻居的活细胞都会延续到下一代 任何有三个以上活邻居的活细胞都会死亡,就好像是由于人口过剩 任何有三个活邻居的死细胞都会变成活细胞,就好像是由生殖引起的一样 例如,考虑以下阵列: int[][] beehive = {{0,0,0,0,0,0}, {0,0,1,1,0,0}, {
- 任何少于两个活邻居的活细胞都会死亡,就好像是由于人口不足造成的一样
- 任何有两个或三个活邻居的活细胞都会延续到下一代
- 任何有三个以上活邻居的活细胞都会死亡,就好像是由于人口过剩
- 任何有三个活邻居的死细胞都会变成活细胞,就好像是由生殖引起的一样
int[][] beehive = {{0,0,0,0,0,0}, {0,0,1,1,0,0}, {0,1,0,0,1,0},
{0,0,1,1,0,0}, {0,0,0,0,0,0}};
int[][] toad = {{0,0,0,0,0,0}, {0,0,1,1,1,0}, {0,1,1,1,0,0}, {0,0,0,0,0,0}};
getNextGenCell(beehive, 1, 3) returns 1, while getNextGenCell(beehive, 3, 1)
returns 0.
getNextGenCell(toad, 0, 3) returns 1, while getNextGenCell(toad, 2, 3)
returns 0.
我对如何继续执行这段代码感到困惑。有什么建议吗
我的代码必须具有以下标题,其中int x表示子数组,int y表示该子数组中的元素。如果单元格在下一代中处于活动状态,则代码返回1,否则返回0
// A method that gets the cell from the next generation
public static int getNextGenCell(int[][] validUniverse, int x, int y) {
}
您首先必须确定您希望程序的逻辑如何流动。在本例中,您知道在遍历2D数组时有8种不同的情况。这些措施包括:
- 左上角
- 右上角
- 第一排的其余部分
- 左下角
- 右下角
- 最后一排的其余部分
- 阵列的左侧和右侧
- 数组的其余部分
现在只需完成其他7个案例,计算“活”或“死”单元的数量,并相应地修改阵列。如果您有任何问题,请告诉我。这里的人在回答问题时可能会有点“挑剔”。你在解释你的家庭作业方面做得很好,但是你需要解释清楚是什么让你对如何进行感到困惑。你提供的说明似乎很清楚,你不明白其中的哪一部分?它也有助于告诉人们你尝试了什么,以及为什么它没有给你想要或期望的结果。祝你好运@DanForbes我对如何开始编写代码感到困惑。我正在寻找关于如何进行的任何建议或提示。对于给定的x,y坐标,您将如何确定邻居?首先计算出算法,然后试着编写匹配的代码。@KevinO我本来想做嵌套for循环,但似乎效率太低了。@Elizabeth-我建议你在办公时间去拜访助教或你的教授,解决类似的基本问题。
if(x!=0&&y!=0&&x!=bees.length-1&&y!=bees[x].length-1&&bees[x][y+1]==1||bees[x][y-1]==1||bees[x+1][y]==1||bees[x-1][y]==1)