Seite 1 von 1

Verstehe den Code nicht

Verfasst: Montag 28. Dezember 2020, 19:49
von JonBach18
Hallo Leute,

ich bin noch ein absoluter Anfänger. Hab mit Python erst vor ein paar Wochen angefangen und hoffe wie immer eine schnelle gute Antwort von euch zu bekommen. Möchte es auch gerne mal ansprechen das ich es total super finde wie Ihr euch mühe gibt anderen zu Helfen!!! :)

Mein Problem ist das ich ein Code nicht verstehe den ich aus dem Internet habe...

Code: Alles auswählen

#Create Level setup Function
def setup_maze(level):
    for y in range(len(level)):
        for x in range(len(level[y])):
            #Get the charecter at each x,y coordinate
            #Note the order of y and x in the next line
            charecter = level[y][x]
            #Calculate the screen x, y cooednites
            screen_x = -288 + (x*24)
            screen_y = 288 - (y*24)

            #Check if it is an X (representing a wall)
            if charecter == "X":
                pen.goto(screen_x, screen_y)
                pen.stamp()
Könnt Ihr mir bitte es einfach erklären was dieser Code für eine Funktion hat? Wäre euch sehr dankbar. Es geht um einen Labyrinth zu erstellen...

Vielen Dank im Voraus !

Mit freundlichen Grüßen,

Jon

Re: Verstehe den Code nicht

Verfasst: Montag 28. Dezember 2020, 20:47
von __blackjack__
@JonBach18: Das steht doch da eigentlich alles. Was *genau* verstehst Du denn nicht?

Re: Verstehe den Code nicht

Verfasst: Montag 28. Dezember 2020, 20:50
von JonBach18
Generell komme ich nicht drauf was damit gemeint ist ...

Re: Verstehe den Code nicht

Verfasst: Montag 28. Dezember 2020, 20:55
von noisefloor
Hallo,

wenn du dein Problem nicht erklären kannst, hast du zwei Probleme... ;-)

Welche Zeilen verstehst du nicht? Die for-Schleifen sind Basics... weißt du, wie for-Schleifen funktionieren? Weißt du, was `len()` macht? Kennst du Listen in Python und den Index-Zugriff auf Elemente?

Gruß, noisefloor

Re: Verstehe den Code nicht

Verfasst: Dienstag 29. Dezember 2020, 18:55
von ThomasL
Die Funktion bekommt vermutlich eine Liste von Strings in der Form

Code: Alles auswählen

['ooXoo',
 'oXoXo',
 'oXooo',
 'XXXXX']
als Parameter level übergeben, wobei das 'X' für eine Mauer stehen soll. Anstelle des 'o' wird vermutlich ein anderer Buchstabe oder das Leerzeichen verwendet.
Die beiden Schleifen "laufen" über jeden Buchstaben und wenn ein großes 'X' gefunden wird, wird die genaue x,y Koordinate errechnet und dort per Turtle.stamp() ein Block gezeichnet.