Hamster Logo

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 steht in der linken unteren Ecke mit Blick nach rechts. Vor ihm befindet sich ein unregelmäßiger Berg, der auf der einen Seite nur ansteigt (in Stufen, die unterschiedlich breit und hoch sein können), und der auf der anderen Seite absteigt (in Stufen, die unterschiedlich breit und hoch sein können). Der Hamster klettert auf die Spitze des Berges und bleibt dort stehen.

Die Eingangs -und Ausgangssituation als Bild, sowie den Sourcecode, findet ihr am Ende des Artikels.

void main() {
  while( laufeBisBerg() ) {
    while( rechtsMauer() ) {
      vor();
    }
    rechtsUm();
  }
  kehrt();
  vor();
  kehrt();
}

Zunächst läuft der Hamster bis zum Berganfang. Hat er diesen erreicht wird die nächste Schleife aufgerufen. Hier wird geprüft ob rechts von ihm eine Mauer ist. Wenn ja, geht der Hamster ein Schritt nach vorne. Falls nicht, dreht er sich rechts. Was bedeutet, dass der Hamster auf der nächsten Ebene des Berges ist. Nun läuft er wieder bis zum Berganfang.

Hat der Hamster den Berggipfel erreicht, dreht er sich noch einmal und geht einen Schritt zurück.

boolean laufeBisBerg() {
  while(vornFrei()) {
    vor();
    if( !rechtsMauer() )
      return false;
  }
  linksUm();
  return true;
}

Solange vor dem Hamster keine Mauer ist geht er einen Schritt vor. Ist rechts von ihm keine Mauer, heißt dies, dass der Hamster den Gipfel des Berges erreicht hat. Und die Hauptschleife endet in der main() endet.

boolean rechtsMauer() {
  rechtsUm();
  if( !vornFrei() ){
    linksUm();
    return true;
  }
  else {
    linksUm();
    return false;
  }
}

Prüft ob rechts von dem Hamster eine Mauer ist oder nicht. Falls ja, wird true zurück gegeben. Falls nein, false.

Die restlichen Funktion findet ihr im ZIP-File.

Download

Links

Eingangsituation

Hamster - Übung 1 - Eingangsituation

Ausgangssituation

Hamster - Übung 1 - Ausgangssituation


http://www.thejaeck.net/2008/11/26/hamster-ubung-1/trackback/