Diese Übung ist für Einsteiger in die Programmierung mit dem Hamster gedacht. Umfasst aber nicht die ganz simplen Basics wie Grundfunktionen des Hamsters, sowie die Erklärung von Schleifen, Bedingungen usw. Deshalb sollte man schon etwas Programmiererfahrung mitbringen.
Aufgabe
Der Hamster wohnt in einem Territorium, dessen Aussenwand Nischen enthält. Der Hamster wandert einmal rund herum und legt in jeder dritten Nische ein Korn ab. Dafür hat er genügend Körner im Maul. Der Hamster startet in der linken unteren Ecke und hält dort auch wieder an.
Die Eingangs -und Ausgangssituation als Bild, sowie den Sourcecode, findet ihr am Ende des Artikels.
void main() { int zaehlerNischen = 0; int runden = 4; int aktRunde = 0; while( aktRunde < runden ) { while(vornFrei()) { if( rechtsFrei() ) { zaehlerNischen++; if( zaehlerNischen == 3 ) { // Gehe in Nische und lege Korn ab legeKornInNischeAb(); zaehlerNischen = 0; } } vor(); } linksUm(); if(!vornFrei() ) { linksUm(); vor(); rechtsUm(); } aktRunde++; } }
In unserer Hauptfunktion werden vorab ein paar Variablen instantiiert. zaehlerNischen steht für die aktuelle Anzahl an Nischen, die der Hamster vorbei gelaufen ist. Runden steht für die Runden die er ablaufen soll. In unserem Beispiel entspricht eine Runde 4 Mal.
Der Hamster prüft zunächst ob vor ihm Frei ist. Wenn nein, dann hat er das Ende der aktuellen Ebene erreicht und prüft nach einem linksUm() ob er sich in einer Nische befindet. Falls ja, befreit er sich aus der Nische und ist bereit für den nächsten Schritt.
Ist vor ihm frei prüft der Hamster ob das Feld rechts von ihm eine Nische ist. Wenn ja, zählt er den Zähler der Nischen um eins höher. Danach wird geprüft ob die aktuelle Nische die Dritte ist. Wenn ja wird die Funktion legeKornInNischeAb() aufgerufen und ein Korn in die Nische gelegt. Danach wird der Zähler wieder auf 0 gesetzt.
Die Überprüfung ist nun beendet und der Hamster geht einen Schritt vor.
void legeKornInNischeAb() { rechtsUm(); if( vornFrei() ) { vor(); gib(); kehrt(); vor(); rechtsUm(); } }
Die Funktion wird vom Hauptprogramm aufgerufen, wenn der Hamster bei einer 3.Nische ist. Der Hamster dreht sich rechtsUm(), prüft ob vornFrei() ist. Wenn ja, geht er einen Schritt vor und legt ein Korn ab. Danach dreht er sich wieder um und geht aus der Nische raus.
Download
Links
- Hamster Übung 2
- http://www.u-helmich.de/inf/java2h/seite01.html
- http://www.einstieg-informatik.de/index.php?option=com_content&task=view&id=215&Itemid=117
- http://de.wikipedia.org/wiki/Java-Hamster-Modell
Eingangssituation
Ausgangssituation
http://www.thejaeck.net/2008/12/14/hamster-ubung-3/trackback/



0 Kommentare vorhanden
Kommentar schreiben!