faecher:informatik:mittelstufe:robot:arbeitsauftraege:ab2:start

Arbeitsauftrag AB2

Du hast das erste Level gemeistert. Allerdings hast du den Roboter bisher von Hand gesteuert. Zwischenzeitlich hat sich der erste Störfall ereignet. Möchtest du den Roboter „handgesteuert“ in das Kernkraftwerk leiten? Sicher nicht. Daher muss der Roboter schnell lernen sich alleine zu bewegen.

Die Roboter lernen dazu ...

Wissen, dass alles, was die Roboter ausführen können, im Quelltext notiert ist. Vorhandene Quelltexte ergänzen und erweitern können.

1. Welche Befehle bietet dir ein AB2-Roboter in seinem Kontextmenü direkt an? Öffne nun den Quelltext. Diesen kannst du dir mit „Editor öffnen“ (oder alternativ Doppelklick auf die Klasse AB2) anzeigen lassen. Jede Fähigkeit ist in einer sogenannten Methode im Quelltext beschrieben. Findest du die Befehle des AB2-Roboters?

2. Steuere den Roboter unten links noch ein letztes Mal von Hand durch einzelne Befehle so, dass er eine Runde dreht wie im Bild unten links.
Die bekannten Befehle findest du jetzt im Kontextmenu unter „geerbt von Roboter“ (s. Bild unten rechts). Welche Befehle hast du ihm gegeben, um die Runde zu drehen?

3. Drehe Runde im Raum: Öffne den Quelltext der Klasse AB2. Ergänze die Anweisungen in der Methode dreheRunde(), damit es eine vollständige Runde wird. Nach jedem Befehl musst du einen Strichpunkt setzen. (Hinweis: in rosa und grau findest du sogenannte Kommentare. Das sind Hinweise für dich und haben für den Roboter keine Bedeutung) Übersetze (Schaltfläche "Übersetzen" oben links) und erprobe die veränderte Methode.

4. Drehe um: Schreibe im Quelltext die Anweisungen für dreheUm(). Der Roboter soll dabei seine Richtung um 180° ändern.

5. Sammle 3 Schrauben: Bringe dem AB2 bei, drei Dinge aufzusammeln, die direkt hintereinander liegen. Wir üben wieder im Testgelände mit Schrauben, aber im Kernkraftwerk werden es, herumliegende Brennstäbe sein. Mit dem Befehl aufnehmen(); kannst du beliebige Dinge einsammeln (sofern sie sich tragen lassen). Dafür ist im Quelltext schon einiges vorbereitet.
Ergänze die Zeilen für sammle3() an der passenden Stelle. Teste die neue Methode indem du beim Roboter vor den drei Schrauben (oben links) die Methode aufrufst.

6. Haken schlagen: Sorge dafür dass die AB2-Roboter auch frei stehende Wände umlaufen können (s. Bild). Wie nennst du diese Fähigkeit eines AB2-Roboters? Das wird auch der Name der Methode, die du im Quelltext beschreibst. Der Methodenname sollte mit einem Kleinbuchstaben beginnen.

  • Neue Methoden müssen fürs Erste immer mit public void Methodenname() beginnen.
  • Die Befehle der Methode werden dann in {}-Klammern eingeschlossen. Schaue dieses Konzept bei den bestehenden Methoden ab

Wenn ein AB2-Roboter genau vor einer Wand steht und einen Haken schlagen möchte, muss er sich z.B. nach links drehen, einen Schritt vor gehen, nach … Das kriegst du selbst raus. Erprobe deine neue Methode.

7. Vier sammeln: Bringe den AB2-Robotern bei, eine Reihe von vier beliebigen Gegenständen aufzusammeln. Erprobe deine Methode am Roboter oben rechts.

8. Falsche Namensgebung:

a) Genau zwei Namen sind unzulässig. Welche vermutest du? Warum?

  • linksUm()
  • vor()
  • zurueck()
  • vierVor()
  • legeAb()
  • legeSpur()
  • linksum()
  • links um()
  • hebeAuf()
  • rechtsUm()
  • dreheUm()
  • lege3Ab()
  • sammle3Blaetter()
  • schiebeBaum()
  • zickzack()
  • einsVor()
  • 1Vor()

b) Überlege dir selbst eine neue Fähigkeit, die du deinen AB2-Robotern beibringst, indem du die passende Methode in den Quelltext der Klasse AB2 schreibst.

Der Kraftwerksarbeiter, der als letztes das Kraftwerk verlassen hat, beschreibt die Situation wie folgt:

Vom Eingang muss man drei Schritte vorgehen. Dann dreht man sich nach links und geht nochmals zwei Schritte, glaube ich. Dann steht man in einem Raum und direkt vor einer Säule. Vor der Säule liegt ein Akku. Hinter der Säule liegen in einer Reihe ein Akku und zwei Brennstäbe. Aber ich kann mich nicht mehr erinnern in welcher Reihenfolge. Wenn man sich am Ende nach rechts dreht und zwei Schritte geht, kommt man zum Notausgang. Glaube ich zumindest…

Bitte helfen Sie mir. Die Brennstäbe müssen unbedingt eingesammelt werden!!!

Implementiere für diesen Einsatz die Methode einsatz2() im Quelltext. Rufe dazu die zuvor erstellten Methoden in der richtigen Reihenfolge auf. Für den Methodenaufruf musst du nur ihren Methodennamen mit der ()-Klammer dahinter hinschreiben (z.B. dreheUm();) Ergänze ggf. weitere Befehle (z.B. einsVor();). (Hinweis: du brauchst insgesamt mindestens 11 Befehle!)

Um den Einsatz durchzuführen,musst du in der Roboter-Welt mit der rechten Maustaste auf einem beliebigen Gangfeld (grauer Hintergrund) die Methode einsatz_02() aufrufen (nicht direkt beim Roboter!).

Ich bin mal gespannt, ob du deinen ersten richtigen Einsatz bewältigst! Falls du mit dem Einsatz Schwierigkeiten hat, kann dir dein Lehrer weiter helfen.

Du kannst nun Programmieren – d.h. Methoden mit Anweisungen füllen. Dadurch kannst du Robotern Befehle geben, die sie dann selbständig ausführen!


<<< Zurück zu Level 1 Level 2 Weiter zu Level 3 >>>


Material

FilenameFilesizeLast modified
01_einfuehrung_objekte_klassen.odp2.7 MiB29.09.2021 17:51
01_einfuehrung_objekte_klassen.pdf866.3 KiB29.09.2021 17:51
ab0202.png134.7 KiB04.12.2019 12:52
ab1_01.png14.9 KiB04.12.2019 12:52
ab2_03.png40.0 KiB04.12.2019 12:52
ab2_04.png24.7 KiB04.12.2019 12:52

Alle Arbeitsaufträge in diesem Namensraum basieren auf den Materialien von Schaller/Zechnall zur Informatikfortbildung Baden-Württemberg 2016 und stehen unter einer CC-BY-SA-NC Lizenz.

  • faecher/informatik/mittelstufe/robot/arbeitsauftraege/ab2/start.txt
  • Zuletzt geändert: 19.10.2023 10:13
  • von Frank Schiebel