public class GameOfLife {
boolean[][] feld = {
{ false, false, false, false, false },
{ false, false, true, false, false },
{ false, false, true, false, false },
{ false, false, true, false, false },
{ false, false, false, false, false } };
public static void main(String[] args) {
GameOfLife myGame = new GameOfLife();
for (int i = 0; i < 10; i++) {
myGame.nextGeneration();
myGame.print();
System.out.println();
}
}
void print() {
for (int i = 0; i < feld.length; i++) {
for (int j = 0; j < feld[i].length; j++) {
if (feld[i][j]) {
System.out.print("o ");
} else {
System.out.print(". ");
}
}
System.out.println();
}
}
void nextGeneration() {
boolean[][] des = new boolean[feld.length][feld[0].length];
int i;
int j;
int count;
for (i = 0; i < feld.length; i++)
for (j = 0; j < feld[i].length; j++)
des[i][j] = false;
for (i = 1; i < feld.length-1; i++) {
for (j = 1; j < feld[i].length-1; j++) {
count = 0;
if (feld[i][j-1])
count++;
if (feld[i][j])
count++;
if (feld[i][j+1])
count++;
if (feld[i-1][j-1])
count++;
if (feld[i-1][j])
count++;
if (feld[i-1][j+1])
count++;
if (feld[i+1][j-1])
count++;
if (feld[i+1][j])
count++;
if (feld[i+1][j+1])
count++;
if ((feld[i][j]) && ((count == 2) || (count == 3)))
des[i][j] = true;
else if ((!feld[i][j]) && (count == 3))
des[i][j] = true;
else
des[i][j] = false;
}
}
for (i = 0; i < feld.length; i++)
for (j = 0; j < feld[i].length; j++)
feld[i][j] = des[i][j];
}
}