×
produktlogotitle

 DOWNLOADSEITE

Seite: ha_aufgaben1
Diese Seite wurde aktualisiert am 17.08.2025

LOGIN
Benutzer:
Passwort:
 
Geogebra-
   ifwp.net-schulbuch.de
Startseite Projekte Projekte: Kapitel 1 Diese Seite wurde aktualisiert am 17.08.2025

Pygame - Aufgaben 1

Aufgabe 1   

 

  1. Kopiere das Programm 1 in Webtigerpython und verändere die Konstanten WIDTH und HEIGHT: Wähle die Größen so, dass das Grafikfenster vollständig mit dem Zeichenfenster von Pygame ausgefüllt ist.
  2. Ändere die Hintergrundfarbe des Zeichenfensters. Definiere auch weitere Farbkonstanten.
Aufgabe 2   

a .Erstelle mit pygame ein Programm, das einen großen Smiley zeichnet. Verwende dabei jede der folgenden Grundformen mindestens einmal:

  • Kreis (pygame.draw.circle)
  • Ellipse (pygame.draw.ellipse)
  • Rechteck (pygame.draw.rect)
  • Linie (pygame.draw.line)
  • Vieleck/Polygon (pygame.draw.polygon)
  • Bogen (pygame.draw.arc)

Vorgaben:

  • Du kannst dich an dem abgebildeten Bild orientieren, musst es aber nicht.
  • Jede der oben genannten Formen muss im Smiley verwendet werden (z.B. Kopf, Augen, Mund, Nase, Zunge, Augenbrauen usw.).
  • Die Farben und die genaue Gestaltung sind dir überlassen – sei kreativ!
  • Das Bild soll direkt nach dem Starten des Programms angezeigt werden (keine Interaktion nötig).
  • Das Fenster soll offen bleiben, bis es geschlossen wird.

b. Erstelle mit den Pygame-Formen ein beliebiges anderes Bild

Aufgabe 3   

Entwickle in pygame ein Programm, in dem sich ein blaues Rechteck auf einer Bodenlinie auf eine rote "Mauer" zubewegt. Sobald das blaue Rechteck die Mauer berührt, entsteht eine Durchfahrt, so dass sich das blaue Rechteck weiterbewegen kann. Sobald das blaue Rechteck den rechten Rand erreicht hat, endet das Programm.

Entwickle folgende Funktionen:

get_rect_dict(x, y, w, h, col, dx): Gibt das Rechteck als Dictionary zurück. 

draw_rect(screen, r): Zeichnet das Rechteck auf den screen.

collision(r1, r2): gibt True zurück, wenn sich die Rechtecke r1 und r2 überschneiden

edge_right(r).

 

Icon 2 Sterne 30x30 Aufgabe 4   

Entwickle mit pygame ein Programm, in dem sich zwei unterschiedlich große Rechtecke auf einer Bodenlinie hin und her bewegen und sich dabei gegenseitig schieben.

Vorgaben:

  • Zeichne ein großes (blaues) und ein kleines (rotes) Rechteck, die beide mit ihrer Unterkante auf einer Bodenlinie liegen.
  •  Das große Rechteck bewegt sich von links nach rechts auf das kleine zu.
  •  Sobald das große Rechteck das kleine erreicht, schiebt es dieses bis zum rechten Rand des Fensters.
  • Am rechten Rand übernimmt das kleine Rechteck und schiebt das große Rechteck zurück zum linken Rand.
  • Am linken Rand beginnt das Spiel von vorne: Das große Rechteck schiebt wieder das kleine nach rechts usw.
  • Die Bewegung soll sich endlos wiederholen.
  • Die Rechtecke dürfen sich nicht überlappen, sondern immer exakt aneinanderstoßen.
  • Die Bodenlinie soll als schwarze Linie unter den Rechtecken sichtbar sein.

 

Icon 2 Sterne 30x30 Aufgabe 5   

In dieser Aufgabe schreiben wir ein Programm, das einen Staubsaugerroboter simuliert. Es ist nicht schwierig, wenn du dich an die folgende Anleitung hältst und die bisherigen Programme verstanden hast.

a. Staubsauger bewegt sich, ohne zu saugen:

  1. Öffne Webtigerpython 
  2. Kopiere Programm 4 aus dem Abschnitt Formen zeichnen und füge es in WTP ein.
  3. Erzeuge statt der 100 Kreisen mit Zufallsfarben 100 schwarze Staubkörner, die sich nicht bewegen sollen (Änderungen in get_random_circle_list). Gib der Liste den Namen dust.
  4. Erzeuge den Staubsauger mit get_circle_dict(300, 200, 35, RED, 2, 2) und weise ihn der Veriablen cleaner zu.
  5. Nun musst du noch main ändern. Die Staubkreise werden in einer Schleife über der Liste dust gezeichnet. Der Staubsauger muss außerhalb dieser Schleife gezeichnet werden. Beachte dass du beim Zeichnen und der Randkontrolle die richtige Variable cleaner verwendest.

b. Nun soll das Programm so erweitert werden, dass der Staub verschwindet, wenn er sich unter dem Staubsauger befindet. Entwickle dazu eine Funktion contains(c, d), die True zurückliefert, wenn sich der Kreis d vollständig im Kreis c befindet.

Ein Kreis d befindet sich vollständig in einem Kreis c, wenn der Abstand der beiden Kreismittlepunkt kleiner ist, als der Radius von c. Verwende für die Abstandsberechnung math.hypot.

 

 

 

 

 

 

 

 

Impressum
© 2023  Net-Schulbuch.de

10.07  0.0852  8.1.33