gf2:agent

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
gf2:agent [2024/12/10 07:22] marrocgf2:agent [2024/12/10 07:37] (aktuell) marroc
Zeile 80: Zeile 80:
 **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 97: 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>
  
  • gf2/agent.1733811727.txt.gz
  • Zuletzt geändert: 2024/12/10 07:22
  • von marroc