/* Aufgabe 3 (von http://www.gierhardt.de/informatik/info11/javakara.html):
Kara spielt Pacman: Er steht auf dem ersten Kleeblatt einer langen Spur 
von Kleeblättern, die vor einem Pilz endet. Er soll alle Kleeblätter 
auffressen. 
*/

public class Solist extends Marienkaefer {

  void turnAround()
  {
    kara.turnLeft();
    kara.turnLeft();
  }

  void moveBack()
  {
    turnAround();
    kara.move();
    turnAround();
  }

  boolean vorneGehtsWeiter()
  {
    if (kara.treeFront()) { return false; }
    else { // jetzt muss man nachschauen
           kara.move();
           if (kara.onLeaf())
                {
                  moveBack();
                  return true;
                }
           else {
                  moveBack();
                  return false;
                }
         }
  }

  boolean linksGehtsWeiter()
  {
    if (kara.treeLeft()) {return false;}
    else { // jetzt muss man nachschauen
           kara.turnLeft();
           kara.move();
           if (kara.onLeaf())
                {
                  moveBack();
                  kara.turnRight();
                  return true;
                }
           else {
                  moveBack();
                  kara.turnRight();
                  return false;
                }
         }
  }


  void naechstesKleeblattSuchen()
  { if (!vorneGehtsWeiter())
         { if (linksGehtsWeiter()) { kara.turnLeft(); }
           else { kara.turnRight(); }
         }
    kara.move();
  }


  public void myProgram()
  { 
    while ( !kara.mushroomFront() )
      {
        kara.removeLeaf();
        naechstesKleeblattSuchen();
      }
    kara.removeLeaf();

  }
}

