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] == true)
System.out.print("o ");
else
System.out.print(". ");
}
System.out.println();
}
}
void nextGeneration() {
boolean [][] nextfield = {
{ 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 }
};
int i, j;
int count;
for (i = 0; i < nextfield.length; i++)
for (j = 0; j < nextfield[i].length; j++)
nextfield [i][j] = feld[i][j];
for (i = 0; i < nextfield.length; i++) {
for (j = 0; j < nextfield[i].length; j++) {
count = 0;
if (((i-1) >= 0) && ((j-1) >= 0))
if (feld[i-1][j-1] == true)
count++;
if ((i-1) >= 0)
if (feld[i-1][j] == true)
count++;
if (((i-1) >= 0) && ((j+1) < nextfield[i].length))
if (feld[i-1][j+1] == true)
count++;
if ((j+1) < nextfield[i].length)
if (feld[i][j+1] == true)
count++;
if (((i+1) < nextfield.length) && ((j+1) < nextfield[i].length))
if (feld[i+1][j+1] == true)
count++;
if ((i+1) < nextfield.length)
if (feld[i+1][j] == true)
count++;
if (((i+1) < nextfield.length) && ((j-1) >= 0))
if (feld[i+1][j-1] == true)
count++;
if ((j-1) >= 0)
if (feld[i][j-1] == true)
count++;
if ((i == 0) || (j == 0) || (i == 4) || (j == 4))
nextfield [i][j] = false;
else if (((count == 2) || (count == 3) || (count == 8)) && (feld[i][j] == true))
nextfield [i][j] = true;
else if (((count < 2) || (count > 3)) && (feld[i][j] == true))
nextfield [i][j] = false;
else if ((count == 3) && (feld[i][j] == false))
nextfield [i][j] = true;
}
}
for (i = 0; i < nextfield.length; i++)
for (j = 0; j < nextfield[i].length; j++)
feld [i][j] = nextfield[i][j];
}
}