Abend alle, übe die Grundlagen bissle mit JavaKara und hab da ein Problem:
Aufgabe ist: Eine Welt ist vorgegeben, umzingelt von Bäumen und innendrin ist alles voll mit Kleeblättern.
Kara(Der Marienkäfer) ist irgendwo mittendrin.
Am anfang soll der Benutzer eine Zahl angeben wieviel Schritte Kara hinterlegt (soweit so gut).
Jetzt soll Kara nach dem "Random Walk" verfahren die Blätter aufsammeln (Eine art Roboter).
bei mir läuft alles, jedoch hab ich es nur so programmiert, dass Kara solange geradeaus läuft, bis ein Baum vorihm ist, dann dreht es sich nach Links um, wenn vor ihm & links von ihm einer ist dreht er sich nach rechts und vor ihm & rechts von ihm einer ist, dreht es sich nach links.
Dadurch entsteht eigtl. immer ein Rechteck beim lauf!
Kann mir da jemand helfen?
Hier mein Code:
Aufgabe ist: Eine Welt ist vorgegeben, umzingelt von Bäumen und innendrin ist alles voll mit Kleeblättern.
Kara(Der Marienkäfer) ist irgendwo mittendrin.
Am anfang soll der Benutzer eine Zahl angeben wieviel Schritte Kara hinterlegt (soweit so gut).
Jetzt soll Kara nach dem "Random Walk" verfahren die Blätter aufsammeln (Eine art Roboter).
bei mir läuft alles, jedoch hab ich es nur so programmiert, dass Kara solange geradeaus läuft, bis ein Baum vorihm ist, dann dreht es sich nach Links um, wenn vor ihm & links von ihm einer ist dreht er sich nach rechts und vor ihm & rechts von ihm einer ist, dreht es sich nach links.
Dadurch entsteht eigtl. immer ein Rechteck beim lauf!
Kann mir da jemand helfen?
Hier mein Code:
Java:
import javakara.JavaKaraProgram;
/* BEFEHLE: kara.
* move() turnRight() turnLeft()
* putLeaf() removeLeaf()
*
* SENSOREN: kara.
* treeFront() treeLeft() treeRight()
* mushroomFront() onLeaf()
*/
public class Randomwalk extends JavaKaraProgram {
public void myProgram() {
int x;
x = tools.intInput("Bitte Anzahl Schritte angeben");
for (int i= 1; i<=x; i++){
kara.move();
if (kara.onLeaf()){
kara.removeLeaf();
}
if (kara.treeFront() && kara.treeLeft()){
kara.turnRight();
}
if (kara.treeFront() && kara.treeRight()){
kara.turnLeft();
}
if (kara.treeFront()&& !kara.treeRight()){
kara.turnLeft();
}
if (kara.treeFront()&& !kara.treeLeft()){
kara.turnRight();
}
}
}
}