Erste Schritte ich sitze fest

Oki

Mitglied
hallo erstmal,:bahnhof:

ich habe eine aufgabe zu erledigen aber leider komme ich nicht mehr weiter:noe:. ich komm mit den verschachtelungen nicht klar und meine lehrerin :wuerg: kann einfach nichts erklären, egooo.

also die aufgabe lautet: der hamster steht in einem territorium das einzelne innere mauerblöcke enthält. es liegen körner rum die der hamster finden soll und zum ausgangspunkt zurück bringen soll.

kann mir Bitte jemand sagen wie das angehen soll oder noch besser zeigen wie das geht... :reflect:

danke im vorraus :toll:
 

strußi

Top Contributor
das kann nicht die ganze aufgabe sein, außerdem wäre es schön, wenn du noch zeigen würdest, was du bereits in code hast.

mein ansatz,
public class Hamster (startpunkt (x, y) boolean korn, list weg (zum zurücklaufen)
public class Spielfeld mit mauern und körnern

grüße
 

Oki

Mitglied
ich habe bis jetzt nicht mal richtig hingekriegt dass er rumläuft;( das ist was ich bis jetzt gemacht habe:

Java:
int a=1;
int b=1;
boolean c=true;
void main() {
   
    laufen();
    Rechts();
   
    
   }

//Hamster läuft systematisch im Feld
void laufen(){ 
while(c){
    while(vornFrei()&&!kornDa()){
    		vor();b=b+1;}
// Gefundene Körner Werden Gesammelt und gezählt
    	if(kornDa())
    		{nimm();a=a+1;}
    	if (!vornFrei())
    		{Rechts();
    	if (vornFrei()){
    		vor();Rechts(); b=b+1;}
    	if (!vornFrei()){Rechts();}
    while(vornFrei()&&!kornDa()){
    	vor();b=b+1;}
// Gefundene Körner Werden Gesammelt und gezählt
    	if(kornDa())
    		{nimm();a=a+1;}
    	while (!vornFrei()){
   			linksUm();
   			}
   			if (vornFrei()){
    		vor();linksUm();b=b+1;}
    		if (!vornFrei()){Rechts();}
    	
    	}}
    	
}
 void Rechts(){linksUm();linksUm();linksUm();}
 
Zuletzt bearbeitet von einem Moderator:

VfL_Freak

Top Contributor
Moin,

formatiere Deinen Code vernünftig und - vor allem - poste ihn in JAVA-Tags !
Steht doch groß über dem Editor:
Java™ Quelltext ist bitte in [JAVA ]-Tags zu schreiben:
Java:
hier Java Code einfügen[/JAVA ][/B]

So bekommt man ja Augenkrebs ...

Gruß Klaus
 
Zuletzt bearbeitet:

VfL_Freak

Top Contributor
So, habe es mal auf die Schnelle etwas verbessert:
Java:
int a=1;
int b=1;
boolean c=true;

void main()
{
    laufen();
    Rechts();
}


// Hamster läuft systematisch im Feld
void laufen()
{
    while(c)
    {
      while( vornFrei() && !kornDa() )
      {
          vor();
          b=b+1;
      }

      // Gefundene Körner Werden Gesammelt und gezählt
      if( kornDa() )
      {
        nimm();
        a=a+1;
      }

      if( !vornFrei() )
      {
          Rechts();
          if( vornFrei() )
          {
             vor();
             Rechts();
             b=b+1;
      }

     if( !vornFrei() )
     {
         Rechts();
     }

     while( vornFrei() && !kornDa() )
     {
         vor();
         b=b+1;
     }

     // Gefundene Körner Werden Gesammelt und gezählt
     if( kornDa() )
     {
         nimm();
         a=a+1;
     }

     while( !vornFrei() )
     {
         linksUm();
     }

     if( vornFrei() )
     {
          vor();
          linksUm();
          b=b+1;
     }

     if( !vornFrei() )
     {
          Rechts();
     }
    } // if( !vornFrei() )
  } // while(c)
} // laufen


void Rechts()
{
    linksUm();
    linksUm();
    linksUm();
}
Jedoch fehlt hier noch so einiges an Code .....

SO ist er zum einen gar nicht lauffähig!

Sodann: was machen denn folgende Methoden (Code??) ??
linksUm(), vornFrei(), vor(), nimm(), kornDa()

Was soll die seltsame Methode "Rechts()"? Dreimal "linksUm()" == rechts ?????

Was bedeuten die Variablen 'a' und 'b'?? Sie werden nirgendwo benutzt!
Zudem besser: sprechende Variablennamen !!

EDIT: Außerdem liefert Dein Programm durch "while(c)" eine wunderschöne Endlosschleife und terminiert nie !!

Gruß Klaus
 
Zuletzt bearbeitet:

Oki

Mitglied
ich habe da irgendwas versucht... aber nicht hinbekommen, deshalb die variablen a und b. ich programmiere mit 'hamster simulator' und des sind da so standart befehle... :noe:
 

VfL_Freak

Top Contributor
Moin,

ich habe da irgendwas versucht... aber nicht hinbekommen, deshalb die variablen a und b.
Ok, dann nimm' sie hier besser raus ... sie irritieren nur !

ich programmiere mit 'hamster simulator' und des sind da so standart befehle... :noe:
Nur wird hier keiner Deinen 'hamster simulator' kennen und dementsprechend auch nicht wissen, was dabei Standadbefehle sind rsp. was die Funktionen konkret machen !

ergo: mehr Details bitte ;)

Gruß Klaus
 

strußi

Top Contributor
Spezille Hamsterseite das ganze gibt es auch alsturtle variante.

Hab mir das angeschaut, und festgestellt, das ein feld mehr als ein korn haben kann. deshalb sollte sich der Hamster merken ob auf dem feld, wo er ein korn gefunden hat, noch eins liegt, oder vlt auf dem nachbarfeld/ern welche liegen, dann kann er den gefundenen weg wiederverwenden, wenn da noch körner liegen, und muss nicht neu suchen
 
Zuletzt bearbeitet:

Neue Themen


Oben