Artikelformat

Frohe Weihnachten

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

2 Kommentare

    • Wenn auch etwas spät: Ja, irgendwie hat sich einiges in Richtung Java verschoben …

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.