Hamstersimulator-Hat jemand die Lösung für das?
Hey zusammen,
undzwar bin ich eine totale Niete in Informatik und wollte fragen, ob jemand die Lösung für diese Aufgabe kann?
Das würde mir total helfen! Denn ich brauche da Hilfe!
dankeschön scjonmal im Voraus
1 Antwort
Der Hamster isst immer genau ein Korn. Egal ob eins oder mehr Körner auf dem Feld sind. Das könnte man so umsetzen:
if(kornDa() == true)
nimm();
Wollen wir uns aber mal die gesamte Aufgabe anschauen:
Er läuft geradeaus, bis er vor sich eine Wand hat, dann dreht er sich nach rechts und geht drei Mal geradeaus. Da du das Territorium kennst, kannst du die Felder abzählen, sind hier ja nicht gerade viele. Ansonsten nutzt du eine while-Schleife.
while(vornFrei() == true) { //Solange das Feld vor dem Hamster frei ist
vor();
if(kornDa() == true) { //Wenn auf dem Feld mind. ein Korn ist
nimm();
}
}
rechtsUm(); //Diese Methode musst du selbst schreiben
// Das Programm ist noch nicht beendet, du bist dran
Den Rest schaffst du selbst. Wenn nicht, stelle gezielte Fragen.
Hinweise:
- Du kannst wie im 1. Quelltext bei if-Anweisungen und while-Schleifen die Mengenklammern "{}" weglassen, wenn es in ihr nur einen Befehl gibt. Habe ich im 2. Quelltext aber trotzdem nicht weggelassen, damit es für dich als Anfänger übersichtlicher ist.
- Des Weiteren musst du die Methode rechtsUm() selbst schreiben, denn den kennt der Hamster nicht. Er kennt dafür den Befehl linksUm(). Wenn sich der Hamster drei Mal nach links dreht, dreht er sich nach rechts. Schreibe also eine neue Methode wie folgt:
void rechtsUm() {
linksUm();
linksUm();
linksUm();
}
Jetzt kannst du den Befehl rechtsUm() auch verwenden.