python:pgzero:projekt3
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
python:pgzero:projekt3 [2021/05/09 10:15] – lutz | python:pgzero:projekt3 [2021/05/09 10:33] (aktuell) – [Aufgaben] lutz | ||
---|---|---|---|
Zeile 4: | Zeile 4: | ||
{{: | {{: | ||
+ | |||
+ | Anschließend muss man mit der Maus in der richtigen Reihenfolge auf die Punkte klicken, um sie zu verbinden. Sobald man einen Fehler macht, muss man von vorn beginnen. Das Spiel ist zu Ende, wenn man alle Punkte verbunden hat. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Hier ist der kommentierte Quelltext des Programms: | ||
+ | |||
+ | <code python punkte.py> | ||
+ | from random import randint | ||
+ | |||
+ | WIDTH = 800 | ||
+ | HEIGHT = 800 | ||
+ | |||
+ | dots = [] | ||
+ | lines = [] | ||
+ | |||
+ | next_dot = 0 | ||
+ | |||
+ | # In der Schleife werden 10 Punkte mit zufälliger Position erzeugt und zur Liste dots hinzugefügt | ||
+ | for dot in range(0, 10): | ||
+ | actor = Actor(" | ||
+ | actor.pos = randint(20, WIDTH-20), randint(20, HEIGHT-20) | ||
+ | dots.append(actor) | ||
+ | |||
+ | | ||
+ | def draw(): | ||
+ | # Der Hintergrund wird schwarz gezeichnet | ||
+ | screen.fill(" | ||
+ | number = 1 | ||
+ | # Die Punkte werden gezeichnet und beschriftet | ||
+ | for dot in dots: | ||
+ | screen.draw.text(str(number), | ||
+ | dot.draw() | ||
+ | number += 1 | ||
+ | # Die Linien werden gezeichnet. Da es erst Linien in der Liste lines gibt, wenn man mit der Maus auf die Punkte klickt, wird am anfang noch nichts gezeichnet. | ||
+ | for line in lines: | ||
+ | screen.draw.line(line[0], | ||
+ | | ||
+ | def on_mouse_down(pos): | ||
+ | global next_dot | ||
+ | global lines | ||
+ | |||
+ | # Hier wird geprüft, ob die Punkte in der richtigen Reihenfolge angeklickt werden. | ||
+ | # Wenn das nicht der Fall ist, wird die Linienliste geleert und man muss von vorn beginnen. | ||
+ | if dots[next_dot].collidepoint(pos): | ||
+ | if next_dot: | ||
+ | lines.append((dots[next_dot - 1].pos, dots[next_dot].pos)) | ||
+ | next_dot = next_dot + 1 | ||
+ | else: | ||
+ | lines = [] | ||
+ | next_dot = 0 | ||
+ | </ | ||
+ | |||
+ | |||
+ | =====Aufgaben===== | ||
+ | |||
+ | **Aufgabe 1** | ||
+ | |||
+ | Teste das Programm und versuche es mit Hilfe der Kommentare zu verstehen! | ||
+ | |||
+ | Beachte, dass sich im Ordner images eine Datei dot.png befinden muss. Hier: | ||
+ | {{: | ||
+ | |||
+ | Weitere Hilfe findest du hier: [[https:// | ||
+ | |||
+ | **Aufgabe 2** | ||
+ | |||
+ | Erzeuge an Stelle der 10 zufälligen Punkte fünf Punkte ohne Nummerierung die "das Haus vom Nicolaus" | ||
+ | |||
+ | **Aufgabe 3** | ||
+ | |||
+ | Erweitere Aufgabe 2 derart, dass jede beliebige richtige Reihenfolge akzeptiert wird. | ||
+ | |||
+ |
python/pgzero/projekt3.1620548155.txt.gz · Zuletzt geändert: 2021/05/09 10:15 von lutz