====== AB02 - Methoden ====== Du hast die ersten Schritte gemeistert. Allerdings hast du die Schafe bisher von Hand gesteuert. Wer kann schon einem Schaf den lieben langen Tag sagen, was es tun soll? Ok, ein Schäferhund vielleicht... Die Figuren sollen nun lernen, sich alleine zu bewegen. **Ziel:** Wissen, dass alles, was die Figuren ausführen können, im Quelltext notiert ist. Vorhandene Quelltexte ergänzen und erweitern können. ===== Aufgaben ===== {{:aufgabe.png?nolink |}} === (A1) === Welche Befehle bietet dir ein AB2-Schaf in seinem Kontextmenü direkt an (also nicht "geerbt von")? Öffne nun den Quelltext; diesen kannst du dir mit einem Rechtsklick auf die AB2-Klasse im rechten Fenster mit "Editor öffnen" (oder alternativ Doppelklick auf die Klasse AB2Schaf) anzeigen lassen. Jede Fähigkeit ist in einer sogenannten **Methode** im Quelltext beschrieben. ---- {{:aufgabe.png?nolink |}} === (A2) === Steuere das Schaf unten links noch ein letztes Mal von Hand durch einzelne Befehle so, dass es eine Runde dreht wie im Bild (siehe rechts). Die bekannten Befehle findest du jetzt im Kontextmenu unter "geerbt von Schaf" bzw. "geerbt von Figur". Welche Befehle hast du ihm dazu gegeben? {{ :faecher:informatik:mittelstufe:bauernhof:ab2:bhf03a.png |}} ---- {{:aufgabe.png?nolink |}} === (A3) Drehe Runde im Gatter === Öffne den Quelltext der Klasse AB2_Schaf. Ergänze die Anweisungen in ''dreheRunde()'', damit es eine vollständige Runde wird. Es soll danach auch möglich sein, mehrmals nacheinander den Befehl ''dreheRunde()'' aufzurufen. Nach jedem Befehl musst du einen Strichpunkt setzen. (Hinweis: in rosa und grau findest du sogenannte Kommen­tare. Das sind Hinweise für dich und haben für den Roboter keine Bedeutung) Übersetze und erprobe die veränderte Methode ''dreheRunde()''. ---- {{:aufgabe.png?nolink |}} === (A4) Drehe um === Schreibe im Quelltext die Anweisungen für ''dreheUm()''. ---- {{:aufgabe.png?nolink |}} === (A5) Fresse dich satt === Bringe dem ''AB2-Schaf'' bei, drei Grasstücke abzufressen, die direkt hintereinander liegen. Du kannst davon ausgehen, dass sie schon genügend gewachsen sind. Teste die neue Methode am Schaf rechts unten. Welche Änderung am Code sind nötig, um zu beeinflussen, ob das Schaf mit dem Grasbüschel direkt unter ihm oder mit dem vor ihm beginnt. ---- {{:aufgabe.png?nolink |}} === (A6) Haken schlagen === {{ :faecher:informatik:mittelstufe:bauernhof:ab2:bhf05.png|}} Sorge dafür, dass das ''AB2-Schaf'' frei stehende Brunnen umlaufen kann (s. Bild rechts). Wie nennst du diese Fähigkeit eines AB2-Schafs? Das wird auch der Name der Methode, die du im Quelltext beschreibst. Der Methodenname sollte mit einem Kleinbuch­staben beginnen. Neue Methoden müssen 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-Schaf genau vor einem Brunnen 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. ---- {{:aufgabe.png?nolink |}} === (A7) Drehe Runde Variante 2 === Man kann auch die gerade erst selbst programmierten Methoden in eigenen Methoden nutzen. Implementiere dazu nochmal die Methode ''dreheRunde()'' (du kannst sie nun z. B. ''dreheRundeVariante2()'' nennen). Kopiere zunächst den ganzen Quelltext der Methode. Ersetze dann, wo immer möglich mehrere Befehle durch die Methode ''dreiSchritte()''. Dadurch werden Programme kürzer und besser lesbar. ---- {{:aufgabe.png?nolink |}} === (A8) Falsche Namensgebung === Genau zwei Namen sind unzulässig. Welche vermutest du? Warum? ''linksUm(); vor(); vierVor(); legeAb(); legeSpur(); linksum(); links um(); hebeAuf(); einsVor(); rechtsUm(); dreheUm(); lege3Ab(); sammle3Blaetter(); schiebeBaum(); zickzack(); 1Vor();'' ===== Leveltest 2: Bring das Schaf in den Stall ===== Um zum jeweils nächsten Arbeitsblatt zu gelangen, musst du nun immer zuerst den Leveltest bestehen! {{:aufgabe.png?nolink |}} === Aufgabe === Das Schaf muss abends in den Stall. Auf ihrer kargen Weide gab es nicht viel zu fressen und auch keinen Brunnen zum Trinken. Daher wird es sich auf dem Weg zu Stall stärken müssen. Es kommt ohnehin an einem Brunnen vorbei und überquert eine saftige Wiese, die schon lange nicht mehr abgegrast wurde. {{ :faecher:informatik:mittelstufe:bauernhof:ab2:bhf_lvtst2.png?nolink |}} Implementiere für diesen Einsatz die Methode ''leveltest2()'' 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 kannst mit unter 10 Befehlen auskommen!) Um den Einsatz durchzuführen, musst du in der Bauernhof-Welt mit der rechten Maustaste auf einem beliebigen bräunlichen Hintergrundfeld die Methode ''leveltest_02()'' aufrufen (nicht direkt beim Schaf!). Ich bin gespannt, ob du deine erste richtige Aufgabe bewältigst! Falls du mit dem Einsatz Schwierigkeiten hat, kann dir deine Lehrerin weiter helfen. {{:tipp.png?nolink |}} === Tipps === ++++ Tipp 1 - wie könnte der Weg des Schafs zum Stall aussehen? | {{>https://tube.schule.social/w/kW1ozsurX68vfyD4Qr7htm}} ++++ **Zusammenfassung:** Du kannst nun Programmieren – d.h. Methoden mit Anweisungen füllen. Dadurch kannst du Figuren Befehle geben, die sie dann selbständig ausführen! ---- [[..:ab1:start|<<< Zurück zu Level 1]] **AB02** [[..:ab3:start|Weiter zu Level 3 >>> ]]