Kara - schleife wird nur 1x ausgeführt

  • Themenstarter Themenstarter cyRax
  • Beginndatum Beginndatum
C

cyRax

Gast
Guten Abend,
wir haben in der Schule (wo auch sonst 🙂 ) im September mit JavaKara angefangen.
Nun wollte ich ein paar Übungen durchspielen mit den Möglichkeiten, die wir bereits kennen.
Alles hat bereits funktioniert bis ich zu Kara - Bild invertieren gekommen bin 🙂

Ich wollte den Käfer so programmieren, das er egal wie groß sein Feld ist, er es automatisch abläuft.
Klappt auch alles super bis auf das Ende :-(
Nun hab ich festgestellt, das er die Abfrage meiner Schleife im Hauptprogramm nur einmal durchführt und dann nicht mehr.
Ich habe keine Ahnung wo der Fehler liegt und evtl. könnt ihr mir ja bei diesem "lächerlichen" Problem helfen 🙂

Grüße
Info: Mit Boolean haben wir noch nicht gearbeitet.

Java:
import javakara.JavaKaraProgram;
public class BildEntwickeln extends JavaKaraProgram
{
  void next()
  {
   kara.turnLeft();
   kara.move();
   kara.turnLeft();
  }

  void drehen()
  {
   kara.turnRight();
   kara.turnRight();
  }

  void Leaf()
  {
        if (kara.onLeaf())
        {
          kara.removeLeaf();
        }
        else
        {
          kara.putLeaf();
        }
  }
    
  void zurueck()
  {
    while (!kara.mushroomFront())
    {
      kara.move();
     }
    }

  void Bild()
    { 
      while (!kara.mushroomFront())
      {
        this.Leaf();       
        kara.move();
      }
      {
        this.Leaf();
      }
    }
      

  public void myProgram()
  {
   while (!kara.treeFront())
    {
       Bild();
       drehen();
       zurueck();
       next();
    }
    {
      tools.showMessage("FERTIG");
    }
 }
}
 
Mit LinkedBlockingQueues habt ihr wohl auch noch nicht gearbeitet? Würde hier auch nichts helfen :joke:

Soweit ich das auf die Schnelle nachvollziehen konnte, läuft er genau EINmal in die "Bild()"-Methode rein, und bleibt DORT in der while-Schleife, bis er als klebriger, Schwarz-Rot-Grüner Fleck an einem Baum endet. Mit einer Änderung von "mushroomFront" zu "treeFront" kommt er bis zum Ende. Dann noch "sauber" zu beenden wäre noch was, aber ist vielleicht nicht so wichtig.
 
schaut ganz so aus als hättet ihr einen alten C Programmierer als Lehrer erwischt, der mal als Einstieg Vererbung mit prozeduralen Design mischt. Bitte schreibe Methodennamen anfangs immer klein (LowerCamalCase).
 

Neue Themen


Zurück
Oben