所以即時編程康威在GUI形式的生活遊戲。輸出不正確,我不知道爲什麼。這是處理「下一代」的代碼。編程康威的生命遊戲
for(int i=0; i < ROW; i++) {
for(int j=0; j < COL; j++) {
if(i > 0 && i < ROW-1 && j > 0 && j < COL -1) {
if(grid.getButton(i-1, j-1).getBackground() == Color.BLUE) liveNeighbor++;
if(grid.getButton(i-1, j).getBackground() == Color.BLUE) liveNeighbor++;
if(grid.getButton(i-1, j+1).getBackground() == Color.BLUE) liveNeighbor++;
if(grid.getButton(i, j-1).getBackground() == Color.BLUE) liveNeighbor++;
if(grid.getButton(i, j+1).getBackground() == Color.BLUE) liveNeighbor++;
if(grid.getButton(i+1, j-1).getBackground() == Color.BLUE) liveNeighbor++;
if(grid.getButton(i+1, j).getBackground() == Color.BLUE) liveNeighbor++;
if(grid.getButton(i+1, j+1).getBackground() == Color.BLUE) liveNeighbor++;
if(grid.getButton(i, j).getBackground() == Color.WHITE) {
if(liveNeighbor == 3)
newGrid.getButton(i, j).setBackground(Color.BLUE);
} else {
if(liveNeighbor > 3 || liveNeighbor < 2)
newGrid.getButton(i, j).setBackground(Color.WHITE);
}
liveNeighbor=0;
}
}
}
也許我錯過了一些東西,但我很確定這是正確的。有什麼建議麼?
btw,藍色是活的,白色是死的。 getButton(i,j)方法也從2d數組列表[i] [j]中獲取JButton。 grid和newGrid是GridLayout窗體中的自定義JPanel,並添加了JButton。 – user1459976
我看到你處理出生病例,但死亡病例呢? –