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