Coderdojo?
Hi ich programmiere aktuell snake mit coderdojo in python. versuche ihr jetzt einen kopf zu geben. Das problem ist das das zweite teil auch ein kopf iist, könnt ihr mir helfen
1 Antwort
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!