Es ist wieder ein Jahr rum und von daher bleibt mir nichts anderes übrig als allen Lesern, Mit-Bloggern und allen die ich vergessen habe, ein frohes Weihnachtsfest und einen guten Rutsch ins Jahr 2015 zu wünschen.
X
XXX
XXXXX
XXXOXXX
OXOXOXOXX
OOXOOXXXXXX
XXOXOXXXXXXXX
XXXXOOXXXXXXXOX
XXXXXOXOXOXXXXXXX
XXXXXXXXXXXXXXXXXXX
X
X
Und hier gibt es dazu den Quellcode – schließlich geht es ja doch auch oder vor allem an Weihnachten um den Spaß an der Technik:
package de.phpmonkeys.xmas2014;
import java.io.IOException;
import sun.misc.BASE64Decoder;
public class XmasTree {
public static final String DEFAULT_ENCODING = "UTF-8";
static BASE64Decoder dec = new BASE64Decoder();
public static void main(String[] args) {
XmasTree tree = new XmasTree();
tree.draw(10);
}
public void draw(int n) {
String tree = triangle(n);
tree += trunk(2, n);
tree += addText("RnJvaGUgV2VpaG5hY2h0ZW4NCiAgdW5kIGVpbiBzY2jDtm5lcw0KICAgIG5ldWVzIEphaHI=");
System.out.println(tree);
}
private String triangle(int max) {
String triangleText = "";
for (int i = 0; i < max; i++) {
for (int j = 0; j < max - i - 1; j++) {
triangleText += " ";
}
for (int j = 0; j < i * 2 + 1; j++) {
triangleText += (isCTB() ? "O" : "X");
}
triangleText += '\n';
}
return triangleText;
}
private String trunk(int height, int max) {
String trunkText = "";
for (int i = 0; i < height; i++) {
for (int j = 0; j < max - 1; j++) {
trunkText += " ";
}
trunkText += "X\n";
}
return trunkText;
}
private boolean isCTB() {
return (Math.random() > 0.8);
}
public String base64decode(String text) {
try {
return new String(dec.decodeBuffer(text), DEFAULT_ENCODING);
} catch (IOException e) {
return null;
}
}
private String addText(String text) {
return "\n" + base64decode(text) + "\n";
}
}
