Teil 2: Schleifen

Lösungen

LÖSUNG AUFGABE 2.01: Loop

class MyPlayer extends Player {

  start() {
    while (canMove()) {
      move();
    }
  }
}

LÖSUNG AUFGABE 2.02: Loop Star

class MyPlayer extends Player {

  start() {
    while (!onStar()) {
      move();
    }
  }
}

LÖSUNG AUFGABE 2.03: Leaving the Tunnel

class MyPlayer extends Player {

  start() {
    while (treeLeft() && treeRight()) {
      move();
    }

    putStar();
  }
}

LÖSUNG AUFGABE 2.04: Afraid of Tunnel

class MyPlayer extends Player {

  start() {
    while (!treeLeft() || !treeRight()) {
      move();
    }
    say('AHHHH! This looks very dark in here!');
  }
}

Man könnte die while-Bedingung auch anders formulieren, zum Beispiel:

while (!(treeLeft() && treeRight())

LÖSUNG AUFGABE 2.05: Climbing Up

class MyPlayer extends Player {

  start() {
    while (treeFront()) {
      oneStepUp();
    }
  }

  /// Steigt eine Stufe nach oben.
  oneStepUp() {
    turnLeft();
    move();
    turnRight();
    move();
  }
}