Frage von Hennemi, 23

Java Proboter erweitern, aber wie?

Ich soll für ein Referat einen Progammtext schreiben. Den Großteil habe ich geschafft, aber habe jetzt einen totalen Hänger.

.

Dort soll ich jetzt noch Programmieren, das der Roboter sich auf Befehl hin nach Norden ausrichtet. Aber ich weiß echt gerade nicht wie. Hat jemand vielleicht eine Idee? Ein Tip reicht mir, dies soll keine Hausaufgaben-erledigung sein!

.

public class PRoboter { public PRoboter(int x, int y, char richtung) { robbie = new Roboter(x, y, richtung); }

public void einsvor() { robbie.einsvor(); }

public void rechts() { robbie.rechts(); }

public void links() { robbie.links(); }

public char getRichtung() { return robbie.getRichtung(); }

public int getX() { return robbie.getX(); }

public int getY() { return robbie.getY(); }

//-------------------------------------------------

public void zehnvor() { int i = 1; while (i < 11) { robbie.einsvor(); i = i + 1; } }

public void wenden() { robbie.rechts(); robbie.rechts(); }

public void zehnzurueck() { this.wenden(); this.zehnvor(); this.wenden(); }

//-------------------------------------------------

// Drehung nach Norden

private Roboter robbie; }

Gruß

Expertenantwort
von KnusperPudding, Community-Experte für Java, 15

Wenn man nun die Methoden der Klasse: "Roboter" kennen würde, könnte man dir ggf. auch helfen...

Kommentar von KnusperPudding ,

Ohne diese Kenntnis, wäre eine Möglichkeit eine Methode zu entwerfen, die sich auf: "getRichtung" bezieht und hier per Bedingung zu fragen, pseudocode:

if (getRichtung() == "Osten") {
  links();
} else if (getRichtung() == "Süden") {
   ....
} ...
Kommentar von ralphdieter ,

Vermutlich geht's so:

while (getRichtung() != 'N') {
links();
}
Kommentar von KnusperPudding ,

Das geht natürlich auch. so hätte man bei jeder Himmelsrichtung eine Linksdrehung. - Oder man frägt alternativ noch den westen ab und spart sich 2 links durch eine Rechtsbewegung. - So oder so, es ist sicher ein akzeptabler Lösungsweg.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten