Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| gf2:programmierkonzeptetraining [2025/01/14 15:56] – marroc | gf2:programmierkonzeptetraining [2025/01/16 15:33] (aktuell) – marroc | ||
|---|---|---|---|
| Zeile 163: | Zeile 163: | ||
| <WRAP nicebox green> | <WRAP nicebox green> | ||
| **Aufgabe 4**\\ | **Aufgabe 4**\\ | ||
| - | Erstellen eine Funktion '' | + | A) Erstellen eine Funktion '' |
| + | B) Ein Quadrat mit Länge 5 entsteht, dabei soll eine Funktion quadrat(laenge) aufgerufen werden, und der Agent baut das Quadrat. Zusätzlich soll auch die Länge der Quadratseite angegeben werden können. | ||
| + | Es muss ein Parameter und auch eine while-Schleife verwendet werden. | ||
| </ | </ | ||
| < | < | ||
| - | <panel title=" | + | <panel title=" |
| + | Aufgabe 4A) | ||
| <code python> | <code python> | ||
| agent.set_assist(PLACE_ON_MOVE, | agent.set_assist(PLACE_ON_MOVE, | ||
| Zeile 195: | Zeile 198: | ||
| treppe3(4, | treppe3(4, | ||
| + | </ | ||
| + | Aufgabe 4B) | ||
| + | < | ||
| + | agent.set_assist(PLACE_ON_MOVE, | ||
| + | agent.set_assist(DESTROY_OBSTACLES, | ||
| + | agent.set_item(RED_CONCRETE, | ||
| + | |||
| + | #Funktionen | ||
| + | def quadrat(laenge): | ||
| + | agent.set_item(EMERALD_BLOCK, | ||
| + | agent.set_slot(1) | ||
| + | i=1 | ||
| + | while (i<= laenge): | ||
| + | agent.set_assist(PLACE_ON_MOVE, | ||
| + | agent.move(FORWARD, | ||
| + | agent.set_assist(PLACE_ON_MOVE, | ||
| + | agent.move(LEFT, | ||
| + | agent.move(BACK, | ||
| + | i=i+1 | ||
| + | #Das Aufrufen | ||
| + | quadrat(laenge) | ||
| </ | </ | ||
| </ | </ | ||
| </ | </ | ||
| + | |||
| + | |||
| ==== Was sind Listen und warum brauchen wir diese? ==== | ==== Was sind Listen und warum brauchen wir diese? ==== | ||
| <WRAP center nicebox orange> | <WRAP center nicebox orange> | ||
| - | Listen | + | **Listen**\\ |
| Mit eckigen Klammern kann man in Python eine Liste erstellen. Dabei können die einzelnen Elemente der Liste ganz unterschiedliche Typen haben. Es können sogar selbst wieder Listen sein. Auf die einzelnen Elemente der Liste kann man zugreifen, indem man den Namen der Liste mit eckigen Klammern und dem Index angibt (der Index bezeichnet die Position des Elementes in der Liste - er beginnt bei 0. | Mit eckigen Klammern kann man in Python eine Liste erstellen. Dabei können die einzelnen Elemente der Liste ganz unterschiedliche Typen haben. Es können sogar selbst wieder Listen sein. Auf die einzelnen Elemente der Liste kann man zugreifen, indem man den Namen der Liste mit eckigen Klammern und dem Index angibt (der Index bezeichnet die Position des Elementes in der Liste - er beginnt bei 0. | ||
| </ | </ | ||
| <WRAP nicebox green> | <WRAP nicebox green> | ||
| - | **Aufgabe | + | **Aufgabe |
| - | + | A) Verändern Sie die Funktion treppe3 so, dass es für das Material für jede Stufe eine anderes Material verwendet. Dabei soll es zwischen 3 verschiedenen Materialien abwechseln. \\ | |
| - | Verändern Sie die Funktion treppe3 so, dass es für das Material für jede Stufe eine anderes Material verwendet. Dabei soll es zwischen 3 verschiedenen Materialien abwechseln. | + | B) Verändern Sie die Funktion quadrat(laenge) so, dass sich ein gestreiftes Muster aus zwei verschiedenen Materialien bildet. Dabei müssen Listen verwendet werden. |
| </ | </ | ||
| < | < | ||
| - | <panel title=" | + | <panel title=" |
| + | Aufgabe 5A) | ||
| <code python> | <code python> | ||
| agent.set_assist(PLACE_ON_MOVE, | agent.set_assist(PLACE_ON_MOVE, | ||
| Zeile 239: | Zeile 266: | ||
| #Der Aufruf | #Der Aufruf | ||
| treppe4(5, | treppe4(5, | ||
| + | </ | ||
| + | Aufgabe 5B) | ||
| + | <code python> | ||
| + | #Variablen | ||
| + | material=[GOLD_BLOCK, | ||
| + | agent.set_item(material[0], | ||
| + | agent.set_item(material[1], | ||
| + | #Funktionen | ||
| + | def quadrat(laenge): | ||
| + | i=1 | ||
| + | while (i< | ||
| + | agent.set_slot(i%2+1) # hier wird durch Modulo 2 wird der Slot 1 oder 2 gewählt. | ||
| + | agent.set_assist(PLACE_ON_MOVE, | ||
| + | agent.move(FORWARD, | ||
| + | agent.set_assist(PLACE_ON_MOVE, | ||
| + | agent.move(LEFT, | ||
| + | agent.move(BACK, | ||
| + | i=i+1 | ||
| + | #Das Aufrufen | ||
| + | quadrat(4) | ||
| </ | </ | ||
| </ | </ | ||
| </ | </ | ||
| - | ==== Schleife – for i in range(n,m,q) ==== | + | |
| + | ==== Schleife – for i in range(Start,Stop,Step) ==== | ||
| <WRAP center nicebox orange> | <WRAP center nicebox orange> | ||
| Sehr häufig möchte man eine regelmässige **Liste** von Zahlen erstellen: z.B. alle Zahlen von 1 bis 10 oder die Zahlen von 1 bis 100 in 2er-Schritten etc. Sehr häufig möchte man eine regelmässige Liste von Zahlen erstellen. \\ | Sehr häufig möchte man eine regelmässige **Liste** von Zahlen erstellen: z.B. alle Zahlen von 1 bis 10 oder die Zahlen von 1 bis 100 in 2er-Schritten etc. Sehr häufig möchte man eine regelmässige Liste von Zahlen erstellen. \\ | ||
| - | Die Schleife for i in range wird verwendet, um eine bestimmte Anzahl von Wiederholungen durchzuführen. Sie wiederholt (iteriert) über eine Liste von Zahlen, die durch die Funktion range() erzeugt wird. \\ Erinnerung zum Syntax: '' | + | Die **Schleife for i in range(Start, |
| </ | </ | ||
| <WRAP nicebox green> | <WRAP nicebox green> | ||
| - | **Aufgabe | + | **Aufgabe |
| - | Erstellen eine Funktion treppe3(laenge, | + | A) Erstellen eine Funktion treppe3(laenge, |
| + | B) Verändern Sie die Funktion quadrat(laenge) so, dass sich ein gestreiftes | ||
| + | C) Verändern Sie die Funktion quadrat(laenge) so, dass sich ein schachbrettartiges | ||
| </ | </ | ||
| < | < | ||
| - | <panel title=" | + | <panel title=" |
| + | Aufgabe 6A) | ||
| <code python> | <code python> | ||
| agent.set_assist(PLACE_ON_MOVE, | agent.set_assist(PLACE_ON_MOVE, | ||
| Zeile 260: | Zeile 312: | ||
| agent.set_item(RED_CONCRETE, | agent.set_item(RED_CONCRETE, | ||
| - | ``` | ||
| #Das Bauen | #Das Bauen | ||
| def treppe5(laenge, | def treppe5(laenge, | ||
| Zeile 280: | Zeile 331: | ||
| #Der Aufruf | #Der Aufruf | ||
| treppe5(4, | treppe5(4, | ||
| + | </ | ||
| + | Aufgabe 6B | ||
| + | <code python> | ||
| + | agent.set_assist(PLACE_ON_MOVE, | ||
| + | agent.set_assist(DESTROY_OBSTACLES, | ||
| + | agent.set_item(RED_CONCRETE, | ||
| + | def quadrat(laenge): | ||
| + | for j in range (laenge): | ||
| + | |||
| + | | ||
| + | agent.set_item(WHITE_CONCRETE, | ||
| + | agent.move(FORWARD, | ||
| + | else: | ||
| + | agent.set_assist(PLACE_ON_MOVE, | ||
| + | agent.set_item(BLACK_CONCRETE, | ||
| + | agent.move(FORWARD, | ||
| + | agent.set_assist(PLACE_ON_MOVE, | ||
| + | agent.move(LEFT, | ||
| + | agent.move(BACK, | ||
| + | #Das Aufrufen | ||
| + | quadrat(5) | ||
| + | |||
| + | |||
| + | </ | ||
| + | Aufgabe 6C | ||
| + | <code python> | ||
| + | agent.set_assist(PLACE_ON_MOVE, | ||
| + | agent.set_assist(DESTROY_OBSTACLES, | ||
| + | agent.set_item(RED_CONCRETE, | ||
| + | |||
| + | #Funktionen | ||
| + | def quadrat(laenge): | ||
| + | for j in range (laenge): | ||
| + | for i in range (laenge): | ||
| + | if ((i+j)%z=0): | ||
| + | agent.set_assist(PLACE_ON_MOVE, | ||
| + | agent.set_item(WHITE_CONCRETE, | ||
| + | agent.move(FORWARD, | ||
| + | else: | ||
| + | agent.set_assist(PLACE_ON_MOVE, | ||
| + | agent.set_item(BLACK_CONCRETE, | ||
| + | agent.move(FORWARD, | ||
| + | agent.set_assist(PLACE_ON_MOVE, | ||
| + | agent.move(LEFT, | ||
| + | agent.move(BACK, | ||
| + | #Das Aufrufen | ||
| + | quadrat(5) | ||
| </ | </ | ||
| </ | </ | ||
| </ | </ | ||