问题描述
- 生命的游戏neighborCount(int row, int col)问题
-
求大神告知neighborCount还有哪里不对呢?
public class GameOfLife {
private String[][] Society;
private int Rows;
private int Columns;public GameOfLife(int rows, int cols) { Society = new String[rows][cols]; Rows = Society.length; Columns = Society[0].length; } public int numberOfRows() { return Rows; } public int numberOfColumns() { return Columns; } public void growCellAt(int row, int col) { Society[row][col] = "O"; } public boolean cellAt(int row, int col) { if(Society[row][col] != null){ return true; }else{ return false; } } public String toString() { String text = ""; for(int i = 0; i < Society.length; i++ ){ for(int j = 0; j < Society[0].length; j++ ){ if(Society[i][j] == null) Society[i][j] = "."; System.out.print(Society[i][j]); } System.out.println(); } return text; } public int neighborCount(int row, int col) { int count = 0; // up and left if (Society[(row - 1 + Society.length) % Society.length][(col - 1 + Society[0].length) % Society[0].length] == "O") { count++; } // up if (Society[(row - 1 + Society.length) % Society.length][col] == "O") { count++; } // up and right if (Society[(row - 1 + Society.length) % Society.length][(col + 1 + Society[0].length) % Society[0].length] == "O") { count++; } // right if (Society[row][(col + 1 + Society[0].length) % Society[0].length] == "O") { count++; } // left if (Society[row][(col - 1 + Society[0].length) % Society[0].length] == "O") { count++; } // down and right if (Society[(row + 1 + Society.length) % Society.length][(col + 1 + Society[0].length) % Society[0].length] == "O") { count++; } // down if (Society[(row + 1 + Society.length) % Society.length][col] == "O"){ count++; } // down and left if (Society[(row + 1 + Society.length) % Society.length][(col - 1 + Society[0].length) % Society[0].length] == "O") { count++; } return count; } public void update() { for (int i = 0; i < Society.length - 1; i++) { for (int j = 0; j < Society[i].length - 1; j++) { if(neighborCount(i,j) ==3){ Society[i][j] = "O"; } if(neighborCount(i,j) ==2){ Society[i][j] = Society[i][j]; } if(neighborCount(i,j) >3 || neighborCount(i,j) <2){ Society[i][j] = "."; } } } }
}
时间: 2024-09-23 12:50:08