Dies ist eine alte Version des Dokuments!


  1. Der Agent baut einen Block, dreht sich nach links, baut 2 Blöcke, dreht sich nach links, baut 3 Blöcke… bis 6 Blöcke. Es entsteht eine linksdrehende Spirale. Wenn er aussen angekommen ist, baut er 10 Blöcke gerade aus und baut dann erneut eine Spirale - insgesamt 4 Mal. Erst wenn die Funktion baueSpirale() aufgerufen wird, beginnt er mit dem Bau, nicht bei der Definition der Funktion.
  2. <Code ausführen>
  3. agent.set_assist(PLACE_ON_MOVE, True) # bauen während er bewegt
    agent.set_assist(DESTROY_OBSTACLES,True) # Hindernisse autom. zerstören
    
    def baueSpirale(richtung):
       for zahl in range(1,7):  # zahl läuft von 1 bis 6
           agent.move(FORWARD,zahl)
           agent.turn(richtung)
         
    for i in range(4): # i läuft von 0 bis 3
        baueSpirale(LEFT)
        agent.move(FORWARD,10)
      
  1. Solange n grösser ist als 1 ruft die Funktion sich selbst auf, mit jeweils einem um 2 verkleinerten Argument. Zunächst wird rec1(10) aufgerufen. Dies zeichnet ein Quadrat der Grösse 10×10, danach teleportiert sich der Agent um 1 nach oben, 1 nach Osten und 1 nach Süden. Danach wird dieselbe Funktion aufgerufen mit dem Argument 8 und es wird ein Quadrat der Grösse 8×8 gezeichnet etc. bis 2×2 und wenn rec(0) aufgerufen wird, bricht das Programm ab. Es entsteht eine Pyramide.
  • ef/loesungen_beispiele.1663146340.txt.gz
  • Zuletzt geändert: 2022/09/14 11:05
  • von lehmannr