Zum Hauptinhalt springen

text-it Weihnachtsgimmick

Bauen Sie sich Ihr eigenes Weihnachtsbäumchen!

1. Einfach nachfolgenden Code in einen JAVA Editor kopieren – z.B. Online Compiler: jdoodle.com
2. Compiler ausführen (Execute) und schon leuchtet das Weihnachtsbäumchen in den Ergebnissen auf.
3. Bäumchen in eine Word-Datei kopieren, Schrift auf Lucida Console (9 pt) ändern und weiterschmücken.

Tipp für Fortgeschrittene: text-it durch Ihren (Firmen-)Namen ersetzen (7 Zeichen) – gleich wird es persönlicher.
Tipp für Tüftler: Für die kürzere, längere oder zusammengesetzte Eingabe von Namen Zeile 8 fixen.

Frohes Schaffen!

public class Weihnachtskarte {
    private static int maxWidth = 1;

    public static void main(String[] args) {
        int size = 66;
        int treeSize = 0;
        String greeting = "text-it wünscht frohe Weihnachten";
        for (int lineNum = 0; lineNum < size / 2 + 7; lineNum++) {
            if (lineNum < size / 2) {
                String greetingText = greeting.substring(0, size / 2 - lineNum);
                System.out.print(greetingText);
                System.out.print('/');
                treeSize = printMiddle(size, size / 2 - lineNum, treeSize);
                System.out.print('\\');
                System.out.print(greetingText);
            } else {
                if (lineNum == size / 2) {
                    treeSize = -1;
                }
                String greetingText = greeting.substring(0, lineNum + 1 - size / 2);
                System.out.print(greetingText);
                System.out.print('\\');
                treeSize = printMiddle(size, lineNum + 1 - size / 2, treeSize);
                System.out.print('/');
                System.out.print(greetingText);
            }
            System.out.println();
        }
    }

    private static int printMiddle(int size, int sideLength, int treeSize) {
        int middlePart = size - 2 * sideLength + 1;
        if (treeSize == 0) {
            if (middlePart == 9) {
                treeSize = 1;
            }
        } else if (treeSize > 0) {
            treeSize += 2;
        }
        if (treeSize == 0) {
            printMiddleNothing(middlePart);
        } else if (treeSize > 0) {
            printMiddleNothing((middlePart - treeSize) / 2);
            for (int i = 0; i < treeSize; i++) {
                if (Math.random() > 0.95) {
                    System.out.print('*');
                } else {
                    System.out.print('#');
                }
            }
            printMiddleNothing((middlePart - treeSize) / 2);
        }
        if (treeSize < 0) {
            if (treeSize >= -2) {
                printMiddleNothing((middlePart - 3) / 2);
                System.out.print("|||");
                printMiddleNothing((middlePart - 3) / 2);
                treeSize--;
            } else if (treeSize == -5) {
                String greetings = "Das text-it Team wünscht frohe Weihnachten!";
                printMiddleNothing((middlePart - greetings.length()) / 2);
                System.out.print(greetings);
                printMiddleNothing((middlePart - greetings.length()) / 2);
                treeSize--;
            } else {
                printMiddleNothing(middlePart);
                treeSize--;
            }
        }
        return treeSize;
    }

    private static void printMiddleNothing(int length) {
        for (int i = 0; i < length; i++) {
            System.out.print(' ');
        }
    }
}
 

Stand: 12/2021