Hauptprogramm
Warum ein Hauptprogramm?
Bisher musst du dein Spielfeld jedes Mal von Hand erzeugen und
show() aufrufen. Das ist auf Dauer lästig - und sobald du BlueJ
schließt, ist alles wieder weg.
Deshalb schreibst du ein Hauptprogramm, das
genau diese Schritte als Code enthält.
Das Hauptprogramm ausfüllen
Im Projekt gibt es dafür schon die Datei Main. Öffne sie mit
einem Doppelklick - sie ist bisher leer:
fun main() {
// Hier entsteht dein Hauptprogramm.
}
Ersetze den Kommentar durch die beiden Zeilen, die du bisher von Hand gemacht hast: ein Spielfeld erzeugen und es anzeigen.
fun main() {
val welt = Spielfeld()
welt.show()
}
Das Spielfeld wird mit Spielfeld() erzeugt und in der
Variablen welt gemerkt.
Die Tiere musst du hier nicht mehr anlegen - das erledigt ja schon der
init-Block deines Spielfelds.
Das Hauptprogramm starten
Kompiliere und führe das Hauptprogramm per Rechtsklick auf Main
und Auswahl von main() aus. Das Spielfenster erscheint mit den
Tieren, und mit dem Start-Knopf läuft das Spiel los.
Praktisch ist jetzt auch der Reset-Knopf im Spielfenster: Er ruft
dein main() einfach erneut auf und baut damit die
Ausgangssituation wieder auf.
main im Rechtsklick-Menü der
Datei Main ausführen. Dateiname z.B. runMain.png.
Eine Entwurfsentscheidung
Du hättest die Tiere auch anders anlegen können: nicht im
init-Block des Spielfelds, sondern hier im Hauptprogramm mit
welt.addObject(Ausreisser(), 50, 50).
Beides funktioniert - es ist eine Entwurfsentscheidung.
Im init steht: "Ein Spielfeld hat immer Tiere darauf" - das
gehört dann zum Spielfeld selbst.
Im Hauptprogramm steht dagegen: "Für dieses eine Spiel stellen wir das Feld
so zusammen." Das ist flexibler, wenn du später verschiedene Spielvarianten
aufbauen willst.
Aufgabe
- Fülle die Datei
Mainaus, kompiliere sie und führemain()aus. - Probiere den Reset-Knopf aus. Was passiert?
- Verlege die Tiere probeweise aus dem
init-Block in das Hauptprogramm. Vergleiche beide Varianten und entscheide dich für eine.