Skip to content

3.8 Weitere Übungen zu Arrays

Kreisjagd

Beim Spiel Kreisjagd müssen in einer vorgegebenen Zeit so viele Kreise wie möglich mit der Maus angeklickt werden. Jeder angeklickte Kreis wird zu einer zufälligen Position verschoben und der Radius wird dabei verkleinert, so dass die Kreise immer schwieriger zu treffen sind.

Du kannst bei dem folgenden Spiel den Prototypen benutzen oder das Projekt von Grund auf programmieren. Wenn du den Prototypen nutzt, überspringe den ersten Aufgabenteil.

1. Implementieren der Klasse und des Konstruktors
Erstelle ein neues Projekt und eine neue Klasse. Nutze das nebenstehende UML-Diagramm, um die Attribute und Methoden zu erstellen (mit Ausnahme des Arrays kreise). Im Konstruktor erzeuge die Objekte.

2. Das Array kreise
Um die Kreise zu verwalten, die der Spieler jagen muss, wird ein Array genutzt. Bereite die Nutzung des Arrays vor, indem du die folgenden drei Schritte machst:

  1. Deklaration des Arrays im Klassenkopf.
  2. Initialisierung des Arrays im Konstruktor. Es sollen insgesamt 5 Kreise in dem Array gespeichert werden.
  3. Erstellen der Kreise in einer Schleife: Die Kreise sollen eine zufällige Position und einen Radius von 20 haben.
Kreisjagd
kreisjagd

3. Die Methode fuehreAus
Du kannst das nebenstehende Struktogramm nutzen, um die Methode fuehreAus zu implementieren. Wenn du den Prototypen nutzt, sind die grün unterlegten Anweisungen bereits vorhanden.

Sterntaler

Beim Projekt Sterntaler müssen in einer vorgegebenen Zeit so viele Münzen eingesammelt werden wie möglich. Die Münzen fallen dabei vom oberen Bildschirmrand nach unten, der Korb kann mit den Pfeiltasten gesteuert werden.

Im Prototypen sind bereits viele Aspekte implementiert. Folgende Punkte müssen noch ergänzt werden:

  • Die Arrays für die Sterne im Hintergrund und die herabfallenden Münzen müssen deklariert, initialisiert und befüllt werden.
  • In der Spielschleife muss das Verhalten der herabfallenden Münzen ergänzt werden. Nutze als Hilfe den folgenden Pseudocode:
    für alle Münzen im Array
	verschiebe die Münze nach unten
	wenn die y-Koordinate der Münze größer ist als die Höhe der Leinwand
		setze die Münze auf eine zufällige Position am oberen Rand der Leinwand
		mache die Münze sichtbar
	wenn die Münze sichtbar ist und mit dem Korb kollidiert
		mache die Münze unsichtbar
		erhöhe die Variable score um 1   
            
                    
        
Sterntaler