gf2:agent

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
gf2:agent [2024/11/08 14:49] marrocgf2: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. \\
 +<accordion>
 +<panel title="Lösungen">
 +<sxh python>
 +# Grundeinstellungen
 +agent.set_assist(PLACE_ON_MOVE, True)
 +agent.set_item(RED_SANDSTONE, 64, 1)
 +agent.set_slot(1)
 +agent.set_assist(DESTROY_OBSTACLES,True)
  
 +# Programm für  ein Quadrat, welches nicht ausgefüllt ist
 +agent.move(FORWARD,5)
 +agent.turn_left()
 +agent.move(FORWARD,5)
 +agent.turn_left()
 +agent.move(FORWARD,5)
 +agent.turn_left()
 +agent.move(FORWARD,5)
 +</sxh>
 +<sxh>
 +# Grundeinstellungen
 +agent.set_assist(PLACE_ON_MOVE, True)
 +agent.set_item(RED_SANDSTONE, 64, 1)
 +agent.set_slot(1)
 +agent.set_assist(DESTROY_OBSTACLES,True)
 +
 +# Programm für ein Quadrat, welches ausgefüllt ist
 +
 +agent.move(FORWARD,5)
 +agent.move(LEFT, 1)
 +agent.move(BACK,5)
 +agent.move(LEFT,1)
 +agent.move(FORWARD,5)
 +agent.move(LEFT, 1)
 +agent.move(BACK,5)
 +agent.move(LEFT, 1)
 +agent.move(FORWARD,5)
 +agent.move(LEFT, 1)
 +agent.move(BACK,5)
 +agent.move(LEFT, 1)
 +</sxh>
 +</panel>
 +</accordion>
 **Aufgabe 3** \\ **Aufgabe 3** \\
    
-Füge deinem Programm eine Variable mit dem Namen ''Seitenlaenge'' hinzu, sodass du über diese Variable steuern kannst, wie gross dein Quadrat wird. \\+Füge deinem Programm eine Variable mit dem Namen ''Seitenlaenge'' hinzu, sodass du über diese Variable steuern kannst, wie gross dein Quadrat wird.  
 +<accordion> 
 +<panel title="Lösungen"> 
 +<sxh> 
 +# Grundeinstellungen 
 +agent.set_assist(PLACE_ON_MOVE, True) 
 +agent.set_item(RED_SANDSTONE, 64, 1) 
 +agent.set_slot(1) 
 +  
 +agent.set_assist(DESTROY_OBSTACLES,True) 
 + 
 +#Variablen 
 +seitenlaenge=5 
 +# Programm für  ein Quadrat, welches nicht ausgefüllt ist 
 +agent.move(FORWARD,seitenlaenge) 
 +agent.turn_left() 
 +agent.move(FORWARD,seitenlaenge) 
 +agent.turn_left() 
 +agent.move(FORWARD,seitenlaenge) 
 +agent.turn_left() 
 +agent.move(FORWARD,seitenlaenge) 
 + 
 +# Programm für ein Quadrat, welches ausgefüllt ist 
 + 
 +agent.move(FORWARD,seitenlaenge) 
 +agent.move(LEFT, 1) 
 +agent.move(BACK,seitenlaenge) 
 +agent.move(LEFT,1) 
 +agent.move(FORWARD,seitenlaenge) 
 +agent.move(LEFT, 1) 
 +agent.move(BACK,seitenlaenge) 
 +agent.move(LEFT, 1) 
 +agent.move(FORWARD,seitenlaenge) 
 +agent.move(LEFT, 1) 
 +agent.move(BACK,seitenlaenge) 
 +agent.move(LEFT, 1) 
 +</sxh> 
 +</panel> 
 +</accordion>
  
 **Aufgabe 4** \\ **Aufgabe 4** \\
-Erkläre, was der Agent baut, wenn das untenstehende Programm ausgeführt wird. Erstelle eine Skizze.+Erkläre, was der Agent baut, wenn das untenstehende Programm ausgeführt wird. Lassen Sie das Programm ausführen und erstelle eine Skizze.
 <sxh python> <sxh python>
 agent.set_assist(PLACE_ON_MOVE, True) agent.set_assist(PLACE_ON_MOVE, True)
Zeile 56: Zeile 135:
     agent.move(FORWARD, distances[i-1])     agent.move(FORWARD, distances[i-1])
 </sxh> </sxh>
 +<accordion>
 +<panel title="Lösungen">
 +<sxh python>
 +agent.set_assist(PLACE_ON_MOVE, True) 
 +# Hier wird aktiviert durch True, dass 
 +#der Agent beim Bewegen hinter sich automatisch baut. 
 +agent.set_item(GOLD_BLOCK, 64, 1) 
 +# Hier wird Gold ins Inventar des 
 +#Agenten in Slot 1 gelegt.
 +agent.set_item(GRASS, 64, 2) 
 +# Hier wird Gras ins Inventar 
 +#in Slot 2 gelegt.
 +agent.set_item(DIAMOND_BLOCK, 64, 3) 
 +# und hier Diamanten.
  
 +distances = [4,6,2] 
 +#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,4): 
 +#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, distances[i-1]) 
 +    #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. 
 +    #distances[0] heisst er bewegt sich 4 vorwärts, 
 +    #das 0.Element ist 4. Danach ist i=2 und 
 +    #distances[1] wird zum ersten Listenelement, 
 +    #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. 
 +</sxh>
 +</panel>
 +</accordion>
 </WRAP> </WRAP>
  
Zeile 71: Zeile 198:
     * Welche Programmierfehler sind passiert, und warum sind diese passiert!     * Welche Programmierfehler sind passiert, und warum sind diese passiert!
  
-</WRAP>+
  
 <callout type="primary" title="Einige Agentenbefehle im Überblick"> <callout type="primary" title="Einige Agentenbefehle im Überblick">
  • gf2/agent.1731073747.txt.gz
  • Zuletzt geändert: 2024/11/08 14:49
  • von marroc