api:documentation:robot:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
api:documentation:robot:start [2022/04/15 09:02] – Martin Pabst | api:documentation:robot:start [2022/04/15 11:35] (aktuell) – [Aufgabenstellungen für Schüler/innen vorbereiten] Martin Pabst | ||
---|---|---|---|
Zeile 45: | Zeile 45: | ||
<script type=" | <script type=" | ||
+ | Robot r = new Robot(3, 2, """ | ||
+ | 1 1 1 1 | ||
+ | y1 1r | ||
+ | 2 2 | ||
+ | B1mR111111m | ||
+ | """ | ||
+ | //y1 1r bedeutet: Umschalten zur Ziegelfarbe Gelb, | ||
+ | //dann einen Ziegel setzen, 5 leere Felder, wieder einen Ziegel, | ||
+ | //dann umschalten zur Ziegelfarbe rot. | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | <WRAP center round info 60%> | ||
+ | Die Robot-Klasse besitzt einen Konstruktor, | ||
+ | * Jede Zeile steht für eine Reihe in der Welt (von West nach Ost). Die Zeilen werden durch einen Zeilenumbruch (" | ||
+ | * Ein Leerzeichen steht für ein leeres Quadrat in der Welt. | ||
+ | * Der Unterstrich (_) steht für ein Quadrat mit einem Marker, aber keinem Ziegel. | ||
+ | * Die Ziffern 1, 2, ..., 9, 0 stehen für 1, 2, ..., 10 Ziegel auf einem Feld. | ||
+ | * Die gesetzten Marken sind standardmäßig gelb. Die Zeichen R, Y, G, B schalten die Markenfarbe um zu Rot, Gelb, Grün, Blau. Alle nachfolgenden Marken werden in der neuen Farbe gesetzt. | ||
+ | * Die gesetzten Ziegel sind standardmäßig rot. Die Zeichen r, y, g, b schalten die Ziegelfarbe um zu Rot, Gelb, Grün, Blau. Alle nachfolgenden Ziegel werden in der neuen Farbe gesetzt. | ||
+ | </ | ||
+ | |||
+ | ===== Welt dynamisch vorbesetzen ===== | ||
+ | <WRAP center round info 80%> | ||
+ | Natürlich kann man die Welt auch dynamisch (z.B. mit Blöcken auf zufälligen Positionen) vorbesetzen. Dazu dienen die Methoden '' | ||
+ | **Bemerkung: | ||
+ | |||
+ | </ | ||
+ | == Beispiel: == | ||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | new MyWorld(); | ||
Robot r = new Robot(); | Robot r = new Robot(); | ||
- | while(r.nichtIstZiegel()){ | + | |
- | while(r.nichtIstWand()){ | + | class MyWorld extends RobotWorld { |
- | r.hinlegen(); | + | |
- | r.schritt(); | + | super(10, 10); |
+ | for (int i = 0; i < 30; i++) { | ||
+ | setzeZiegel(Random.randint(1, 10), Random.randint(1, 10), | ||
+ | " | ||
+ | } | ||
} | } | ||
- | r.linksDrehen(); | + | } </ |
- | } | + | |
- | for(int i = 0; i < 5; i++){ | + | </ |
- | for(int j = 0; j < i; j++){ | + | |
- | r.hinlegen(" | + | </ |
+ | |||
+ | ===== Aufgabenstellungen für Schüler/ | ||
+ | |||
+ | Da das '' | ||
+ | |||
+ | |||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | MyRobot | ||
+ | // Ergänze hier ein Programm, das den Roboter alle Ziegel | ||
+ | // aufheben lässt: | ||
+ | |||
+ | |||
+ | </ | ||
+ | <script type=" | ||
+ | class MyRobot extends Robot { | ||
+ | | ||
+ | super(2, 3, 10, 10); | ||
+ | int speed = SystemTools.getSpeed(); | ||
+ | | ||
+ | RobotWorld rw = getWelt(); | ||
+ | | ||
+ | rw.setzeZiegel(Random.randint(1, | ||
+ | " | ||
+ | } | ||
+ | SystemTools.setSpeed(speed); | ||
+ | } | ||
+ | } </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | === Variante mit Anweisungen ohne Punktschreibweise === | ||
+ | wenn die Schüler/ | ||
+ | |||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | StaubsaugerRobot r = new StaubsaugerRobot(); | ||
+ | r.start(); | ||
+ | |||
+ | class StaubsaugerRobot extends MyRobot { | ||
+ | void start() { | ||
+ | |||
+ | // Schreibe hier ein Programm, das den Roboter alle Ziegel aufheben lässt: | ||
+ | |||
+ | |||
+ | |||
} | } | ||
- | | ||
} | } | ||
- | </ | + | </ |
+ | <script type=" | ||
+ | class MyRobot extends Robot { | ||
+ | | ||
+ | super(2, 3, 10, 10); | ||
+ | int speed = SystemTools.getSpeed(); | ||
+ | SystemTools.setSpeed(-1); | ||
+ | RobotWorld rw = getWelt(); | ||
+ | for (int i = 0; i < 30; i++) { | ||
+ | | ||
+ | " | ||
+ | } | ||
+ | SystemTools.setSpeed(speed); | ||
+ | } | ||
+ | } </ | ||
</ | </ | ||
Zeile 65: | Zeile 176: | ||
</ | </ | ||
+ | <WRAP center round tip 80%> | ||
+ | Natürlich könnte man den Aufruf von '' | ||
+ | </ | ||
api/documentation/robot/start.1650006165.txt.gz · Zuletzt geändert: 2022/04/15 09:02 von Martin Pabst