//import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) // public class Rover extends Actor // { // private Display anzeige; // /** // * this function is to be implemented by the user // * depending on the needed actions // */ public void act() { S66Nr3(7); } private void fahreUmHuegel(String richtung) { String pri; String sec; if(richtung.equals("Hoch")) { pri = "links"; sec = "rechts"; } else { if (richtung.equals("Runter")) { pri = "rechts"; sec = "links"; } else { nachricht("JUNGE DU SPAST!"); return; } } drehe(pri); fahre(); drehe(sec); fahre(); fahre(); drehe(sec); fahre(); drehe(pri); } // private void fahreBisHuegel() // { // while(!huegelVorhanden("vorne")) // { // fahre(); // } // } // private void fahreZeileDreheHoch() // { // fahreBisHuegel(); // fahreUmHuegel("Hoch"); // fahreBisHuegel(); // drehe("um"); // fahreBisHuegel(); // fahreUmHuegel("Runter"); // fahreBisHuegel(); // drehe("rechts"); // fahre(); // drehe("rechts"); // } // private void fahreZeileDreheRunter(boolean geheInNächsteZeile) // { // fahreBisHuegel(); // fahreUmHuegel("Runter"); // fahreBisHuegel(); // drehe("um"); // fahreBisHuegel(); // fahreUmHuegel("Hoch"); // fahreBisHuegel(); // if(geheInNächsteZeile) { // drehe("rechts"); // fahre(); // drehe("rechts"); // } else { // drehe("um"); // } // } // private void S66Nr3(int anzahlZeilen) // { // if(anzahlZeilen < 3) { // nachricht("Ich muss mindestens drei Zeilen fahren! :("); // return; // } // fahreZeileDreheHoch(); // //for(int i = 1; i < anzahlZeilen-1; i++) { // fahreZeileDreheRunter(true); // //} // fahreZeileDreheRunter(false); // } // // /** // // * Der Rover bewegt sich ein Feld in Fahrtrichtung weiter. // // * Sollte sich in Fahrtrichtung ein Objekt der Klasse Huegel befinden oder er sich an der Grenze der Welt befinden, // // * dann erscheint eine entsprechende Meldung auf dem Display. // // */ // // public void fahre() // // { // // int posX = getX(); // // int posY = getY(); // // if(huegelVorhanden("vorne")) // // { // // nachricht("Zu steil!"); // // } // // else if(getRotation()==270 && getY()==1) // // { // // nachricht("Ich kann mich nicht bewegen"); // // } // // else // // { // // move(1); // // Greenfoot.delay(1); // // } // // if(posX==getX()&&posY==getY()&&!huegelVorhanden("vorne")) // // { // // nachricht("Ich kann mich nicht bewegen"); // // } // // } // // /** // // * Der Rover dreht sich um 90 Grad in die Richtung, die mit richtung (ᅵlinksᅵ oder ᅵrechtsᅵ) ᅵbergeben wurde. // // * Sollte ein anderer Text (String) als "rechts" oder "links" ᅵbergeben werden, dann erscheint eine entsprechende Meldung auf dem Display. // // */ // // public void drehe(String richtung) // // { // // if(richtung.equals("rechts")){ // // setRotation(getRotation()+90); // // }else if(richtung.equals("links")){ // // setRotation(getRotation()-90); // // } else if(richtung.equals("um")) { // // setRotation(getRotation()+180); // // }else { // // nachricht("Keinen Korrekte Richtung gegeben!"); // // } // // } // // /** // // * Der Rover gibt durch einen Wahrheitswert (true oder false )zurᅵck, ob sich auf seiner Position ein Objekt der Klasse Gestein befindet. // // * Eine entsprechende Meldung erscheint auch auf dem Display. // // */ // // public boolean gesteinVorhanden() // // { // // if(getOneIntersectingObject(Gestein.class)!=null) // // { // // nachricht("Gestein gefunden!"); // // return true; // // } // // return false; // // } // // /** // // * Der Rover ᅵberprᅵft, ob sich in richtung ("rechts", "links", oder "vorne") ein Objekt der Klasse Huegel befindet. // // * Das Ergebnis wird auf dem Display angezeigt. // // * Sollte ein anderer Text (String) als "rechts", "links" oder "vorne" ᅵbergeben werden, dann erscheint eine entsprechende Meldung auf dem Display. // // */ // // public boolean huegelVorhanden(String richtung) // // { // // int rot = getRotation(); // // if (richtung=="vorne" && rot==0 || richtung=="rechts" && rot==270 || richtung=="links" && rot==90) // // { // // if(getOneObjectAtOffset(1,0,Huegel.class)!=null && ((Huegel)getOneObjectAtOffset(1,0,Huegel.class)).getSteigung() >30) // // { // // return true; // // } // // } // // if (richtung=="vorne" && rot==180 || richtung=="rechts" && rot==90 || richtung=="links" && rot==270) // // { // // if(getOneObjectAtOffset(-1,0,Huegel.class)!=null && ((Huegel)getOneObjectAtOffset(-1,0,Huegel.class)).getSteigung() >30) // // { // // return true; // // } // // } // // if (richtung=="vorne" && rot==90 || richtung=="rechts" && rot==0 || richtung=="links" && rot==180) // // { // // if(getOneObjectAtOffset(0,1,Huegel.class)!=null && ((Huegel)getOneObjectAtOffset(0,1,Huegel.class)).getSteigung() >30) // // { // // return true; // // } // // } // // if (richtung=="vorne" && rot==270 || richtung=="rechts" && rot==180 || richtung=="links" && rot==0) // // { // // if(getOneObjectAtOffset(0,-1,Huegel.class)!=null && ((Huegel)getOneObjectAtOffset(0,-1,Huegel.class)).getSteigung() >30) // // { // // return true; // // } // // } // // if(richtung!="vorne" && richtung!="links" && richtung!="rechts") // // { // // nachricht("Befehl nicht korrekt!"); // // } // // return false; // // } // // /** // // * Der Rover ermittelt den Wassergehalt des Gesteins auf seiner Position und gibt diesen auf dem Display aus. // // * Sollte kein Objekt der Klasse Gestein vorhanden sein, dann erscheint eine entsprechende Meldung auf dem Display. // // */ // // public void analysiereGestein() // // { // // if(gesteinVorhanden()) // // { // // nachricht("Gestein untersucht! Wassergehalt ist " + ((Gestein)getOneIntersectingObject(Gestein.class)).getWassergehalt()+"%."); // // Greenfoot.delay(1); // // removeTouching(Gestein.class); // // } // // else // // { // // nachricht("Hier ist kein Gestein"); // // } // // } // // /** // // * Der Rover erzeugt ein Objekt der Klasse ᅵMarkierungᅵ auf seiner Position. // // */ // // public void setzeMarke() // // { // // getWorld().addObject(new Marke(), getX(), getY()); // // } // // /** // // * *Der Rover gibt durch einen Wahrheitswert (true oder false )zurᅵck, ob sich auf seiner Position ein Objekt der Marke befindet. // // * Eine entsprechende Meldung erscheint auch auf dem Display. // // */ // // public boolean markeVorhanden() // // { // // if(getOneIntersectingObject(Marke.class)!=null) // // { // // return true; // // } // // return false; // // } // // public void entferneMarke() // // { // // if(markeVorhanden()) // // { // // removeTouching(Marke.class); // // } // // } // // private void nachricht(String pText) // // { // // if(anzeige!=null) // // { // // anzeige.anzeigen(pText); // // Greenfoot.delay(1); // // anzeige.loeschen(); // // } // // } // // private void displayAusschalten() // // { // // getWorld().removeObject(anzeige); // // } // // protected void addedToWorld(World world) // // { // // setImage("images/rover.png"); // // world = getWorld(); // // anzeige = new Display(); // // anzeige.setImage("images/nachricht.png"); // // world.addObject(anzeige, 7, 0); // // if(getY()==0) // // { // // setLocation(getX(),1); // // } // // anzeige.anzeigen("Ich bin bereit"); // // } // // class Display extends Actor // // { // // GreenfootImage bild; // // public Display() // // { // // bild = getImage(); // // } // // public void act() // // { // // } // // public void anzeigen(String pText) // // { // // loeschen(); // // getImage().drawImage(new GreenfootImage(pText, 25, Color.BLACK, new Color(0, 0, 0, 0)),10,10); // // } // // public void loeschen() // // { // // getImage().clear(); // // setImage("images/nachricht.png"); // // } // // } // // public class Direction { // // Direction(int val){ // // this.value = val; // // } // // final int value; // // }; // // }