Weihnachtsbaum

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Phiene
User
Beiträge: 12
Registriert: Freitag 25. November 2022, 14:07

Wie kann man einen Tannenbaum erstellen durch eine Funktion:

Er soll in etwa so aussehen:

Code: Alles auswählen

['_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '_', '_', '#', '_', '_', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '_', '_', '#', '_', '_', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '_', '_', '#', '_', '_', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '_', '_', '#', '_', '_', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '_', '#', '#', '#', '_', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '_', '#', '#', '#', '_', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '_', '#', '#', '#', '_', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '_', '#', '#', '#', '_', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '#', '#', '#', '#', '#', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '#', '#', '#', '#', '#', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '#', '#', '#', '#', '#', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '#', '#', '#', '#', '#', '_', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '#', '#', '#', '#', '#', '#', '#', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '#', '#', '#', '#', '#', '#', '#', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '#', '#', '#', '#', '#', '#', '#', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '#', '#', '#', '#', '#', '#', '#', '_', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '#', '#', '#', '#', '#', '#', '#', '#', '#', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '#', '#', '#', '#', '#', '#', '#', '#', '#', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '#', '#', '#', '#', '#', '#', '#', '#', '#', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '#', '#', '#', '#', '#', '#', '#', '#', '#', '_', '_', '_', '_', '_']
['_', '_', '_', '_', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '_', '_', '_', '_']
['_', '_', '_', '_', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '_', '_', '_', '_']
['_', '_', '_', '_', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '_', '_', '_', '_']
['_', '_', '_', '_', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '_', '_', '_', '_']
['_', '_', '_', '_', '_', '_', '_', '_', '_', '#', '_', '_', '_', '_', '_', '_', '_', '_', '_']
Benutzeravatar
__blackjack__
User
Beiträge: 13117
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Oh, das ist supereinfach 😈:

Code: Alles auswählen

def create_fir_tree():
    return [
        ["_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "_", "#", "_", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "_", "#", "_", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "_", "#", "_", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "_", "#", "_", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "#", "#", "#", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "#", "#", "#", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "#", "#", "#", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "#", "#", "#", "_", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "#", "_", "_", "_", "_"]
        ["_", "_", "_", "_", "_", "_", "_", "_", "_", "#", "_", "_", "_", "_", "_", "_", "_", "_", "_"]
    ]
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Phiene
User
Beiträge: 12
Registriert: Freitag 25. November 2022, 14:07

__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
Benutzeravatar
__blackjack__
User
Beiträge: 13117
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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,
            [
                "___________________",
                "___________________",
                "___________________",
                "___________________",
                "_________#_________",
                "_________#_________",
                "_________#_________",
                "_________#_________",
                "________###________",
                "________###________",
                "________###________",
                "________###________",
                "_______#####_______",
                "_______#####_______",
                "_______#####_______",
                "_______#####_______",
                "______#######______",
                "______#######______",
                "______#######______",
                "______#######______",
                "_____#########_____",
                "_____#########_____",
                "_____#########_____",
                "_____#########_____",
                "____###########____",
                "____###########____",
                "____###########____",
                "____###########____",
                "_________#_________",
            ],
        )
    )
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Benutzeravatar
__blackjack__
User
Beiträge: 13117
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

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. 🤓
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Benutzeravatar
sparrow
User
Beiträge: 4195
Registriert: Freitag 17. April 2009, 10:28

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 😇
Antworten