Wir nutzen im Informatikunterricht das Programm Greenfoot. Kann mir da jemand bei einer Programmierfrage helfen?

1 Antwort

Ich kenne leider weder das Programm, noch die Funktionsweise.

Es fehlen leider ein paar Angaben wie: Welche Fehler werden ausgegeben, oder gibt es Fehler? Macht der Roboter überhaupt etwas wenn Act gedrückt wird oder macht er nur etwas Falsches?

Ein paar Sachen, die dennoch auffallen: Der Block einer Methode muss in {}, nach void <name> müssen die Parameter in () übergeben werden und wenn act nur einmal aufgerufen wird und bewegen() den Roboter nur ein Stück nach vorne bewegt, muss die if-Bedingung in eine Schleife, damit nach jedem Schritt überprüft wird, ob eine Wand vor dem Roboter ist.

Der Code könnte dann etwa so aussehen:

public void act(){
   while(true){
      if(wandVorne()){
         umWandGehen();
      }
      else{
         bewegen();
      }
   }
}

Es kann natürlich auch eine andere Schleife/Schleifenbedingung verwendet werden.

Ich hoffe, dass ich dir helfen konnte, falls nicht, kannst du gerne nochmal nachfragen ;)

mariayy 
Fragesteller
 22.08.2015, 10:28

Danke

0
mariayy 
Fragesteller
 22.08.2015, 10:36
@mariayy

Ich habe gerade gemerkt, dass wir keine Schleifen benutzen sollen bzw dürfen. "While" ist doch eine Schleife oder? Funktioniert meine Aufgabe auch ohne Schleifen?

0
Computator  22.08.2015, 19:31
@mariayy

Ja, while ist eine Schleife.

Leider fällt mir als zweite Lösung nur Rekursion ein, was man auch als eine Art Schleife bezeichnen könnte. 
Rekursion wäre:

else{
   bewegen();
   act();
}

Wenn act allerdings nur einmal aufgerufen wird und bewegen() den Roboter nur ein Stück nach vorne bewegt ist die Aufgabe ohne Schleife oder Rekursion nicht lösbar.

0