Wie kann ich die Aufgabe lösen in JavaKara?

2 Antworten

Mein Name ist Geronimo Röder,

Du musst das Problem aufteilen und bei dem Basis anfangen. Benutzen sollst du 2 "for-schleifen" benutzen, jetzt kannste dir überlegen was das Abbruchkriterium für die beiden sein soll, und da es zählende For-schleifen werden bleiben dir nur Zahlen über. So welchen haben wir denn da, einmal eine 7, also die Anzahl der Kleeblätter. Nun das 2 Kriterium ist etwas weniger offensichtlich aber dennoch logisch nämlich 4, für die anzahl der ecken eines Quadrates.Jetzt Soll Kara an jeder Seite Blätter legen Heißt du brauchst eine schleife zum ablegen die bis 7 läuft und eine zum drehen dei bis 4 läuft (bzw. 3 weil du ja die erste Seite nicht doppelt machen willst) .Nun schachtelst du wie folgt:

for(int i=0,i<3,i++){

       for(int o=0,o<6,o++){ 

                    legeblatt(); 

                    geheVor();

                   }

dreheRechts();

Gruß der Röder


einhoernchenx 
Fragesteller
 26.09.2017, 22:57

Vielen Dank für deine Antwort. Ich schätze sie sehr. Jetzt habe ich es verstanden! Danke nochmal Geronimo Röder!!

0
dannyotti  26.09.2017, 23:01

Mhhh, ich habe es so verstanden, dass er ein ausgrfülltes Quadrat legen soll. Aber das macht mehr Sinn. Andernfalls hätte man mit % arbeiten müssen, und glaub das ist zu weit. Dennoch habe ich eine Korrektur vorzunehmen:

for(int i=0,i<3,i++){
for(int o=0,o<6,o++){
geheVor();
legeblatt();
}
dreheRechts();
}

Andernfalls hat das Quadrat nur eine Seitenlänge von 6 und das letzte Blatt wird auf den start gelegt;)

0

Ich füge noch ein Bild von der Aufgabe ein

Hast du nicht gemacht, ist aber auch ohne verständlich.

Letztendlich hast du zwei for-Schleifen. Die äußere ist für die "Zeilen" zuständig, die innere für die "Spalten". D.h. die innere legt eine jedes einzelne Kleeblatt, bis die Zeile voll ist, dann wendet Kara und es wird eine weitere Zeile gelegt. Die äußere for-Schleife steuert somit, wie oft dies wiederholt werden soll.

Solltest du jetzt noch nicht auf die Lösung kommen können, hier eine mögliche Lösung (allerdings mit ausgedachten Methodennamen, weil ich JavaKara vor vielen Jahren das letzte Mal benutzt habe und die nicht mehr kenne):

int wendeArt = 0;

for(int i = 0; i < 7; i++) {

  for(int j = 0; j < 7; j++) {
    kara.legeKleeblatt();
    kara.gehe();
  }
  
  for(int k = 0; k < 2; k++) {
    if(wendeArt == 0) {
      kara.dreheLinks();
    } else {
      kara.dreheRechts();
    }
    kara.gehe();
  }

  if(wendeArt == 0) {
    wendeArt = 1;
  } else {
    wendeArt = 0;
  }

}

Dabei muss Kara nach rechts ausgerichtet starten.