public class Haupt { public static void main() { int width = 33; int height = 15; boolean[] zeile = new boolean[width]; boolean[] nextz = new boolean[width]; // zeile besetzen for(int i = 0; i < zeile.length; i++) { zeile[i] = false; } zeile[width/2] = true; // nur ein Startpixel for(int z = 0; z <height; z++) { zeileAusgeben(zeile); // Folgezeile komplett auf false setzen for(int i = 0; i < zeile.length; i++) { nextz[i] = false; } // eine Folgezeile berechnen // A B C D E F G H //xxx xx. x.x x.. .xx .x. ..x ... // . x . x x . x . for(int i = 1; i < zeile.length-1; i++) { if(zeile[i-1] && zeile[i] && zeile[i+1]) { nextz[i] = false; } if(zeile[i-1] && zeile[i] && !zeile[i+1]) { nextz[i] = true; } if(zeile[i-1] && !zeile[i] && zeile[i+1]) { nextz[i] = false; } if(zeile[i-1] && !zeile[i] && !zeile[i+1]) { nextz[i] = true; } if(!zeile[i-1] && zeile[i] && zeile[i+1]) { nextz[i] = true; } if(!zeile[i-1] && zeile[i] && !zeile[i+1]) { nextz[i] = false; } if(!zeile[i-1] && !zeile[i] && zeile[i+1]) { nextz[i] = true; } if(!zeile[i-1] && !zeile[i] && !zeile[i+1]) { nextz[i] = false; } } // Folgezeile umkopieren for(int i = 0; i < zeile.length; i++) { zeile[i] = nextz[i]; } } } public static void zeileAusgeben(boolean[] z) { String szeile = ""; for(int i = 0; i < z.length; i++) { if(z[i] == true) { szeile = szeile + "X"; } else { szeile = szeile + "."; } } System.out.println(szeile); } }