Game of Life

Woohoo, mein erstes Game of Life.🙂
Ich lerne gerade objektorientiertes Programmieren mit Java. Eine Aufgabe war dieses Game of Life zu erstellen. Okay ist jetzt noch nicht so übermäßig objektorientiert, aber egal.😉

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[][] blueprint = new boolean[feld.length][feld[0].length];
        
        // aktuelles Feld in das Feld blueprint kopieren
        for (int i = 0; i < feld.length; i++) {
            for (int j = 0 ; j < feld[i].length; j++) {
                if (feld[i][j] == true) {
                    blueprint[i][j] =  true;
                } else {
                    blueprint[i][j] =  false;
                }
            }
        }
        
        for (int i = 2; i < feld.length; i++) {
            for (int j = 2 ; j < feld[i].length; j++) {
                int alive = 0;
                
                // blueprint[i-1/j-1] und seine Nachbarn werden auf Leben untersucht
                for (int a = 0; a < 3; a++) {
                    for (int b = 0; b < 3; b++) {
                        if (blueprint[i - a][j - b] == true) {
                            alive = alive + 1;    
                        }
                    }
                }
                
                // 3 Lebende heißt: Zelle lebt + 2 Nachbarn oder Zelle Tod + 3 Nachbarn
                if (alive == 3) {
                    alive = alive + 1;
                }
                
                // 4 Lebende heißt: Zelle lebt + 3 Nachbarn oder 3 Lebende + 1 
                if (alive == 4) {
                    feld[i - 1][j - 1] = true;
                } else {
                    feld[i - 1][j - 1] = false;
                }
            }
        }
    }
}

~ von tofuzius - April 9, 2013.

2 Antworten to “Game of Life”

  1. äh ich kenn nur game of thrones🙂 was ist das? false false false?? als nicht programmierungsmensch würde ich mir hier mehr erklärung wünschen🙂

  2. AH okay auf meinem lila monitor habe ich den link nich erkannt🙂

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

 
%d Bloggern gefällt das: