Hilfe beim Hamsterprogramm

Twing

Grünschnabel
Hallo erstmal,

so ich habe ein Problem bei meiner Hausaufgabe (welche bis morgen fertig seien sollte).

Aufgabe: Der Hamster muss schnellst möglich alle Körner einsammeln und unten rechts stehen bleiben. (Karte im Anhang)

Bedingungen: Die Spur der Körner darf sich nicht kreuzen, muss ununterbrochen sein und die Spur sowie auch die Mauer (im inneren) dürfen variabel sein.

Wäre nett wenn mir wer schnell eine Lösung geben könnte:)

MfG Twing (euer neuer Member)
 

Anhänge

  • hamster.jpg
    hamster.jpg
    25,1 KB · Aufrufe: 36
Zuletzt bearbeitet:
hi,
du bist vielleicht mutig, am Abend davor noch um die Hausaufgabe zu bitten.
Den kompletten Code habe ich zwer jetzt auch nicht mehr geschafft, aber einen Algorythmus in der Pseudo-Programmiersprache Robot Karol kann ich dir schon liefern
Code:
 Programm
  solange nicht istEnde tue
     wenn istKorn dann
       aufheben
       schritt
     sonst
        solange nicht istKorn tue
            linksdrehen
        *solange
     *wenn
  *solange
*Programm
Um das ganze grafisch in Java zu übersetzen, ist ein Abend denke ich zuwenig.

Ciao
DosCoder
 
Zuletzt bearbeitet:
Dankeschön, aber wirklich weiter helfen tut es mir nicht...
Mein Problem besteht einzig allein darin, dass zu übersetzen, damit es der Hamster versteht.
Mhh dann wird es doch noch ein langer Abend werden...
 
Hi
es könnte ungefähr so funktionieren:
Java:
package de.***zensiert***.hamster
import java.awt.Point;

class Main
   static int[][] feld = new int[feldgroesse.widht][feldgroesse.height]
   static point position = new Point(1,1)
   static int blickrichtung = 1 /*1 = süd
                                            2 = west
                                            3 = nord
                                            4 = ost*/
   
   static void main(String[] args){
       do{
         switch(blickrichtung){
         case 1:
             if(feld[position.x][postion.y+1] == 1) {//1=Korn
                aufheben();
                schritt();
             else{ 
                   linksdrehen;
             }
           //[Rest kannst Du dir denken]    
         }
    }
    
    static void schritt(){
        switch(blickrichtung){
        case 1: position.y++; break;
        //[...]
    }

   static void aufheben(){
        switch(blickrichtung){
         case 1: feld[position.x][posiiton.y +1] = 0; break;
         //[..]
   }

   static void linksdrehen(){
      if (blickrichutng == 1){
         blickrichtung=4;
     else{blickrichtung--;}
   }

}

//Für Schäden, die der Code auf dem PC verurschachen könnte, übernehme ich keine Haftung. Dieser Code darf frei kopiert und genutzt werden.
In irgenteiner Methode musst du natürlich noch die Position der Körner festlegen
Der Code ist nur ein kleiner Denkanstoß, er ist nicht getestet oder gut überdacht, aber mehr helfen kann ich dir im Moment nicht. Sorry.

Ciao
DosCoder
 
Zuletzt bearbeitet:
Hallo erstmal,

so ich habe ein Problem bei meiner Hausaufgabe (welche bis morgen fertig seien sollte).

Aufgabe: Der Hamster muss schnellst möglich alle Körner einsammeln und unten rechts stehen bleiben. (Karte im Anhang)

Bedingungen: Die Spur der Körner darf sich nicht kreuzen, muss ununterbrochen sein und die Spur sowie auch die Mauer (im inneren) dürfen variabel sein.

Wäre nett wenn mir wer schnell eine Lösung geben könnte:)

MfG Twing (euer neuer Member)

Hallo,

in diesem Forum wird auf Eigeninitiative Wert gelegt. Das heißt, wenn du Probleme bei deinem Code hast, wird dir gerne geholfen. Du kannst aber nicht erwarten, dass dir jemand hier direkt die komplette Lösung postet. Vor allem nicht, wenn es sich um eine Hausaufgabe handelt und diese noch am nächsten Tag abgegeben werden muss.

MFG

Sascha
 
Zurück