2 Figuren nacheinander zeichnen
Verfasst: Freitag 10. März 2023, 11:23
Hallo zusammen,
ich möchte gerne Python 2 Figuren nacheinander zeichnen lassen.
Für die erste Figur wählt der User Farben aus einer Liste aus. Die Figur wird dann gezeichnet.
Dann soll der User die Info erhalten, dass jetzt die Figur nochmal mit den "NICHT GEWÄHLTEN" Farben gezeichnet wird.
Am Ende soll ein Text ausgegeben werden.
Mein Coding mit meinen Überlegungen:
# Bereitstellung der library TURTLE mit Funktionen und Methoden, die man in diesem Programm nutzen kann
import turtle
import time
# erstmal definieren wir eine Variable namens "colors" vom Typ LISTE, mit den Farben, die vorkommen dürfen.
# Listen werden durch eckige Klammern definiert
colors = ["red","green","blue","orange","purple","yellow"]
# wir definieren eine weitere Variable names user_colors vom Typ LISTE (zu erkennen an den eckigen Klammern)
user_colors = []
# Liste für den 2. Durchlauf
user2_colors = []
# So lange die zuvor genannte Variable "user_colors" weiterhin leer ist, soll diese Schleife immer wieder durchlaufen werden
while True:
# es werden dem Anwender nochmal alle Farben angezeigt
print("Verfügbare Farben sind: ", colors)
# der Anwender soll nun eine Farbe eingeben, die damit in die Variable "color_choice" geschrieben wird
color_choice = input("Geben Sie eine der verfügbaren Farben ein: ")
# jetzt muss die Eingabe geprüft werden
# 1. Fall: der Anwender hat eine Farbe eingetragen, die in der Liste "colors" enthalten ist
if color_choice in colors:
user_colors.append(color_choice) # Farbe in die Variable "user_colors" schreiben
colors.remove(color_choice) # die gewählte Farbe darf kein 2. Mal gewählt werden
print(color_choice, " hinzugefügt")
# 2. Fall: Anwender hat nichts eingetragen und ENTER gedrückt, Damit wird die WHILE-Schleife verlassen
elif color_choice =="":
break
# 3. Fall: Der Anwender hat eine Farbe gewählt, die nicht (mehr) verfügbar ist
else:
print("Diese Farbe ist nicht verfügbar !")
# Hier sollen alle nicht gewählten Farben aus der Ausgangsliste in einer Liste gesammelt werden
user2_colors.append(colors)
# Fenster einrichten (s ist eine beliebige Variable, da könnte auch e oder wurst stehen)
# Befehl öffnet ein Fenster 800 x 800 Pixel mit Überschrift FARBWECHSELNDE FIGUR
s = turtle.Screen()
s.setup(width=800, height=800)
s.title("Farbwechselnde Figur")
s.bgcolor('black')
# Schildkröte einrichten (w ist eine beliebige Variable, da könnte auch e oder wurst stehen)
w = turtle.Turtle()
w.pensize(3)
# Geschwindigkeit geht von 0 = langsam bis 10 = schnell
w.speed(200)
# 1. Figur zeichnen (300 ist die Anzahl der Striche, die gemacht werden)
for i in range(100): #
color_choice = user_colors[i % len(user_colors)]
w.color(color_choice)
w.forward(i)
w.left(50)
time.sleep(3)
write("Jetzt malen wir die Figur mit den nicht gewählten Farben", align="left")
# Jetzt soll die Figur in den Farben gezeichnet werden, die nicht gewählt wurden
for i in range(100): #
color_choice = user2_colors[i % len(user2_colors)]
w.color(color_choice)
w.forward(i)
w.left(50)
time.sleep(3)
write("Dies war das Programm von X und Y", align="left")
# Fenster offen halten
s.mainloop()
Wo ist denn mein Fehler ?
leider werden die Texte nicht angezeigt und die 2. Figur wird nicht gezeichnet....
ich möchte gerne Python 2 Figuren nacheinander zeichnen lassen.
Für die erste Figur wählt der User Farben aus einer Liste aus. Die Figur wird dann gezeichnet.
Dann soll der User die Info erhalten, dass jetzt die Figur nochmal mit den "NICHT GEWÄHLTEN" Farben gezeichnet wird.
Am Ende soll ein Text ausgegeben werden.
Mein Coding mit meinen Überlegungen:
# Bereitstellung der library TURTLE mit Funktionen und Methoden, die man in diesem Programm nutzen kann
import turtle
import time
# erstmal definieren wir eine Variable namens "colors" vom Typ LISTE, mit den Farben, die vorkommen dürfen.
# Listen werden durch eckige Klammern definiert
colors = ["red","green","blue","orange","purple","yellow"]
# wir definieren eine weitere Variable names user_colors vom Typ LISTE (zu erkennen an den eckigen Klammern)
user_colors = []
# Liste für den 2. Durchlauf
user2_colors = []
# So lange die zuvor genannte Variable "user_colors" weiterhin leer ist, soll diese Schleife immer wieder durchlaufen werden
while True:
# es werden dem Anwender nochmal alle Farben angezeigt
print("Verfügbare Farben sind: ", colors)
# der Anwender soll nun eine Farbe eingeben, die damit in die Variable "color_choice" geschrieben wird
color_choice = input("Geben Sie eine der verfügbaren Farben ein: ")
# jetzt muss die Eingabe geprüft werden
# 1. Fall: der Anwender hat eine Farbe eingetragen, die in der Liste "colors" enthalten ist
if color_choice in colors:
user_colors.append(color_choice) # Farbe in die Variable "user_colors" schreiben
colors.remove(color_choice) # die gewählte Farbe darf kein 2. Mal gewählt werden
print(color_choice, " hinzugefügt")
# 2. Fall: Anwender hat nichts eingetragen und ENTER gedrückt, Damit wird die WHILE-Schleife verlassen
elif color_choice =="":
break
# 3. Fall: Der Anwender hat eine Farbe gewählt, die nicht (mehr) verfügbar ist
else:
print("Diese Farbe ist nicht verfügbar !")
# Hier sollen alle nicht gewählten Farben aus der Ausgangsliste in einer Liste gesammelt werden
user2_colors.append(colors)
# Fenster einrichten (s ist eine beliebige Variable, da könnte auch e oder wurst stehen)
# Befehl öffnet ein Fenster 800 x 800 Pixel mit Überschrift FARBWECHSELNDE FIGUR
s = turtle.Screen()
s.setup(width=800, height=800)
s.title("Farbwechselnde Figur")
s.bgcolor('black')
# Schildkröte einrichten (w ist eine beliebige Variable, da könnte auch e oder wurst stehen)
w = turtle.Turtle()
w.pensize(3)
# Geschwindigkeit geht von 0 = langsam bis 10 = schnell
w.speed(200)
# 1. Figur zeichnen (300 ist die Anzahl der Striche, die gemacht werden)
for i in range(100): #
color_choice = user_colors[i % len(user_colors)]
w.color(color_choice)
w.forward(i)
w.left(50)
time.sleep(3)
write("Jetzt malen wir die Figur mit den nicht gewählten Farben", align="left")
# Jetzt soll die Figur in den Farben gezeichnet werden, die nicht gewählt wurden
for i in range(100): #
color_choice = user2_colors[i % len(user2_colors)]
w.color(color_choice)
w.forward(i)
w.left(50)
time.sleep(3)
write("Dies war das Programm von X und Y", align="left")
# Fenster offen halten
s.mainloop()
Wo ist denn mein Fehler ?
leider werden die Texte nicht angezeigt und die 2. Figur wird nicht gezeichnet....