Kann jemand bei BlueJ helfen, Informatik?
Man muss die Turtle so programmieren, dass sie nur im roten Bereich läuft und vor den anderen abdreht. Stoff neunte Klasse Gymnasium
2 Antworten
Ich gehe davon aus, dass ihr einen Leitfaden vom Unterricht aus bekommen habt.
Im Unterricht nutzen wir zwar auch Java für unsere Programme, jedoch kenne ich den exakten Syntax von BlueJ nicht. An sich sollte die Struktur in etwa so aussehen (Pseudocode):
If(Turtle.berührtRot()){
Turtle.Drehen(5);
Turtle.Gehen(1);
}
Hierbei beschreibt "if" einen bedingten Fall, sprich "Wenn die Turtle Rot berührt, mache xyz". Ich bin nicht sicher, wie es bei euch gelöst ist, aber vermutlich musst du mit den Funktionen "Drehen()" und "Gehen()" angeben, das die Turtle gemeint ist.
Du kannst den Code-Snippet angepasst in die Hauptschleife des Projekts packen. Jedoch habe ich nicht genug Informationen über BlueJ um gescheit zu helfen. Probiere mal das Snippet aus und wenn es nicht klappt, schreibe bitte privat, damit wir hier nicht alles vollschreiben müssen.
In diesem Stil sollte es gehen:
(Pseudocode. Keine Ahnung, was Bluej ist xD)
boolean walking = true;
while (walking) {
step(10); //Schritt machen
if (getArea() != greenArea) { //grünen Bereich verlassen?
step(-10); //Ups... Schritt rückgängig machen
rotate(random(360)); //Richtung ändern
}
}
Ist primitiv, erfüllt aber die Aufgabenstellung. Musst noch was einbauen, um das Laufen zu beenden. Taste drücken oder sowas und dann walking auf false stellen, so dass die Schleife beendet wird.
Wenn du es etwas besser machen möchtest, kannst du es vorausschauend programmieren, so dass die Kröte die Laufrichtung rechtzeitg korrigiert, so dass sie gar nicht erst auf die verbotenen Felder gelangt.
PS: Du solltest keine Umlaute im Code verwenden.