Seite 1 von 1

Weihnachtsbaum

Verfasst: Montag 12. Dezember 2022, 23:57
von Phiene
Wie kann man einen Tannenbaum erstellen durch eine Funktion:

Er soll in etwa so aussehen:

Code: Alles auswählen

['_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '_', '_', '#', '_', '_', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '_', '_', '#', '_', '_', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '_', '_', '#', '_', '_', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '_', '_', '#', '_', '_', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '_', '#', '#', '#', '_', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '_', '#', '#', '#', '_', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '_', '#', '#', '#', '_', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '_', '#', '#', '#', '_', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '#', '#', '#', '#', '#', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '#', '#', '#', '#', '#', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '#', '#', '#', '#', '#', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '#', '#', '#', '#', '#', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '#', '#', '#', '#', '#', '#', '#', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '#', '#', '#', '#', '#', '#', '#', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '#', '#', '#', '#', '#', '#', '#', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '#', '#', '#', '#', '#', '#', '#', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '#', '#', '#', '#', '#', '#', '#', '#', '#', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '#', '#', '#', '#', '#', '#', '#', '#', '#', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '#', '#', '#', '#', '#', '#', '#', '#', '#', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '#', '#', '#', '#', '#', '#', '#', '#', '#', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '_', '_', '_', '_']
['_', '_', '_', '_', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '_', '_', '_', '_']
['_', '_', '_', '_', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '_', '_', '_', '_']
['_', '_', '_', '_', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '_', '_', '#', '_', '_', '_', '_', '_', '_', '_', '_', '_']

Re: Weihnachtsbaum

Verfasst: Dienstag 13. Dezember 2022, 00:08
von __blackjack__
Oh, das ist supereinfach 😈:

Code: Alles auswählen

def create_fir_tree():
    return [
        ["_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "_", "#", "_", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "_", "#", "_", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "_", "#", "_", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "_", "#", "_", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "#", "#", "#", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "#", "#", "#", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "#", "#", "#", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "#", "#", "#", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "_", "#", "_", "_", "_", "_", "_", "_", "_", "_", "_"]
    ]

Re: Weihnachtsbaum

Verfasst: Dienstag 13. Dezember 2022, 00:11
von Phiene
__blackjack__ hat geschrieben: Dienstag 13. Dezember 2022, 00:08 Oh, das ist supereinfach 😈:

Code: Alles auswählen

def create_fir_tree():
    return [
        ["_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "_", "#", "_", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "_", "#", "_", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "_", "#", "_", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "_", "#", "_", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "#", "#", "#", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "#", "#", "#", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "#", "#", "#", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "#", "#", "#", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "_", "#", "_", "_", "_", "_", "_", "_", "_", "_", "_"]
    ]
:lol: :lol: :lol: :lol: :lol:
so war es nicht gemeint :P

Re: Weihnachtsbaum

Verfasst: Dienstag 13. Dezember 2022, 11:24
von __blackjack__
@Phiene: Ja sorry, da sind Syntaxfehler drin — es fehlen die Kommas zwischen den Listen.

Wie war es dann gemeint? Das ist die einfachste Art genau dieses Ergebnis zu bekommen. Wahrscheinlich sollte die Funktion aber irgendwie parametrisiert werden. Aber wie? Alleine da gibt es ja viele Möglichkeiten. Und zu jeder der Möglichkeiten so einen Baum zu parametrisieren gibt es viele Möglichkeiten von den Parametern zum Ergebnis zu kommen. Letztlich beschreibst Du ja aber nicht einmal wie ein konkretes Ergebnis aussehen soll, wenn das „in etwa so aussehen“ soll. Wie soll es denn ganz konkret aussehen? Ich habe bei der Liste mit einzelnen Zeichen pro Zeile ja schon die Frage ob das wirklich so aussehen soll. Was soll denn damit gemacht werden? Soll die Funktion tatsächlich eine Datenstruktur zurückgeben, oder soll die bereits eine Ausgabe tätigen und gar nichts zurück geben? Wenn ich solche Listen mit Zeichen erstellen sollte, würde ich über Zeichenketten gehen und die am Ende in Listen umwandeln. Was natürlich keinen Sinn machen würde, wenn als nächster Schritt diese ganzen einzelnen Zeichen tatsächlich wieder zu Zeichenketten zusammengesetzt werden sollen.

Gleiches Ergebnis wie die letzte Funktion, weniger Tipparbeit, Zeilen die problemlos unterhalb 80 Zeichen pro Zeile bleiben:

Code: Alles auswählen

def create_fir_tree():
    return list(
        map(
            list,
            [
                "___________________",
                "___________________",
                "___________________",
                "___________________",
                "_________#_________",
                "_________#_________",
                "_________#_________",
                "_________#_________",
                "________###________",
                "________###________",
                "________###________",
                "________###________",
                "_______#####_______",
                "_______#####_______",
                "_______#####_______",
                "_______#####_______",
                "______#######______",
                "______#######______",
                "______#######______",
                "______#######______",
                "_____#########_____",
                "_____#########_____",
                "_____#########_____",
                "_____#########_____",
                "____###########____",
                "____###########____",
                "____###########____",
                "____###########____",
                "_________#_________",
            ],
        )
    )

Re: Weihnachtsbaum

Verfasst: Mittwoch 14. Dezember 2022, 17:05
von __blackjack__
Man könnte natürlich auch ein paar Zahlen nehmen, mit denen sich das Ergebnis beschreiben liesse, und dazu Code schreiben, der das Ergebnis daraus berechnet.

Code: Alles auswählen

def create_fir_tree():
    return [
        list(("#" * (max((i >> 1 & ~1) - 1, 0) % 12)).center(19, "_"))
        for i in range(29)
    ]
Bin besonders stolz darauf, dass ich die beschreibenden Zahlen hier so gewählt habe, dass es sich sehr schlecht eignet das zu parametrisieren. Sonst wäre das am Ende noch eine sinnvolle Lösung. 🤓

Re: Weihnachtsbaum

Verfasst: Mittwoch 14. Dezember 2022, 18:29
von sparrow
Man könnte ein Koordinatensystem aufspannen und vom oben Dinge reinfallen lassen, die so lange nach unten fallen, bis sie auf etwas treffen und dann erst nach linkd und dann nacht rechts versuchen herunter zu kullern 😇

Re: Weihnachtsbaum

Verfasst: Mittwoch 14. Dezember 2022, 22:03
von grubenfox