![]() |
|
Folge 1: Wir lernen das Programm kennenDer Hamstersimulator ist ein JAVA-Programm, das von Dietrich Boles von der Universität Oldenburg entwickelt wurde, um Programmieranfängern die Grundlagen der Programmierung auf spielerische Weise nahezubringen. Dieses Skript wurde von Ulrich Helmich für das Södernet, dem schulinternen Netz des Söderblom-Gymnasiums, geschrieben. Programmierkenntnisse einer anderen Sprache werden nicht vorausgesetzt, sind aber durchaus nützlich. Weitere wichtige Informationen sowie aktuelle Neuigkeiten zum Java-Hamster finden Sie auf der Webseite www.java-hamster-modell.de, die ich jedem nur empfehlen kann. Hier gibt es Hinweise auf die Bücher "Programmieren spielend gelernt" und "Objektorientierte Programmierung spielend gelernt" von Dietrich Boles, weitere Informationen zum Simulator, ein Forum, weitere Materialien, Hinweise auf Vorlesungen und so weiter. 1.1 Das SimulatorfensterNach dem Starten des Simulators sehen Sie zwei Fenster, das Editorfenster und das Simulatorfenster:
Konzentrieren wir uns zunächst auf das Simulatorfenster. Das Simulatorfenster besteht aus drei Teilen: Buttonleiste (oben), Territorium (links) und Befehlsliste (rechts):
Im Territorium kann der Hamster herumlaufen, Körner aufheben und wieder weglegen, Hindernissen aus dem Weg gehen und so weiter. Die Befehle für diese Hamster-Aktionen geben Sie im Editorfenster ein, darauf kommen wir aber später. In der Befehlsliste können wir alle Befehle sehen, die unser Hamster bereits erledigt hat. Die Buttonleiste schließlich dient zur Erzeugung eines neuen Territoriums. Die Buttonleiste des Simulatorfensters
Dateizugriff: Ganz links finden Sie den Button zum Erzeugen einer neuen Hamster-Welt. Wenn Sie diesen Button anklicken, werden Sie von dem Programm aufgefordert, die Breite und Höhe des neuen Territoriums einzugeben. Sie können dann z.B. ein Territorium mit 12 Feldern Breite und 8 Feldern Höhe erzeugen. Der zweite Button von links dient zum Laden eines bereits vorhandenen Territoriums. Damit können Sie sich also Territorien anzeigen lassen, die Sie z.B. in der letzten Unterrichtsstunde angefertigt haben. Der dritte Button schließlich dient zum Speichern eines von Ihnen erzeugten Territoriums. Lassen Sie sich hier einen aussagekräftigen Namen einfallen, also nicht "Territorium0815", sondern z.B. "Treppe01". Hamstermanipulation: Mit dem vierten Button von links können Sie die Position des Hamsters bestimmen. Sie müssen dabei zweimal klicken. Zuerst klicken Sie den Button an - da passiert aber noch nichts. Jetzt klicken Sie in das Feld, in das Sie den Hamster setzen wollen - und schon befindet sich der Hamster in diesem Feld. Der fünfte Button von links dient zum Drehen des Hamsters um 90° nach links (also entgegengesetzt zum Uhrzeigersinn). Somit können Sie die Startrichtung des Tieres ändern. Typisch Programmierer: Wenn Sie den Hamster nach rechts drehen wollen, müssen Sie Ihn dreimal nach links drehen. Der sechste Button von links dient zum "Füttern" des Hamsters. Wenn Sie auf den Button klicken, werden Sie vom Computer aufgefordert, die Zahl der Körner anzugeben, die Sie dem Hamster ins Maul legen wollen. Geben Sie hier eine sinnvolle Zahl ein, z.B. 10, und klicken Sie dann auf den OK-Button:
Unser Hamster ist ein Tier, das sehr auf Vorsorge für den Winter bedacht ist. Es schluckt die Körner nämlich nicht herunter, wie das jeder vernünftige Hamster tun würde, sondern behält sie im Maul. Wahrscheinlich will er sie in einem geeigneten Vesteck deponieren. Territorium bauen: Jetzt sind wir beim siebten Button. Das Ähren-Symbol deutet schon darauf hin: Mit diesem Button kann man Körner auf die einzelnen Felder legen. Zunächst klicken Sie den Button an, dann klicken Sie auf das Feld, auf das Sie die Körner legen wollen. Danach erscheint wieder eine Dialogbox "Anzahl Körner". Hier geben Sie die Zahl der Körner ein, die Sie auf das Feld legen wollen. Danach klicken Sie den OK-Button, und schon liegen Körner auf dem ausgewählten Feld. Allerdings werden nicht alle Körner angezeigt, sondern maximal 12. Der achte Button ermöglicht es Ihnen, Mauern in dem Territorium zu platzieren. Sie können auf jedes Feld eine Mauer setzen. Sinnvoll sind allerdings längere Mauern, die vier, fünf oder mehr Felder umfassen. Mit Ihrer Maus können Sie ganz einfach ganze Landstriche des Territoriums mit Mauern versehen, indem Sie nämlich die linke Maustaste gedrückt lassen und die Maus dann über die Felder bewegen. Der neunte Button schließlich dient zum Löschen von Körnern oder Mauern. Die beiden nächsten Buttons dienen ganz einfach zum Verkleinern und Vergrößern der Anzeige des Territoriums. Auf diese Weise können Sie auch sehr große Territorien übersichtlich darstellen. Simulationssteuerung: Mit dem Reset-Button können Sie - nach erfolgter Simulation - den ursprünglichen Zustand wieder herstellen. Alle Körner liegen da, wo Sie sie ursprünglich hingesetzt haben, und der Hamster befindet sich ebenfalls wieder in seiner Ausgangsposition. Mit dem Play-Button können Sie die Simulation starten. Vorrausgesetzt, Sie haben ein Java-Programm zur Hamster-Steuerung geschrieben. Mit dem Pause-Button können Sie den Hamster vorübergehend anhalten, und mit dem Stop-Button können Sie die Simulation ganz abbrechen. Ganz rechts finden Sie keinen Button, sondern einen Schieberegler. Wenn Sie diesen nach rechts schieben, läuft die Simulation schneller ab, wenn Sie ihn nach links schieben, wird die Simulation langsamer. Die Mittelstellung ist eigentlich die optimale Stellung. Übung 1.1Erzeugen und speichern Sie nun bitte folgendes Territorium:
1.2 Das EditorfensterAuch das Editorfenster besteht aus drei Teilen: Der Buttonleiste, dem eigentlichen Editor, und einem Verzeichnisbereich (ganz rechts). Beim Starten des Simulators ist der Editor aber noch grau (ich hoffe, unter Windows 2000 oder XP ist das genau so):
Wir wollen nun unser erstes Javahamster-Programm schreiben. Ich werde Ihnen hier Schritt für Schritt erklären, wie das geht. Versuchen Sie bitte an Ihrem Rechner diese Schritte nachzuvollziehen. Schritt 1: Neues Programm erzeugenKlicken Sie auf den Button ganz rechts. Er dient zum Erzeugen eines neuen Java-Quelltextes.
Wenn Sie jetzt etwa gedacht haben, Sie können gleich mit dem Tippen des Quelltextes anfangen, so haben Sie sich geirrt. Zunächst müssen Sie angeben, was für einen Programmtyp Sie erzeugen wollen. Viel Auswahl haben Sie dabei allerdings nicht. Wählen Sie - so wie in der Abbildung - "imperatives Programm" als Programmtyp. Schritt 2: Programm speichernJetzt hat sich tatsächlich etwas getan. Statt der grauen Fläche sehen wir ein schönes weißes Editorfenster, in dem sogar schon etwas steht:
Das Programm hat den vorläufigen Dateinamen "NeuerHamster1". Das heißt, es ist höchste Zeit, das Programm zu speichern, und zwar unter einem ordentlichen Namen. Sehr sinnvoll ist es, das Programm im gleichen Ordner zu speichern wie das zugehörige Territorium. Zum Speichern klicken Sie bitte den dritten Button von links in der Buttonleiste an. Schritt 3: Ein Blick auf die HauptfunktionBetrachten wir nun das eigentliche Editorfenster. Nach dem Erzeugen des Quelltextes wurde automatisch ein leeres Java-Programm in den Editor geschrieben: void main() {
}
Dieses leere Java-Programm hat einen Namen, den Sie gar nicht zu Gesicht bekommen. Was Sie dagegen sehen, ist die Hauptfunktion dieses Programms, und diese Hauptfunktion hat stets den Namen "main". Schritt 4: Das Programm mit Leben füllenErgänzen Sie das Programm jetzt folgendermaßen: Speichern Sie das Programm jetzt! Wählen Sie dazu den gleichen Ordner, in dem Sie das Territorium gespeichert haben (muss nicht sein, erhöht aber die Übersicht). Schritt 5: Kompilieren und Ausführen des ProgrammsNach dem Speichern des Programm klicken Sie bitte auf den Play-Button im Editorfenster. Das Programm wird jetzt kompiliert. Das heißt, Ihr Quelltext wird in eine Datei übersetzt, die Ihr Computer verstehen und ausführen kann. Wenn Sie die neueste Version des Java-Hamsters verwenden, so sollte auch die Simulation automatisch starten. Wenn nicht, so klicken Sie auch im Simulatorfenster auf den Play-Button. Schritt 6: Fehlermeldungen bearbeitenIch hatte bei meinen Versuchen den Hamster aus Versehen falsch positioniert, und zwar oben links statt wie in Übung 1.1 vorgesehen in einem der mittleren Felder. Sehen Sie selbst, was mir dann passiert ist:
Wir sehen hier einen sogenannten Laufzeitfehler. Der Quelltext selbst war in Ordnung, sonst hätte ich schon beim Kompilieren eine Fehlermeldung bekommen. Aber der Hamster war falsch positioniert. Nach dem zweimaligen vor()-Befehl befand sich der Hamster auf dem Feld (0,2) und sollte dort ein Korn aufnehmen. Auf diesem Feld lag aber kein Korn. Also meldete der Simulator den Fehler "KachelLeerException(0,2)" - auf dem Feld (0,2) liegt kein Korn. Normalerweise ist das nicht schlimm, auf den meisten Feldern des Territoriums liegt ebenfalls kein Korn. Aber wenn man dem Hamster befiehlt, ein Korn aufzunehmen, und es ist kein Korn da, so ist das eben falsch programmiert! Also muss man jetzt das Territorium neu bearbeiten und den Hamster richtig positionieren - oder den Quelltext so umschreiben, dass er zu dem Territorium passt. Mehr über Fehlermeldungen können Sie im Lexikon nachlesen! 1.3 FunktionenSie sollen jetzt Ihre erste Java-Funktion schreiben (eigentlich ist auch main eine Funktion, aber die zählt nicht). Verändern Sie dazu den Quelltext folgendermaßen:
void main() {
vor();
vor();
nimm();
rechtsUm();
vor();
vor();
nimm();
}
void rechtsUm() {
linksUm();
linksUm();
linksUm();
}
Sie haben die Funktion rechtsUm geschrieben. Eine Funktion ist eine Art Befehlssammlung oder Makro (ein Begriff, den Sie vielleicht aus Word oder Excel kennen). Ein Bündel von Befehlen also, das gemeinsam ausgeführt wird. Die Funktion rechtsUm führt dreimal den linksUm-Befehl aus, wenn die Funktion aufgerufen wird. Der Quelltext ist jetzt deutlich länger geworden. Wenn Sie in einem Programm den Hamster aber mehrmals rechts drehen wollen, so ist diese Variante übersichtlicher als die vorherige. Aufgabe 1 (2 Punkte)Vervollständigen Sie Ihre erstes Hamsterprogramm so dass der Hamster alle Körner aufnimmt! Sie dürfen gerne eigene Funktionen erfinden und in Ihr Programm einbauen. Die vollständige Punktzahl erhalten Sie nur, wenn Ihr Programm weniger als 48 Zeilen Quelltext hat (siehe Bedingungen weiter unten). Aufgabe 2 (2 Punkte)Erstellen Sie ein neues Territorium und speichern Sie es in Ihrem Ordner unter einem neuen Namen ab:
Schreiben Sie nun ein Programm mit weniger als 85 Zeilen, welches zu folgender Situation führt:
Der Hamster sammelt also alle Körner, die er findet, ein und bringt sie in seinen Bau (in der Mitte). Anschließend verlässt er seinen Bau wieder und rennt zu seinem Ausgangspunkt, an der er Wache hält. Das Programm kann recht lang werden, aber durch den geschickten Einsatz von selbstgeschriebenen Funktionen können Sie die Zahl der Programmzeilen auf unter 85 reduzieren (ich selbst habe 79 Zeilen geschafft). Einen Punkt erhalten Sie, wenn Ihr Programm überhaupt funktioniert. Einen halben Punkt bekommen Sie, wenn das Programm weniger als 85 Zeilen umfasst. Und einen weiteren halben Punkt erhalten Sie, wenn Sie unter 80 Zeilen oder weniger bleiben. Kleiner Hinweis für die fortgeschritteneren Schüler(innen): es sind nur Funktionen erlaubt! For-Schleifen oder dergleichen dürfen nicht eingesetzt werden! Hinweise zu den beiden Aufgaben: Weiter mit Folge 2: Wir programmieren Schleifen
|
|
![]() |
|
|
Diese HTML-Seite wurde erstellt von Ulrich Helmich am 13. Oktober 2004 und stark überarbeitet am 10. August 2006. |