Code Kata - Christmas Tree

  • Hi Leute,

    hier mal wieder, zum Jahresausklang, etwas für zwischendurch: Die "Christmas Tree" Code Kata.

    💡 Ziel: Ist es einen Algorithmus bestehend aus einer oder mehreren Funktionen zu schreiben, der dir einen Weihnachtsbaum auf der Konsole ausgeben lässt.

    • Es dürfen nur diese drei Zeichen verwendet werden: * für die Spitze, X als Tannennadeln und | als Baumstamm-Symbol.
    • Das Baumstamm-Symbol (die Pipe) soll doppelt und trotzdem mittig dargestellt werden | |.

    🥈 Teil 1: Entwickle die Funktion(en) um den Weihnachtsbaum auf acht Zeilen in der Konsole darzustellen.

    🥇 Teil 2: Erweitere den Ansatz um flexibel einen Weihnachtsbaum mit bspw. 15 Zeilen in der Konsole darzustellen (oder 12 Zeilen oder 20 Zeilen [...]).

    ⚡ Rahmenbedingungen:

    • Versuche es möglichst komplett ohne Hilfsmittel und ohne Google Suche.
    • Zeitliche Vorstellung für diese kleine Challenge ist um die 20 - 30 min.
    • Wenn du eine Lösung hast und diese hier postest, dann bitte den Code in Spoiler einbinden, damit jeder selbst entscheiden kann ob er die Lösungsvariante der Anderen sehen möchte oder nicht 😉 .

    Ich bin gespannt auf eure Lösungen und wünsche happy coding 👍 .


    Viele Grüße
    Sven

  • Moin,

    in der Hoffnung, dass als viertes Zeichen auch das Leerzeichen erlaubt ist:

    Spoiler anzeigen

    Ich wünsche Allen ein frohes Weihnachtsfest und einen guten neues Jahr.

    Einmal editiert, zuletzt von Velted (18. Dezember 2022 um 13:00) aus folgendem Grund: Schreibfehler korrigiert.

  • Moin,

    in der Hoffnung, dass als viertes Zeichen auch das Leerzeichen erlaubt ist:

    Spoiler anzeigen

    Ich wünsche Allen ein frohes Weihnachtsfest und einen guten neues Jahr.

    Müsse das nicht so lauten?
    streiche : If Not IsInt($iZeilen) Or $iZeilen < 5 Or $iZeilen > 32 Then
    ersetze : If Not IsInt($iZeilen) Or $iZeilen < 5 Or $iZeilen > 20 Then

    Ein paar Kerzten am Baume wären auch was. Sag man das so? :party1:

    Egal, denn ich wünsche allen eine restliche schöne Vorweihnachtszeit, schöne Festtage und ein gesunden Rutsch ins neue Jahr.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    Einmal editiert, zuletzt von Alina (18. Dezember 2022 um 13:34)

  • Mein Beitrag:

    Spoiler anzeigen
  • Billiger geht es nicht, aber es ist ein Baum mit Kerzen und einem Weihnachtsgruß dazu.
    * = die Baumspitze und die Kerzen im Baum ! Ein Weihnachtsbaum ohne Kerzen ist wie Ostern ohne Hühnereiner !!!


    Spoiler anzeigen

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

    Einmal editiert, zuletzt von Alina (18. Dezember 2022 um 18:50)

  • Es gibt keinen maximalen Zeilenparameter. Nur das Minimum existiert, ist m.M.n. aber 3:

    Da hast Du aber eine Spitze auf einen frischen Austrieb eines jüngst gefällten Tannenbaums gesteckt. ;)

    Die 32 habe ich willkürlich gesetzt, weil das Ganze irgendwann sinnlos wird. Die Funktion verkraftet auch 1024.

  • Hi zusammen,

    es freut mich das bereits ein paar von euch teilgenommen haben 😀 .
    Hier mein Feedback zu euren Beiträgen.

    Velted:
    Abgesehen davon das in der Aufgabenstellung keine Rede von einem Minimum oder Maximum war (und ich gebe BugFix Recht, min. würde drei sein), ist dein Lösungsansatz natürlich richtig 👍 .

    Bei solchen Code Katas ist es i.d.R. wichtig, dass die Aufgabenstellung genau genommen wird, da meistens in einer zweiten Iteration die Aufgabe noch erweitert wird.
    Bspw. + statt X zu verwenden geht nicht - bei uns hier schon 😅 .

    Danke fürs Mitmachen.

    BugFix :
    Da gibt es nicht viel zu sagen, passt genau wie es ist. Danke auch dir fürs Mitmachen 👍 .

    Alina:
    Danke für den witzigen Ansatz 😅 . Dein Beitrag fällt aus der Wertung raus, da es nicht die Aufgabenstellung erfüllt. Aber an sich eine schöne Idee mit den Kerzen zusätzlich 😊 .
    Dies wäre eine tolle Ergänzung für eine zweite Iteration. Ein Hinweis noch: In deinem Code-Snippet fehlt das EndFunc noch.

    Danke fürs Mitmachen.

    Viele Grüße
    Sven

  • Hier übrigens auch mal mein Lösungsansatz. Nicht erschrecken, ist ziemlich ausführlich (mit Absicht) 😇 .

    Spoiler anzeigen


    Viele Grüße
    Sven

  • Alina:
    Danke für den witzigen Ansatz 😅 . Dein Beitrag fällt aus der Wertung raus, da es nicht die Aufgabenstellung erfüllt.

    Egal, des SPASS war es mir wert.

    Tannenbaum habe ich seit die kleine Verstorben ist nicht mehr. Ich habe keinen Grund dazu. Für mich sind seit dem Jahr alle Feiertage nichts anderes als Urlaub. Tut sonst zu weh, auch wenn es schon etwas her ist, für mich ist es noch sehr nach.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Das + ist ein Kopierschutz. Man kann damit eindeutig erkennen, ob jemand abgeschrieben hat. ;)

    Sehr kreativ, bekommst extra Punkte 🤣 .

    [...] Tannenbaum habe ich seit die kleine Verstorben ist nicht mehr. Ich habe keinen Grund dazu. [...]

    Geht mich nichts an, aber mein aufrichtiges Beleid 😔 . Bleib stark. Eine angenehme Urlaubszeit dann für dich.

  • Meine Lösung sieht so aus:

    Spoiler anzeigen
  • Hi Moombas ,

    Danke auch dir fürs Mitmachen und Danke für den Gruß am Ende 🎄 .
    Auch deine Lösung passt 👍 .

    Das du Punkte statt Leerzeichen genutzt hast ist offensichtlich Absicht gewesen, daher: all good.
    Eine angenehme Weihnachtszeit dir.

    Viele Grüße
    Sven

  • Eignetlich vergessen zu ändern, da ich das beim Testen zur besseren Visualisierung genutzt habe :D Aber dann ist es halt so^^

    Eindeutig die falsche "Ausrede". :rofl: Die Punkte dachte ich war der Schneefall der ja zum Fest nicht zu erwartenb ist.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Alina und Moombas ihr seid mir zwei Schlingel 😂 , schlimm!

  • SOLVE-SMART
    Ich mir keine Schuld bewusst und erhebe Einspruch !

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl