Java Code Hilfe/hilfestellung / Schulaufgabe

...komplette Frage anzeigen Aufgabe - (Programm, programmieren, Informatik) Mein Ansatz - (Programm, programmieren, Informatik)

4 Antworten

Die Antwort ist ja schon in der Frage so wie ich das sehe: "der aukku ist auf der gleichen höhe[...]gehe davon aus das keine zwei Wände hintereinander liegen"

Das bedeutet was der Roboter ständig schaffen möchte ist auf der Mittelspur zu sein! Wenn das nicht geht muss er einen nach rechts und dann solange einen nach vorne bis er wieder auf die Mittelspur kann. Da du die act-Methode nicht verwenden darfst würde ich das rekursiv lösen!

xxAusgang 08.12.2013, 22:15

Hättest du eine Idee wie ich das in Java mit Hilfe von while, for und if-else Strukturen ausdrücken kann?

0
captainjj100 08.12.2013, 22:24
@xxAusgang

Ich dachte du wolltest nur einen Tipp ;)

Naja: Sowie ceevee das schon unten gemacht hat und das in einer while-Schleife die als Bedingung so etwas hat wie:

!akkuGefunden

Also (hoffe das ist ceevee recht) ungefähr so:

while(!akkuGefunden) {
    if(wandVorne()) {
        dreheLinks();
        bewegen();
        dreheRechts();
        bewegen();
        bewegen();
        dreheRechts();
        bewegen();
        dreheLinks();
    } else {
        bewegen();
    }
}
0

Greenfoot kenn ich nicht, ich gehe mal davon aus, dass "bewegen()" bedeutet, dass der Roboter sich ein Feld in Blickrichtung nach vorne bewegt und dreheLinks() / dreheRechts 90°-Drehungen sind. Dann wäre der Code, um eine Wand zu umlaufen

if(wandVorne())
{
    dreheLinks();
    bewegen();
    dreheRechts();
    bewegen();
    bewegen();
    dreheRechts();
    bewegen();
    dreheLinks();
}

Das Bewegungsmuster, um eine Wand zu "umlaufen", kannst du mit irgendwelchen Spielfiguren, Schreibtischutensilien oder sonstwas nachspielen, um dir das zu veranschaulichen.

Offensichtlich muss er anstatt an der Wand vorbeizulaufen, um diese herumlaufen, ein mögliches Problem wären dann zwei Wände hintereinander.

Ein Rat oder Tipp würde mir reichen. :)))))) Vielen dank schonmal

captainjj100 08.12.2013, 17:26

Die Antwort ist ja schon in der Frage so wie ich das sehe: "der aukku ist auf der gleichen höhe[...]gehe davon aus das keine zwei Wände hintereinander liegen"

Das bedeutet was der Roboter ständig schaffen möchte ist auf der Mittelspur zu sein! Wenn das nicht geht muss er einen nach rechts und dann solange einen nach vorne bis er wieder auf die Mittelspur kann. Da du die act-Methode nicht verwenden darfst würde ich das rekursiv lösen!

0

Was möchtest Du wissen?