Skip to main content
Code Review

Return to Question

Question Protected by Community Bot
added 663 characters in body; edited title
Source Link
Jamal
  • 35.2k
  • 13
  • 134
  • 238

Game of Life -in Java

class GameOfLife {
 static int countSurrounding(int[][] board, int a, int b) {
 int count = 0;
 int[][] surrounding = {{a - 1, b - 1},
 {a - 1, b },
 {a - 1, b + 1},
 {a , b - 1},
 {a , b + 1},
 {a + 1, b - 1},
 {a + 1, b },
 {a + 1, b + 1}};
 for (int i[]: surrounding) {
 try {
 if (board[i[0]][i[1]] == 1) {
 count++;
 }
 }
 catch (ArrayIndexOutOfBoundsException e) {}
 }
 return count;
 }
 
 static void printBoard(int[][] board) {
 for (int[] i: board) {
 for (int j: i) {
 if (j == 1) {
 System.out.print("#");
 }
 else {
 System.out.print(".");
 }
 }
 System.out.println();
 }
 System.out.println();
 }
 
 public static void main(String[] args) {
 int[][] nextBoard = {{0, 0, 0, 0, 0, 0, 0, 0, 0},
 {0, 0, 0, 1, 0, 0, 0, 0, 0},
 {0, 1, 0, 1, 0, 0, 0, 0, 0},
 {0, 0, 1, 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}};
 int[][] board = new int[nextBoard.length][nextBoard[0].length];
 for (int gen = 0; gen < 25; gen++) {
 for (int i = 0; i < nextBoard.length; i++) {
 for (int j = 0; j < nextBoard[i].length; j++) {
 board[i][j] = nextBoard[i][j];
 }
 }
 printBoard(board);
 for (int i = 0; i < board.length; i++) {
 for (int j = 0; j < board[i].length; j++) {
 if (board[i][j] == 1 && !(countSurrounding(board, i, j) == 2 || countSurrounding(board, i, j) == 3)) {
 nextBoard[i][j] = 0;
 }
 else if (board[i][j] == 0 && countSurrounding(board, i, j) == 3) {
 nextBoard[i][j] = 1;
 }
 }
 }
 }
 }
}

How can I improve and optimize it?

Thanks.

Game of Life - Java

class GameOfLife {
 static int countSurrounding(int[][] board, int a, int b) {
 int count = 0;
 int[][] surrounding = {{a - 1, b - 1},
 {a - 1, b },
 {a - 1, b + 1},
 {a , b - 1},
 {a , b + 1},
 {a + 1, b - 1},
 {a + 1, b },
 {a + 1, b + 1}};
 for (int i[]: surrounding) {
 try {
 if (board[i[0]][i[1]] == 1) {
 count++;
 }
 }
 catch (ArrayIndexOutOfBoundsException e) {}
 }
 return count;
 }
 
 static void printBoard(int[][] board) {
 for (int[] i: board) {
 for (int j: i) {
 if (j == 1) {
 System.out.print("#");
 }
 else {
 System.out.print(".");
 }
 }
 System.out.println();
 }
 System.out.println();
 }
 
 public static void main(String[] args) {
 int[][] nextBoard = {{0, 0, 0, 0, 0, 0, 0, 0, 0},
 {0, 0, 0, 1, 0, 0, 0, 0, 0},
 {0, 1, 0, 1, 0, 0, 0, 0, 0},
 {0, 0, 1, 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}};
 int[][] board = new int[nextBoard.length][nextBoard[0].length];
 for (int gen = 0; gen < 25; gen++) {
 for (int i = 0; i < nextBoard.length; i++) {
 for (int j = 0; j < nextBoard[i].length; j++) {
 board[i][j] = nextBoard[i][j];
 }
 }
 printBoard(board);
 for (int i = 0; i < board.length; i++) {
 for (int j = 0; j < board[i].length; j++) {
 if (board[i][j] == 1 && !(countSurrounding(board, i, j) == 2 || countSurrounding(board, i, j) == 3)) {
 nextBoard[i][j] = 0;
 }
 else if (board[i][j] == 0 && countSurrounding(board, i, j) == 3) {
 nextBoard[i][j] = 1;
 }
 }
 }
 }
 }
}

How can I improve and optimize it?

Thanks.

Game of Life in Java

class GameOfLife {
 static int countSurrounding(int[][] board, int a, int b) {
 int count = 0;
 int[][] surrounding = {{a - 1, b - 1},
 {a - 1, b },
 {a - 1, b + 1},
 {a , b - 1},
 {a , b + 1},
 {a + 1, b - 1},
 {a + 1, b },
 {a + 1, b + 1}};
 for (int i[]: surrounding) {
 try {
 if (board[i[0]][i[1]] == 1) {
 count++;
 }
 }
 catch (ArrayIndexOutOfBoundsException e) {}
 }
 return count;
 }
 
 static void printBoard(int[][] board) {
 for (int[] i: board) {
 for (int j: i) {
 if (j == 1) {
 System.out.print("#");
 }
 else {
 System.out.print(".");
 }
 }
 System.out.println();
 }
 System.out.println();
 }
 
 public static void main(String[] args) {
 int[][] nextBoard = {{0, 0, 0, 0, 0, 0, 0, 0, 0},
 {0, 0, 0, 1, 0, 0, 0, 0, 0},
 {0, 1, 0, 1, 0, 0, 0, 0, 0},
 {0, 0, 1, 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}};
 int[][] board = new int[nextBoard.length][nextBoard[0].length];
 for (int gen = 0; gen < 25; gen++) {
 for (int i = 0; i < nextBoard.length; i++) {
 for (int j = 0; j < nextBoard[i].length; j++) {
 board[i][j] = nextBoard[i][j];
 }
 }
 printBoard(board);
 for (int i = 0; i < board.length; i++) {
 for (int j = 0; j < board[i].length; j++) {
 if (board[i][j] == 1 && !(countSurrounding(board, i, j) == 2 || countSurrounding(board, i, j) == 3)) {
 nextBoard[i][j] = 0;
 }
 else if (board[i][j] == 0 && countSurrounding(board, i, j) == 3) {
 nextBoard[i][j] = 1;
 }
 }
 }
 }
 }
}

How can I improve and optimize it?

Added game-of-life tag
Link
200_success
  • 145.5k
  • 22
  • 190
  • 479
deleted 8 characters in body
Source Link
LazySloth13
  • 1.3k
  • 5
  • 19
  • 37
class GameOfLife {
 static int countSurrounding(int[][] board, int a, int b) {
 int count = 0;
 int[][] surrounding = {{a - 1, b - 1},
 {a - 1, b },
 {a - 1, b + 1},
 {a , b - 1},
 {a , b + 1},
 {a + 1, b - 1},
 {a + 1, b },
 {a + 1, b + 1}};
 for (int i[]: surrounding) {
 try {
 if (board[i[0]][i[1]] == 1) {
 count++;
 }
 }
 catch (Exception ArrayIndexOutOfBoundsException e) {}
 }
 return count;
 }
 
 static void printBoard(int[][] board) {
 for (int[] i: board) {
 for (int j: i) {
 if (j == 1) {
 System.out.print("#");
 }
 else {
 System.out.print(".");
 }
 }
 System.out.println();
 }
 System.out.println();
 }
 
 public static void main(String[] args) {
 int[][] nextBoard = {{0, 0, 0, 0, 0, 0, 0, 0, 0},
 {0, 0, 0, 1, 0, 0, 0, 0, 0},
 {0, 1, 0, 1, 0, 0, 0, 0, 0},
 {0, 0, 1, 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}};
 int[][] board = new int[nextBoard.length][nextBoard[0].length];
 for (int gen = 0; gen < 25; gen++) {
 for (int i = 0; i < nextBoard.length; i++) {
 for (int j = 0; j < nextBoard[i].length; j++) {
 board[i][j] = nextBoard[i][j];
 }
 }
 printBoard(board);
 for (int i = 0; i < board.length; i++) {
 for (int j = 0; j < board[i].length; j++) {
 if (board[i][j] == 1 && !(countSurrounding(board, i, j) == 2 || countSurrounding(board, i, j) == 3)) {
 nextBoard[i][j] = 0;
 }
 else if (board[i][j] == 0 && countSurrounding(board, i, j) == 3) {
 nextBoard[i][j] = 1;
 }
 }
 }
 }
 }
}
class GameOfLife {
 static int countSurrounding(int[][] board, int a, int b) {
 int count = 0;
 int[][] surrounding = {{a - 1, b - 1},
 {a - 1, b },
 {a - 1, b + 1},
 {a , b - 1},
 {a , b + 1},
 {a + 1, b - 1},
 {a + 1, b },
 {a + 1, b + 1}};
 for (int i[]: surrounding) {
 try {
 if (board[i[0]][i[1]] == 1) {
 count++;
 }
 }
 catch (Exception ArrayIndexOutOfBoundsException) {}
 }
 return count;
 }
 
 static void printBoard(int[][] board) {
 for (int[] i: board) {
 for (int j: i) {
 if (j == 1) {
 System.out.print("#");
 }
 else {
 System.out.print(".");
 }
 }
 System.out.println();
 }
 System.out.println();
 }
 
 public static void main(String[] args) {
 int[][] nextBoard = {{0, 0, 0, 0, 0, 0, 0, 0, 0},
 {0, 0, 0, 1, 0, 0, 0, 0, 0},
 {0, 1, 0, 1, 0, 0, 0, 0, 0},
 {0, 0, 1, 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}};
 int[][] board = new int[nextBoard.length][nextBoard[0].length];
 for (int gen = 0; gen < 25; gen++) {
 for (int i = 0; i < nextBoard.length; i++) {
 for (int j = 0; j < nextBoard[i].length; j++) {
 board[i][j] = nextBoard[i][j];
 }
 }
 printBoard(board);
 for (int i = 0; i < board.length; i++) {
 for (int j = 0; j < board[i].length; j++) {
 if (board[i][j] == 1 && !(countSurrounding(board, i, j) == 2 || countSurrounding(board, i, j) == 3)) {
 nextBoard[i][j] = 0;
 }
 else if (board[i][j] == 0 && countSurrounding(board, i, j) == 3) {
 nextBoard[i][j] = 1;
 }
 }
 }
 }
 }
}
class GameOfLife {
 static int countSurrounding(int[][] board, int a, int b) {
 int count = 0;
 int[][] surrounding = {{a - 1, b - 1},
 {a - 1, b },
 {a - 1, b + 1},
 {a , b - 1},
 {a , b + 1},
 {a + 1, b - 1},
 {a + 1, b },
 {a + 1, b + 1}};
 for (int i[]: surrounding) {
 try {
 if (board[i[0]][i[1]] == 1) {
 count++;
 }
 }
 catch (ArrayIndexOutOfBoundsException e) {}
 }
 return count;
 }
 
 static void printBoard(int[][] board) {
 for (int[] i: board) {
 for (int j: i) {
 if (j == 1) {
 System.out.print("#");
 }
 else {
 System.out.print(".");
 }
 }
 System.out.println();
 }
 System.out.println();
 }
 
 public static void main(String[] args) {
 int[][] nextBoard = {{0, 0, 0, 0, 0, 0, 0, 0, 0},
 {0, 0, 0, 1, 0, 0, 0, 0, 0},
 {0, 1, 0, 1, 0, 0, 0, 0, 0},
 {0, 0, 1, 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}};
 int[][] board = new int[nextBoard.length][nextBoard[0].length];
 for (int gen = 0; gen < 25; gen++) {
 for (int i = 0; i < nextBoard.length; i++) {
 for (int j = 0; j < nextBoard[i].length; j++) {
 board[i][j] = nextBoard[i][j];
 }
 }
 printBoard(board);
 for (int i = 0; i < board.length; i++) {
 for (int j = 0; j < board[i].length; j++) {
 if (board[i][j] == 1 && !(countSurrounding(board, i, j) == 2 || countSurrounding(board, i, j) == 3)) {
 nextBoard[i][j] = 0;
 }
 else if (board[i][j] == 0 && countSurrounding(board, i, j) == 3) {
 nextBoard[i][j] = 1;
 }
 }
 }
 }
 }
}
Source Link
LazySloth13
  • 1.3k
  • 5
  • 19
  • 37
Loading
lang-java

AltStyle によって変換されたページ (->オリジナル) /