Benutzer-Werkzeuge

Webseiten-Werkzeuge


g9:uebungen:vererbung:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
g9:uebungen:vererbung:start [2022/06/30 07:50] Martin Pabstg9:uebungen:vererbung:start [2022/07/01 07:46] (aktuell) – [Beispiel 7: Fraktaler Baum] Martin Pabst
Zeile 1: Zeile 1:
 ====== Vererbung ====== ====== Vererbung ======
-====== Beispiel 1: Fliegende Rechtecke ======+====== Beispiel 1: Advanced Robot ====== 
 + 
 +<WRAP center round todo 80%> 
 +Die Klasse Robot hat alle Methoden, die Du von Robot Karol her kennst. Erweitere sie um weitere Methoden: 
 +  * Die Methode ''umdrehen()'' soll bewirken, dass der Roboter sich um 180° dreht. 
 +  * Die Methode ''gehe(int schrittzahl)'' soll bewirken, dass der Roboter mehrere Schritte geht. 
 +  * Die Methode ''legeBahn(int länge)'' soll bewirken, dass der Roboter eine Bahn von Ziegeln der angegebenen Länge legt. 
 +  * Die Methode ''legeQuadrat(int seitenlänge)'' soll bewirken, dass der Roboter ein nicht-ausgefülltes Quadrat der angegebenen Seitenlänge mit der Höhe 1 baut. 
 +  * Die Methode ''baueTreppe(int höhe)'' soll bewirken, dass der Roboter eine Treppe der angegebenen Höhe baut. 
 + 
 +Lass Dir noch weitere Methoden einfallen und schreibe ein Hauptprogramm, das die Methoden nutzt, um eine große Burg zu bauen! 
 +</WRAP> 
 + 
 + 
 +<HTML> 
 + 
 +<div class="java-online" style="height: 400px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'Vererbung0'}"> 
 + 
 +<script type="text/plain" title="AdvancedRobot.java"> 
 +AdvancedRobot tom = new AdvancedRobot(1, 1, 10, 10); 
 +tom.legeQuadrat(4); 
 +tom.baueTreppe(3); 
 + 
 +class AdvancedRobot extends Robot { 
 +    
 +   void umdrehen() { 
 +      linksDrehen(); 
 +      linksDrehen(); 
 +   } 
 + 
 +   void gehe(int schrittzahl) { 
 +      for (int i = 0; i < schrittzahl; i++) { 
 +         schritt(); 
 +      } 
 +   } 
 + 
 +   void legeBahn(int länge) { 
 +      for (int i = 0; i < länge; i++) { 
 +         hinlegen(); 
 +         schritt(); 
 +      } 
 +   } 
 + 
 +   void legeQuadrat(int seitenlänge) { 
 +      for (int s = 0; s < 4; s++) { 
 +         legeBahn(seitenlänge); 
 +         linksDrehen();  
 +      } 
 +   } 
 + 
 +   void baueTreppe(int höhe) { 
 +      for (int i = 0; i < höhe; i++) { 
 +         legeBahn(höhe - i); 
 +         umdrehen(); 
 +         gehe(höhe - i - 1); 
 +         umdrehen(); 
 +      } 
 +   } 
 +
 +</script> 
 +</HTML> 
 + 
 +====== Beispiel 2: Fliegende Rechtecke ======
 Starte das Programm und regle die Geschwindigkeit langsam hoch! Starte das Programm und regle die Geschwindigkeit langsam hoch!
 <HTML> <HTML>
Zeile 280: Zeile 342:
 </HTML> </HTML>
  
-===== Feuerwerk =====+===== Beispiel 5: Feuerwerk =====
 Das Beispiel "Feuerwerk" [[:api:documentation:grafik:animation#beispiel_4feuerwerk|findest Du hier]]. Das Beispiel "Feuerwerk" [[:api:documentation:grafik:animation#beispiel_4feuerwerk|findest Du hier]].
  
 +
 +====== Beispiel 6: Kochkurve ======
 +<HTML>
 +
 +<div class="java-online" style="height: 400px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'Kochkurve'}">
 +
 +<script type="text/plain" title="Kochkurve.java">
 +new World(1000, 1000);
 +Kochkurve k = new Kochkurve(7);
 +
 +class Kochkurve extends Turtle {
 +   
 +   public Kochkurve(int tiefe) {
 +      super(50, 700);
 +      setBorderWidth(3); 
 +      int länge = 700;
 +      turn(60);
 +      zieheLinie(länge, tiefe);
 +      turn(-120);
 +      zieheLinie(länge, tiefe);
 +      turn(-120);
 +      zieheLinie(länge, tiefe);
 +   }
 +   
 +   public void zieheLinie(double länge, int tiefe) {
 +      if(tiefe == 0) {
 +         forward(länge);
 +         return;
 +      }
 +
 +      zieheLinie(länge / 3, tiefe - 1);
 +      turn(60);
 +      zieheLinie(länge / 3, tiefe - 1);
 +      turn(-120);
 +      zieheLinie(länge / 3, tiefe - 1);
 +      turn(60);
 +      zieheLinie(länge / 3, tiefe - 1);
 +
 +   }
 +
 +}
 +</script>
 +
 +</div>
 +
 +</HTML>
 +
 +
 +====== Beispiel 7: Fraktaler Baum ======
 +<HTML>
 +
 +<div class="java-online" style="height: 400px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'Baum'}">
 +
 +<script type="text/plain" title="Baum.java">
 +new FraktalerBaum(400, 600, 0.7, 9, 35);
 +
 +class FraktalerBaum extends Turtle {
 +   
 +   double faktor;
 +   double winkel;
 +   
 +   FraktalerBaum(double x, double y, double faktor, int tiefe, double winkel) {
 +      super(x, y);
 +      this.faktor = faktor;
 +      this.winkel = winkel;
 +      setBorderWidth(2);
 +      turn(90);
 +      zeichneAst(tiefe, 180);
 +   }
 +
 +   void zeichneAst(int n, double länge) {
 +      if(n == 0) return;
 +
 +      forward(länge);
 +      turn(winkel);
 +      zeichneAst(n - 1, länge * faktor);
 +      turn(-2*winkel);
 +      zeichneAst(n - 1, länge * faktor);
 +      turn(winkel);
 +      turn(180);
 +      penUp();
 +      forward(länge);
 +      turn(180);
 +      penDown();
 +   }
 +
 +}
 +
 +</script>
 +
 +</div>
 +
 +</HTML>
g9/uebungen/vererbung/start.1656568232.txt.gz · Zuletzt geändert: 2022/06/30 07:50 von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki