Advertisement
Guest User

Untitled

a guest
May 27th, 2015
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.82 KB | None | 0 0
  1. ü/** Loesung zu Szenario 24 - Die laengste Baumreihe
  2. *
  3. * Aufgabenstellung:
  4. * Auf der Wiese gibt es verschiedene Baumreihen. Kara soll nun die Laenge
  5. * (in Anzahl Baeumen) der laengsten Baumreihe ermitteln und auf der Konsole
  6. * ausgeben.
  7. * Zwischen den Baumreihen ist immer mindestens ein Feld Platz.
  8. * Auf dem letzten Feld liegt ein Kleeblatt.
  9. *
  10. * Anforderung: Variablenwerte zwischenspeichern und ueberschreiben
  11. *
  12. * Kommentiere deine Programmierung!
  13. */
  14.  
  15. public class MyKara extends Kara
  16. {
  17. // Damit die Variable 'laengsteBaumreihe' fuer alle Methonden gueltig ist,
  18. // muss sie ausserhalb der Methoden definiert und initialisiert werden.
  19. int laengsteBaumreihe = 0;
  20.  
  21. public void act()
  22. {
  23. // Solange Kara nicht auf einem Blatt steht,
  24. while (!onLeaf())
  25. {
  26. // Falls er vor einem Baum steht, soll er sich links drehen und
  27. // die Baumreihe zaehlen.
  28. if (treeFront())
  29. {
  30. baeumeZaehlen();
  31. }
  32. // Ansonsten soll er gehen. Die ist z. B. der Fall, wenn zwischen
  33. // den Baumreihen mehr Platz ist und er so bis an die naechste
  34. // Baumreihe gelangen soll.
  35. else
  36. {
  37. move();
  38. }
  39. }
  40.  
  41. // Hier wird ein String-Text und ein Variablenwert auf der Konsole
  42. // ausgegeben. Er wird mit '+', einer sogenannten Konkatenation, d.h.
  43. // einer Verknuepfung, miteinander verbunden.
  44. System.out.println("Die laengste Baumreihe ist " + laengsteBaumreihe
  45. + " Baeume lang.");
  46.  
  47. // Hier steht, was nach dem 'while (!onLeaf())' passiert, naemlich
  48. // dass das Szenario beendet werden soll.
  49. stop();
  50. }
  51.  
  52. // Kara geht die Beimreihen hoch und wieder herunter und zaehlt dabei die
  53. // Baeume.
  54. public void baeumeZaehlen()
  55. {
  56. // Die Variable baeumeHoch soll nur innerhalb der Methode baeumeZaehlen
  57. // gueltig sein.
  58. int baeumeHoch = 0;
  59. turnLeft();
  60. // Kara zaehlt so lange Baeume zaehlen, wie Baumreihen neben ihm sind.
  61. while (treeRight())
  62. {
  63. // Da schon ein Baum neben Kara steht, soll er erst zaehlen und
  64. // dann erst gehen.
  65. baeumeHoch = baeumeHoch + 1;
  66. move();
  67. }
  68.  
  69. // Kara geht, wenn die Baumreihe zu Ende ist, um die Baumreihe herum.
  70. turnRight();
  71. move();
  72. move();
  73. turnRight();
  74.  
  75. // Die Variable baeumeRunter soll ebenfalls nur innerhalb der Methode
  76. // baeumeZaehlen gueltig sein.
  77. int baeumeRunter = 0;
  78.  
  79. // Kara geht wieder die Baumreihe herunter.
  80. // Kara hat sich den Wert von baumeHoch 'gemerkt und geht ebensoviele
  81. // Schritte auch wieder herunter.
  82. while (baeumeRunter < baeumeHoch)
  83. {
  84. move();
  85. baeumeRunter = baeumeRunter + 1;
  86. }
  87. turnLeft();
  88.  
  89. // Kara testet, ob die momentane Reihe laenger ist als die zuvor
  90. // laengste Baumreihe. Ist dies der Fall, wird die Variable
  91. // laengsteBaumreihe ueberschrieben.
  92. if (baeumeHoch > laengsteBaumreihe)
  93. {
  94. laengsteBaumreihe = baeumeHoch;
  95. }
  96. }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement