Hilfe Programmieren !

12/10/2010 12:27 D0Mi#1
Hallo liebe Community.
Ich bin gerade in der Schule und wir haben in Programmieren eine Aufgabe bekommen, wo ich einfach nicht mehr weiter weis.

Wir arbeiten mit dem "Java Hamster" und er soll mit 2 Körnern die Mitte finden.

[Only registered and activated users can see links. Click Here To Register...]

Er steht ganz links wie auf dem Bild und hat nur 2 Körner im Maul.
Ich freue mich über schnelle Antworten.

Bitte gebt nur sinnvolle Antworten und keine Profi-Programme.
Danke im Vorraus.

/e: Momentan bin ich soweit gekommen:
Quote:
void main() {
while (kornDa()) {
vor();
while (!kornDa())
vor();
nimm();
linksUm();
linksUm();
vor();
gib();
}
}
Und jetzt weiß ich nicht wie ich diese Schleife unterbrechen kann, weil er lauft nun gegen die Wand. :-S
12/10/2010 15:18 MoepMeep#2
Rücks gefälligst gescheit ein, das kann ja niemand lesen.

Übrigens bezweifel ich stark, dass viele hier mit dem "Java Hamster" bisher gearbeitet haben, vielleicht solltest du dein Problem ein wenig genereller fassen.
12/10/2010 15:51 SpinnenGetier#3
körner, von was brabbelst du da eigentlich? Falls du meinst er soll die Mitte des 10 flächigen Rechtecks finden, dann muss dein Programm a) wissen wie viele Felder die Strecke hat und b) dann mit Mathe die Mitte herausfinden.

In diesem Sinne:
Quote:
int i;
while(vor() != false){
i++;

}

if(i%2 ==0){
//es gibt keine Mitte
}else{
//Mitte -_-
}
Formulier dein Problem richtig, oder lade hier mal deine LIB (mit dem schwulen hamster) hoch, meinst du wir können hellsehen?

Ps: Ich habe eine Aufgabe für dich: da ist Sepp und Sepp ist 3 kilo schwer, kannst du mir sagen wie gross eigentlich der Herr Möller ist?
12/10/2010 18:44 Goxide#4
Hab mal schnell nach dem Hamster-Simulator gegoogelt und auf ein paar Methoden gestoßen.

Lass den doch einfach den Hamster solange laufen, bis er vor einer Wand steht (zum Beispiel so: while(!vornFrei()) ) . Bei jedem Schritt zählst du nen counter hoch. Wenn er vor einer Wand steht, dann kannst du ihn um 180° drehen und den counter halbieren, so weißt du, nach wieviel Schritten du in der Mitte bist. Dann kannst du ja einfach den Hamster solang nach vorne laufen lassen, bis er soviele Schritte gemacht hat, das er in er Mitte ist.
12/19/2010 02:28 Placebo007#5
hier eine Lösung.. ganz simpel geschrieben und natürlich getestet..
diese Hilfe kommt nun sicher zu spät aber du kannst ja dein progr. von der Schule mal hier rein stellen^^

Quote:
void main()
{
int schritte = 0; // zum Abspeichern der gelaufenen Schritte

//jetzt vor bis an die wand und unterwegs alle Körner aufsammeln
while (vornFrei()){
while (kornDa()){
nimm();
}
vor();
schritte = schritte + 1; // und gleich die Schritte merken
}

linksUm(); linksUm(); //kehre um

// laufe zurück
// die Schleife wird so oft durchlaufen, wie der
// Hamster Schritte bis zur Wand benötigt hatte
// geteilt durch 2
while (schritte > 0)
{
vor();
schritte = schritte / 2;
}
gib(); // so das erste Feld von der Mitte erreicht und wird mit dem ersten Korn markiert
vor(); // ein Feld vor
gib(); // das zweite Feld von der Mitte welches mit dem zweiten Korn markiert wird

// das hier kann man weg lassen..der Hamster läuft nur noch zurück an den Startpunkt
while (vornFrei()){
vor();
}
linksUm(); linksUm(); //kehre um

}