# Roboter mit Schleifen be/entladen



## babuschka (28. Nov 2011)

Hallo,

habe folgendes zu tun:

Ein Roboter soll in einem Raum warten, bis er beladen ist!
Ist er beladen fährt er los und zwar in einem Viereck durch den Raum bis jemand das abnimmt! Hat jemand den Roboter entladen soll er auf ausganssituation und warten bis er beladen ist. Falls nicht fährt er solange im Viereck bis jemand ihn entläd.

Welche Schleifentypen sind ratsam? Do While um alles, While Do Schleife für den ersten Teil wo er schaut ob beladen oder nicht? 

Wär cool wenn Ihr mir weiterhelfen könntet!

VG

xxxx :toll:


----------



## mimo (28. Nov 2011)

Ich halte das Beladen in diesem Fall für eine Methode, bei der eine Ladung übergeben wird. Danach sollte Dein Roboter in einem neuen Thread auf die Reise geschickt werden. Dabei prüft er vor jeder weiteren Etappe ob er noch beladen ist.

```
class Robotor{

  private Object ladung;
  private int station = 0;

  public Object getLadung(){
     return ladung;
     ladung = null;
  }

  public void setLadung(Object ladung){
     this.ladung = ladung;
     new Thread(new Runnable(){

         public void run(){
            while(ladung!=null){
               //fahre zur nächsten Station
               if(station == 3){
                  station = 0;
               }else{
                  station++;
               }
               fahrezu(station);
            }
            station = 0;
            fahrezu(station);
         }
     }).start();
  }

  public void fahrezu(int i){
     //Fahre zur Ecke i
  }

}
```

Meinst Du sowas???

Gruß

MIMO


----------



## babuschka (28. Nov 2011)

ja also die Sache ist die, gemacht werden sollte das mit Schleifen und zwar mit der Do While und While do und jeweils mit If Else Entscheidungen bei jeder Etappe quasi um zu überprüfen ob er noch beladen ist. 

Also die IstBeladen Methode steht schon! Ist als boolean deklariert und gibt somit nur noch true or false aus!

Dachte jetzt daran alles in eine Do-While Schleife zu packen damit er die Schleife stets durchläuft.

Dannach kommt eine While Do Schleife zum überprüfen ob beladen oder nicht. Wenn beladen soll er sich in gang setzen. 

Er fährt im Viereck und wartet in jedem Eck quasi und frägt im nächsten Eck ab ob immer noch beladen oder nicht. Das würd ich dann theoretisch mit IF Else machen oder?

Grüsse


----------



## mimo (28. Nov 2011)

Aber genau das hab ich doch gemacht...

Die Schleife wird gestartet sobald der Roboter beladen wird. Dann fährt er zur nächsten Ecke und prüft ob er noch beladen ist. Wenn er nicht mehr beladen ist, fährt er zurück in die Startecke [0], ansonsten fährt er weiter von Ecke zu Ecke. Und wenn er nicht gestorben ist, dann fährt er auch noch heute...

Gruß

MIMO


----------

