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

public class AB9 extends Roboter
{

    /**
     * Hilfesmethode zum Holen des Aufzugs. 
     */
    public void holeAufzug() {
        if(!istVorne("Schalter")) {
            dreheUm();
        }
        benutze("Schalter");
    }

    /*#
     * Aufgabe 3: Drehe Roboter
     */

    public void dreheRoboter(int richtung) {
        while(getRotation() != richtung) { // Solange die die Richtung des Roboters nicht die geforderte Richtung ist
            dreheRechts();                 // drehe nach rechts
        }
    }

    /*#
     * Aufgabe 4: Laufe zu X-Position
     */
    public void laufeZuXPos(int x) {
        if(x < getX()) {         // Drehe in richtige Richtung
            dreheRoboter(180);
        } else {
            dreheRoboter(0);
        }
        while(x != getX()) {     // Laufe solange die x-Koordinate noch nicht stimmt
            einsVor();
        }
    }

    /*#
     * Aufgabe 5: Fahre Aufzug
     */
    public void fahreAufzug(int etagen, boolean abwaerts) {
        if (istAufGegenstand("Aufzug")) {
            if(abwaerts) {
                dreheRoboter(90);
            } else {
                dreheRoboter(270);
            }

            while(etagen>0 && istVorneFrei()) {
                einsVor();
                etagen--;
            }
        }
    }

    /*#
     * Aufgabe 6: Fahre ins Stockwerk
     */
    public void fahreInsStockwerk(int etage) {
        if(getY() < etage) {        // Nach unten fahren?
            dreheRoboter(90);
        }else {
            dreheRoboter(270);
        }
        while(getY() != etage && istVorneFrei()) {     // Fahre bis zur richtigen Etage
            einsVor();
        }
    }

    /*#
     * Bombe sichern:
     */
    public void holeBombeUndKehreZurueck (int xBombe, int yBombe){
        while (!istAufGegenstand("Aufzug")) {
            einsVor();
        }
        fahreInsStockwerk(yBombe);
        int x = getX();
        laufeZuXPos(xBombe);
        aufnehmen();
        laufeZuXPos(x);
    }
    
    /*#
     * Aufgabe 8: Sprengen
     */
    public void sprenge(int x, int y) {
        fahreInsStockwerk(y);
        laufeZuXPos(x);
        benutze("Bombe");
    }
    
    /*#
     * Aufgabe 9: Stollen fuellen ... 
     * Hier darfst du mal ganz alleine eine Methode mit Parametern implementieren ;-)
     */
   
    public void legeZweierreihe(int breite) {
        while(breite>0){
            ablegen("Brennstab");
            einsVor();
            ablegen("Brennstab");
            breite--;
        }
    }
    /*#
     * Platz fuer weitere Methode(n), die du eventuell fuer den Einsatz 9 benoetigst:
     */

}