s n h m r u

Minimallogo des digitalen Schulbuchs inf-schule.de. Schriftzug in Zustandsübergangsdiagramm eines endlichen Automaten.

s n h m r u
i

Hauptprogramm

Anlegen des Hauptprogramms

Das Erzeugen von Objekten per Mausklick und Codepad ist praktisch, um das Verhalten einzelner Objekte zu erkunden. Allerdings ist alles wieder verloren, sobald du BlueK schließt oder neu kompilierst. Du musst dann Spielfeld, Spieler und Münzen erneut von Hand anlegen. Auch wenn du eine neue Runde spielen willst, musst du wieder alles von Hand aufbauen. Ein Hauptprogramm löst dieses Problem: Es enthält die Schritte, die beim (Neu-)Start des Spiels automatisch ausgeführt werden.

Im Projekt gibt es bereits eine Datei Main. Öffne sie mit einem Doppelklick. Sie enthält bisher nur eine leere main()-Funktion. Den Anfang einer Implementierung siehst du hier:

fun main() {
    // Das Spielfeld erzeugen
    val welt = Spielfeld()

    // TODO: Hier die Spielobjekte hinzufügen (Spieler, Münzen, Gegner).

    // Das Spielfeld anzeigen
    welt.show()
}

Zuerst wird mit val welt = Spielfeld() ein Spielfeld-Objekt erzeugt und unter dem Namen welt gespeichert. Ganz am Ende zeigt welt.show() das Feld an. Dazwischen fehlen noch die Spielobjekte.

Kotlin erkennt am Konstruktoraufruf Spielfeld(), dass welt den Datentyp Spielfeld hat. Der Datentyp muss deshalb nicht zusätzlich angegeben werden.

Falls du im Codepad eine Münze erzeugt hast und sie dem Spielfeld hinzugefügt hast, sah das z.B. so aus:

    // eine Münze erzeugen
    val muenze = Muenze()
    // die Münze an Position (100, 80) setzen
    welt.addObject(muenze, 100, 80)

Da wir nie mehr auf die Münze im Code zugreifen müssen, nachdem wir sie auf dem Spielfeld platziert haben, können wir die beiden Zeilen auch in einer zusammenfassen:

    // eine Münze erzeugen und an Position (100, 80) setzen
    welt.addObject(Muenze(), 100, 80)

Aufgabe 1

Ergänze die main()-Funktion so, dass das Spielfeld mit allen Objekten aufgebaut wird, die du bisher per Mausklick oder Codepad erzeugt hast.
Hilfe

Bringe die Zeilen einer möglichen Lösung in die richtige Reihenfolge. Verwende dabei genau einen Spieler, drei Münzen und einen Gegner. Die Münzen sollen oben links, der Spieler in der Mitte und der Gegner unten rechts erscheinen. Manche Lücken kannst du mit Hilfe der Bausteine unten füllen, andere musst du selbst ausfüllen.

fun main() {                                  §§fest
    val §§welt::tippen§§ = Spielfeld()        §§fest
    welt.§§addObject::tippen§§(§§Muenze()§§, 70, 60)      §§gruppe
    welt.§§addObject::tippen§§(§§Muenze()§§, 150, 60)     §§gruppe
    welt.§§addObject::tippen§§(§§Muenze()§§, 70, 140)     §§gruppe
    welt.§§addObject::tippen§§(§§Spieler()§§, 300, 200)   §§gruppe
    welt.§§addObject::tippen§§(§§Gegner()§§, 520, 330)    §§gruppe
    welt.§§show::tippen§§()
}                                             §§fest

Das Hauptprogramm starten

Da Code geändert wurde, muss zunächst kompiliert werden. Anschließend kann das Hauptprogramm per Rechtsklick auf Main und Auswahl von main() ausgeführt werden. Alternativ kann man die main-Funktion - also das Hauptprogramm der Anwendung - durch Klick auf den entsprechenden Button links starten. Das Spielfeld erscheint dann mit allen Objekten und kann mit dem Run-Knopf in der Steuerleiste gestartet werden.

Aufgabe 2

  1. Spiele das Spiel!
  2. Benutze den Reset-Knopf, um das Spiel neu zu starten.
  3. Verändere den Namen der main()-Funktion und teste, ob du das Hauptprogramm noch starten und zurücksetzen kannst.
  4. Beschreibe den Zusammenhang zwischen der main()-Funktion und dem Reset-Button.

Suche

v
100.123.1.2.4 Hauptprogramm
Kopieren durch Anklicken

Rückmeldung geben