Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:mittelstufe:bauernhof:ab3:start [27.05.2024 12:24] – Marco Kuemmel | faecher:informatik:mittelstufe:bauernhof:ab3:start [18.12.2024 13:08] (aktuell) – Marco Kuemmel | ||
---|---|---|---|
Zeile 6: | Zeile 6: | ||
**Ziel:** Wiederholungen in Handlungen erkennen, als SOLANGE-Schleife formulieren und in Programmiersprache umsetzen können. Methoden mit Parametern benutzen können. | **Ziel:** Wiederholungen in Handlungen erkennen, als SOLANGE-Schleife formulieren und in Programmiersprache umsetzen können. Methoden mit Parametern benutzen können. | ||
</ | </ | ||
- | |||
{{: | {{: | ||
=== (A1) Wiese erkunden === | === (A1) Wiese erkunden === | ||
Die Schafe sollen eine Runde auf ihrer Wiese drehen, egal wie groß diese Wiese ist. Dazu gibt es eine Methode '' | Die Schafe sollen eine Runde auf ihrer Wiese drehen, egal wie groß diese Wiese ist. Dazu gibt es eine Methode '' | ||
- | Setze diese Methode ein, um die Schafe eine Runde entlang des Zauns ihrer Wiese drehen zu lassen. Teste diese Methode an verschiedenen Schafen. | + | |
+ | Implementiere dann den Code für die Methode | ||
Zeile 43: | Zeile 43: | ||
- | Wir haben bisher Methoden benutzt, die keine zusätzliche Information benötigen, um ausgeführt werden zu können. Viele Methode | + | Wir haben bisher Methoden benutzt, die keine zusätzliche Information benötigen, um ausgeführt werden zu können. Viele Methoden |
- | Die Methode '' | + | Die Methode '' |
Zeile 55: | Zeile 55: | ||
=== (A5) Zum Wasser === | === (A5) Zum Wasser === | ||
Jedes Schaf muss mal trinken. Aber der Teich oder der Brunnen sind nicht immer gleich weit weg. Es muss also so lange laufen, wie kein Wasser vorne ist. | Jedes Schaf muss mal trinken. Aber der Teich oder der Brunnen sind nicht immer gleich weit weg. Es muss also so lange laufen, wie kein Wasser vorne ist. | ||
- | Implementiere die Methode im Quellcode und teste sie an allen drei Schafen oben. | + | Implementiere die Methode |
---- | ---- | ||
Zeile 65: | Zeile 65: | ||
z.B. '' | z.B. '' | ||
+ | |||
+ | **Ganz wichtig:** Wenn du prüfen willst, ob zwei Werte identisch sind, so musst du mit einem **doppelten Gleichheitszeichen** ('' | ||
{{: | {{: | ||
=== (A6) Zum Wasser und trinken === | === (A6) Zum Wasser und trinken === | ||
- | Ergänze '' | + | Ergänze '' |
Zeile 81: | Zeile 83: | ||
=== (A8) Faules Schaf === | === (A8) Faules Schaf === | ||
Fred ist faul. Statt über die Wiese zu laufen und nach schönen Grasbüscheln zu suchen, wartet er einfach, bis das Gras genügend gewachsen ist. | Fred ist faul. Statt über die Wiese zu laufen und nach schönen Grasbüscheln zu suchen, wartet er einfach, bis das Gras genügend gewachsen ist. | ||
- | Implementiere eine Methode, die das Schaf so lange warten lässt, bis das Gras auf dem es steht vollständig gewachsen ist und es dann frisst. | + | Implementiere eine Methode, die das Schaf so lange warten lässt, bis das Gras, auf dem es steht, vollständig gewachsen ist und es dann frisst. Nutze zum Warten die Methode '' |
Teste deine Methode an den drei Schafen in den Gattern. | Teste deine Methode an den drei Schafen in den Gattern. | ||
- | Hinweis: Mit der Methode '' | + | Hinweis: Mit der Methode '' |
Zeile 92: | Zeile 94: | ||
Von einem Grasbüschel wird Fred natürlich nicht satt. Verbessere die Methode so, dass die Befehle von Aufgabe 8 solange immer wieder ausgeführt werden, wie ein Sättigungsgrad von 80 noch nicht erreicht wurde. | Von einem Grasbüschel wird Fred natürlich nicht satt. Verbessere die Methode so, dass die Befehle von Aufgabe 8 solange immer wieder ausgeführt werden, wie ein Sättigungsgrad von 80 noch nicht erreicht wurde. | ||
- | Hinweis: Man kann Schleifen ineinander schachteln. | + | Hinweis: Man kann Schleifen ineinander schachteln |
{{: | {{: | ||
=== (A10) Zurück zum Stall === | === (A10) Zurück zum Stall === | ||
- | Die Methoden getX() und getY() liefern die Koordinaten der aktuellen Position des Schafs. getRotation() liefert die Richtung, in die es schaut (0 = rechts, 90 = unten, 180 = links, 270 = oben). | + | {{: |
- | Implementiere eine Methode, die das Schaf zunächst | + | Die Methoden |
+ | Implementiere eine Methode, die das Schaf zunächst | ||
+ | |||
+ | ===== Leveltest 3: Karges Land ===== | ||
+ | |||
+ | Überprüfe wie immer deine Implementierungen am Ende des Levels mit der entsprechenden checkup-Methode. Die komplexere Zusatzaufgabe (Leveltest) ist auch dieses Mal eine Bonusaufgabe. Führe diesen Schritt ab sofort am Ende jedes Levels durch. | ||
+ | |||
+ | <callout type=" | ||
+ | {{: | ||
+ | === Aufgabe === | ||
+ | {{ : | ||
+ | „Mäh, mäh, mäh, wo seid ihr alle?" Das arme kleine Schaf hat den Anschluss verloren und steht als einziges noch auf dem Hof des Bauerhofes. Es ist schon ganz ausgehungert, | ||
+ | Irgendwo vor dem Schaf ist ein karges Grasfleckchen, | ||
+ | Versuche mit möglichst wenigen Befehlen das Schaf in seinen Stall zu bekommen. Nutze wenn möglich die zuvor programmierten Methoden - es kann aber auch sinnvoll sein, deren Inhalt zu übernehmen und ein wenig anzupassen!\\ | ||
+ | **Tipps: | ||
+ | * Es sollte genügen, wenn das Schaf zu Beginn zweimal frisst und anschließend einmal trinkt. Beim Sattessen bzw -trinken würde es andernfalls jeweils verdursten oder verhungern... | ||
+ | * Zusammengesetzte Bedingungen kann man mit ''&&'' | ||
+ | </ | ||
+ | |||
+ | <callout type=" | ||
+ | **Zusammenfassung: | ||
+ | |||
+ | Im Quelltext schreibt man Wiederholungen mit dem Schlüsselwort '' | ||
+ | |||
+ | {{: | ||
+ | Die Ausführungsbedingung muss im Laufe der Wiederholungen einmal falsch werden, damit es keine Endlosschleife gibt. | ||
+ | Falls es dennoch mal eine Endlosschleife gibt, kann man diese mit dem Knopf {{: | ||
+ | |||
+ | Mehrere Schleifen können nacheinander ausgeführt werden oder ineinander verschachtelt werden: | ||
+ | |||
+ | {{: | ||
+ | {{: | ||
+ | </ | ||
---- | ---- | ||
< | < | ||