Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| gf2:agent [2024/11/08 14:49] – marroc | gf2:agent [2024/12/10 07:37] (aktuell) – marroc | ||
|---|---|---|---|
| Zeile 36: | Zeile 36: | ||
| Ich möchte, dass der Agent ein Quadrat der Seitenlänge 5 baut, doch irgendetwas funktioniert nicht? | Ich möchte, dass der Agent ein Quadrat der Seitenlänge 5 baut, doch irgendetwas funktioniert nicht? | ||
| Versuche das Programm so zu ändern, dass er wirklich ein Quadrat der Seitenlänge 5 baut. \\ | Versuche das Programm so zu ändern, dass er wirklich ein Quadrat der Seitenlänge 5 baut. \\ | ||
| + | < | ||
| + | <panel title=" | ||
| + | <sxh python> | ||
| + | # Grundeinstellungen | ||
| + | agent.set_assist(PLACE_ON_MOVE, | ||
| + | agent.set_item(RED_SANDSTONE, | ||
| + | agent.set_slot(1) | ||
| + | agent.set_assist(DESTROY_OBSTACLES, | ||
| + | # Programm für ein Quadrat, welches nicht ausgefüllt ist | ||
| + | agent.move(FORWARD, | ||
| + | agent.turn_left() | ||
| + | agent.move(FORWARD, | ||
| + | agent.turn_left() | ||
| + | agent.move(FORWARD, | ||
| + | agent.turn_left() | ||
| + | agent.move(FORWARD, | ||
| + | </ | ||
| + | <sxh> | ||
| + | # Grundeinstellungen | ||
| + | agent.set_assist(PLACE_ON_MOVE, | ||
| + | agent.set_item(RED_SANDSTONE, | ||
| + | agent.set_slot(1) | ||
| + | agent.set_assist(DESTROY_OBSTACLES, | ||
| + | |||
| + | # Programm für ein Quadrat, welches ausgefüllt ist | ||
| + | |||
| + | agent.move(FORWARD, | ||
| + | agent.move(LEFT, | ||
| + | agent.move(BACK, | ||
| + | agent.move(LEFT, | ||
| + | agent.move(FORWARD, | ||
| + | agent.move(LEFT, | ||
| + | agent.move(BACK, | ||
| + | agent.move(LEFT, | ||
| + | agent.move(FORWARD, | ||
| + | agent.move(LEFT, | ||
| + | agent.move(BACK, | ||
| + | agent.move(LEFT, | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| **Aufgabe 3** \\ | **Aufgabe 3** \\ | ||
| - | Füge deinem Programm eine Variable mit dem Namen '' | + | Füge deinem Programm eine Variable mit dem Namen '' |
| + | < | ||
| + | <panel title=" | ||
| + | < | ||
| + | # Grundeinstellungen | ||
| + | agent.set_assist(PLACE_ON_MOVE, | ||
| + | agent.set_item(RED_SANDSTONE, | ||
| + | agent.set_slot(1) | ||
| + | |||
| + | agent.set_assist(DESTROY_OBSTACLES, | ||
| + | |||
| + | # | ||
| + | seitenlaenge=5 | ||
| + | # Programm für ein Quadrat, welches nicht ausgefüllt ist | ||
| + | agent.move(FORWARD, | ||
| + | agent.turn_left() | ||
| + | agent.move(FORWARD, | ||
| + | agent.turn_left() | ||
| + | agent.move(FORWARD, | ||
| + | agent.turn_left() | ||
| + | agent.move(FORWARD, | ||
| + | |||
| + | # Programm für ein Quadrat, welches ausgefüllt ist | ||
| + | |||
| + | agent.move(FORWARD, | ||
| + | agent.move(LEFT, | ||
| + | agent.move(BACK, | ||
| + | agent.move(LEFT, | ||
| + | agent.move(FORWARD, | ||
| + | agent.move(LEFT, | ||
| + | agent.move(BACK, | ||
| + | agent.move(LEFT, | ||
| + | agent.move(FORWARD, | ||
| + | agent.move(LEFT, | ||
| + | agent.move(BACK, | ||
| + | agent.move(LEFT, | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| **Aufgabe 4** \\ | **Aufgabe 4** \\ | ||
| - | Erkläre, was der Agent baut, wenn das untenstehende Programm ausgeführt wird. Erstelle | + | Erkläre, was der Agent baut, wenn das untenstehende Programm ausgeführt wird. Lassen Sie das Programm ausführen und erstelle |
| <sxh python> | <sxh python> | ||
| agent.set_assist(PLACE_ON_MOVE, | agent.set_assist(PLACE_ON_MOVE, | ||
| Zeile 56: | Zeile 135: | ||
| agent.move(FORWARD, | agent.move(FORWARD, | ||
| </ | </ | ||
| + | < | ||
| + | <panel title=" | ||
| + | <sxh python> | ||
| + | agent.set_assist(PLACE_ON_MOVE, | ||
| + | # Hier wird aktiviert durch True, dass | ||
| + | #der Agent beim Bewegen hinter sich automatisch baut. | ||
| + | agent.set_item(GOLD_BLOCK, | ||
| + | # Hier wird Gold ins Inventar des | ||
| + | #Agenten in Slot 1 gelegt. | ||
| + | agent.set_item(GRASS, | ||
| + | # Hier wird Gras ins Inventar | ||
| + | #in Slot 2 gelegt. | ||
| + | agent.set_item(DIAMOND_BLOCK, | ||
| + | # und hier Diamanten. | ||
| + | distances = [4, | ||
| + | #Dies ist eine Liste, die aus drei | ||
| + | #Elementen besteht, der 4, der 6 und | ||
| + | #der 2. Dabei ist 4 auf Listenposition 0, | ||
| + | #die 6 auf Listenposition 1 und die 2 | ||
| + | #auf Listenposition 2. | ||
| + | for i in range(1, | ||
| + | #dies ist eine Schleife, die für i=1, | ||
| + | #danach i=2, und zuletzt i=3 setzt. | ||
| + | #Die 4 wird als obere Grenze betrachtet, | ||
| + | #bis und ohne 4. | ||
| + | agent.set_slot(i) | ||
| + | # der i-te Slot im Inventar des | ||
| + | #Agenten wird aktiviert (1. oder 2. | ||
| + | #oder 3. Slot, das heisst Gold, Gras oder | ||
| + | #Diamanten) | ||
| + | agent.place(LEFT) | ||
| + | # der Agent beginnt zu bauen und | ||
| + | #platziert links von sich einen Block. | ||
| + | agent.move(FORWARD, | ||
| + | #Der Agent bewegt sich nach vorne | ||
| + | #und dadurch wird hinter dem Agenten | ||
| + | #gebaut. Wie viel er sich vorwärts bewegt | ||
| + | #ist im entsprechenden Listenelement gespeichert. | ||
| + | # | ||
| + | #das 0.Element ist 4. Danach ist i=2 und | ||
| + | # | ||
| + | #sprich der 6 springen, es wird mit Gras 6 | ||
| + | #vorwärts gebaut und zuletzt bewegt sich der | ||
| + | #Agent noch 2 vorwärts, weil distances[2] den | ||
| + | #Wert 2 gespeichert hat. | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| </ | </ | ||
| Zeile 71: | Zeile 198: | ||
| * Welche Programmierfehler sind passiert, und warum sind diese passiert! | * Welche Programmierfehler sind passiert, und warum sind diese passiert! | ||
| - | </ | + | |
| <callout type=" | <callout type=" | ||