Coderdojo?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Ich würde vorschlagen, dass Sie eine Variable erstellen, die den Status des aktuellen Segments verfolgt. Wenn das Segment der Kopf der Schlange ist, zeichnen Sie es anders als den Rest der Schlange.

Hier ist ein einfaches Beispiel, wie Sie das tun könnten:

# Angenommen, Ihre Schlange ist eine Liste von Segmenten, und jedes Segment ist eine Liste mit x, y Positionen.
# Zum Beispiel: snake = [[5, 5], [4, 5], [3, 5], [2, 5]]


for i, segment in enumerate(snake):
    # Wechseln Sie zur Position des Segments
    turtle.goto(segment[0], segment[1])


    # Wenn das Segment der Kopf der Schlange ist (d.h., es ist das erste Element in der Liste), 
    # zeichnen Sie es anders.
    if i == 0:
        turtle.fillcolor('blue')  # Der Kopf ist blau.
    else:
        turtle.fillcolor('green')  # Der Rest der Schlange ist grün.


    # Zeichnen Sie das Segment.
    turtle.stamp()


Das `enumerate`-Keyword in Python gibt Ihnen den Index und den Wert des aktuellen Elements in einer Liste, wenn Sie durch die Liste iterieren. In diesem Fall gibt es Ihnen den Index des Segments (`i`) und die Position des Segments (`segment`). 

Der Index des Kopfsegments ist immer 0, da wir immer neue Segmente am Anfang der Liste hinzufügen. Daher können wir einfach überprüfen, ob `i == 0`, um zu sehen, ob das aktuelle Segment der Kopf ist. Wenn es der Kopf ist, verwenden wir eine andere Füllfarbe. Ansonsten verwenden wir die Standardfüllfarbe.

Bitte beachten Sie, dass dies eine sehr einfache Art ist, dies zu tun, und es gibt viele andere (und möglicherweise bessere) Wege, je nachdem, wie Ihr Code strukturiert ist. 

Hoffentlich hilft Ihnen das weiter!