/media/sda-magnetic/david/Extern-Magnetic-2022-06-29/Extern01/Dokumente-2020-11-16/disk10-ab-2020-01-10/02-debian-pc2-work/informatik/java-src/java-2020-10-14/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] == 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];
        
    }
}