Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| ef:grundlagen_python [2022/09/11 13:19] – lehmannr | ef:grundlagen_python [2024/09/03 15:15] (aktuell) – lehmannr | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | FR====== Minecraft mit Hilfe von Python steuern ====== | + | ====== Minecraft mit Hilfe von Python steuern ====== |
| ===== Minecraft per Code steuern ===== | ===== Minecraft per Code steuern ===== | ||
| Zeile 16: | Zeile 16: | ||
| | '' | | '' | ||
| | '' | | '' | ||
| - | | '' | + | | '' |
| ** Der Agent ** | ** Der Agent ** | ||
| Zeile 24: | Zeile 24: | ||
| ** Den Agenten bauen lassen, oder direkt bauen ** | ** Den Agenten bauen lassen, oder direkt bauen ** | ||
| - | Man kann nun den Agenten dazu bringen, etwas für uns zu bauen, oder man kann auch direkt (ohne die Verwendung der Agenten | + | Man kann nun den Agenten dazu bringen, etwas für uns zu bauen, oder man kann auch direkt |
| <sxh python; | <sxh python; | ||
| Zeile 51: | Zeile 51: | ||
| | '' | | '' | ||
| - | Achtung: | + | Achtung: |
| </ | </ | ||
| </ | </ | ||
| Zeile 228: | Zeile 228: | ||
| </ | </ | ||
| <sxh python; | <sxh python; | ||
| - | ef rec2(x,y): | + | def rec2(x,y): |
| if x<=1 or y>=30: | if x<=1 or y>=30: | ||
| blocks.place(GOLD_BLOCK, | blocks.place(GOLD_BLOCK, | ||
| Zeile 234: | Zeile 234: | ||
| blocks.place(GRANITE, | blocks.place(GRANITE, | ||
| rec2(x-1, | rec2(x-1, | ||
| - | rec2(x+1, y) | + | rec2(x+1, y+1) |
| rec2(30,4) | rec2(30,4) | ||
| Zeile 242: | Zeile 242: | ||
| **Aufgaben B** | **Aufgaben B** | ||
| - Überlege dir, was der Agent genau baut, wenn man das oben angegebene Programm '' | - Überlege dir, was der Agent genau baut, wenn man das oben angegebene Programm '' | ||
| - | - Überlege dir dies auch für das Programm '' | ||
| - Welcher fundamentale Unterschied besteht zwischen den beiden Programmen? Wie wirkt sich dies auch den Zeit- und Speicherbedarf aus? | - Welcher fundamentale Unterschied besteht zwischen den beiden Programmen? Wie wirkt sich dies auch den Zeit- und Speicherbedarf aus? | ||
| </ | </ | ||
| Zeile 391: | Zeile 390: | ||
| </ | </ | ||
| - | <callout type=" | + | <callout type=" |
| {{fa> | {{fa> | ||
| < | < | ||
| - | ==== 3.1 Listen erstellen ==== | + | ==== 4.1 Listen erstellen ==== |
| 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. Gibt man als Index negative Zahlen an, so zählt Python vom letzten Element an rückwärts. D.h. das letzte Element der Liste '' | 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. Gibt man als Index negative Zahlen an, so zählt Python vom letzten Element an rückwärts. D.h. das letzte Element der Liste '' | ||
| <code Python> | <code Python> | ||
| Zeile 421: | Zeile 420: | ||
| </ | </ | ||
| - | ==== 3.2 Der range-Befehl ==== | + | ==== 4.2 Der range-Befehl ==== |
| 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: z.B. alle Zahlen von 1 bis 10 oder die Zahlen von 1 bis 100 in 2er-Schritten etc. | ||
| Dazu ist der range-Befehl sehr praktisch: Er erstellt eine Liste von einem Startwert bis zu einem Endwert mit einer bestimmten Schrittweite: | Dazu ist der range-Befehl sehr praktisch: Er erstellt eine Liste von einem Startwert bis zu einem Endwert mit einer bestimmten Schrittweite: | ||
| Zeile 440: | Zeile 439: | ||
| Tipp: Mit dem Befehl '' | Tipp: Mit dem Befehl '' | ||
| </ | </ | ||
| - | ==== 3.3 Listen durchgehen ==== | + | ==== 4.3 Listen durchgehen ==== |
| Ganz oft will man für alle Elemente in einer Liste dasselbe tun, d.h. man will die Liste " | Ganz oft will man für alle Elemente in einer Liste dasselbe tun, d.h. man will die Liste " | ||
| Zeile 465: | Zeile 464: | ||
| agent.move(FORWARD, | agent.move(FORWARD, | ||
| agent.turn(richtung) | agent.turn(richtung) | ||
| - | </code> | + | </sxh> |
| Damit sieht unser Programm viel kürzer aus: | Damit sieht unser Programm viel kürzer aus: | ||
| - | <sxh python; | + | <sxh python> |
| def baueSpirale(richtung): | def baueSpirale(richtung): | ||
| for zahl in [1, | for zahl in [1, | ||
| Zeile 510: | Zeile 509: | ||
| - Schreibe eine Funktion '' | - Schreibe eine Funktion '' | ||
| - Schreibe eine Funktion '' | - Schreibe eine Funktion '' | ||
| - | - Schreibe eine Funktion '' | + | - Schreibe eine Funktion '' |
| - Schreibe eine Funktion '' | - Schreibe eine Funktion '' | ||
| - Schreibe eine Funktion '' | - Schreibe eine Funktion '' | ||
| Zeile 520: | Zeile 519: | ||
| </ | </ | ||
| - | <callout type=" | + | <callout type=" |
| {{fa> | {{fa> | ||
| < | < | ||
| Zeile 559: | Zeile 558: | ||
| - Erstelle eine Funktion '' | - Erstelle eine Funktion '' | ||
| - Schreibe eine Funktion '' | - Schreibe eine Funktion '' | ||
| - | - Schreibe eine Funktion '' | + | - Schreibe eine Funktion '' |
| </ | </ | ||