import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

public class AB3 extends Roboter
{

    /*#
     * Aufgabe 1: Feuer loeschen
     */
    public void loesche() {
        einsVor();
        aufnehmen();
        vorBisFeuer();
        loescheReihe();

    }

    /*#
     * Aufgaben 3 & 4: Vor bis zum Feuer (wo auch immer das ist)
     */
    public void vorBisFeuer() 
    {
        while(!istVorne("Feuer")) {
            einsVor();
        }
    }

    /*#
     * Aufgabe 5: Feuersbrunst loeschen
     */
    public void loescheReihe() {
        while(istVorne("Feuer")) {
            benutze("Feuerloescher");
            einsVor();
        }
    }

    /*#
     * Aufgabe 6: Teste Reichweite eines Feuerloeschers
     */
    public void testReichweite() {
        einsVor();
        dreheLinks();
        einsVor();
        aufnehmen();
        dreheUm();
        einsVor();
        einsVor();
        dreheLinks();
        while(getAnzahl("Feuerloescher")>=1) {
            benutze("Feuerloescher");
            einsVor();
        }
    }

    /*#
     * Aufgabe 7: Feuerloescher einsammeln
     */
    public void sammleLoescher() 
    {
        while(istVorneFrei()) {
            einsVor();
            dreheLinks();
            einsVor();
            aufnehmen();
            dreheUm();
            einsVor();
            dreheLinks();
            einsVor();
        }
    }  

    /*#
     * Hilfsmethode fuer Aufgabe 8
     */
    public void laufeBisWand() {
        while(istVorneFrei()) {
            einsVor();
        }
    }

    /*#
     * Aufgabe 8: Homerun
     */
    public void laufeBisSackgasse() {
        laufeBisWand();
        while(!istWandLinks()) {
            dreheLinks();
            laufeBisWand();
        }
    }

    /*#
     * Einsatz 3: Bitte den Namen nicht aendern!
     */
    public void einsatz3() {
         sammleLoescher();
         dreheRechts();
         einsVor();

        while(!istAufGegenstand("Portal")) {
            benutze("Akku");
            einsVor();
            dreheRechts();
            vorBisFeuer();
            loescheReihe();
            dreheUm();
            laufeBisWand();
            dreheRechts();
        }
        
        
        /* Alternativ: ohne unnötige Wege 
         * ------------------------------
         while(!istAufGegenstand("Portal")) {
            benutze("Akku");
            einsVor();
            dreheRechts();
            vorBisFeuer();
            loescheReihe();
            dreheLinks();
            benutze("Feuerloescher");
            einsVor();
            dreheLinks();
            loescheReihe();
            laufeBisWand();
            dreheRechts();
          }
        */
    }
}