/media/sda-magnetic/david/Dokumente-15/fernuni-hagen/cs-i-ii/old-cs-2-03/java-src/GameOfLife.java


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];
     
  }
}