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
ef:grundlagen_python [2022/09/20 14:50] lehmannref:grundlagen_python [2024/09/03 15:15] (aktuell) lehmannr
Zeile 16: Zeile 16:
 | ''world(x,y,z)'' | Absolute Position in der Welt | | ''world(x,y,z)'' | Absolute Position in der Welt |
 | ''pos(x,y,z)'' | Relativ zum Spieler/Agenten bez. Himmelsrichtung | | ''pos(x,y,z)'' | Relativ zum Spieler/Agenten bez. Himmelsrichtung |
-| ''local_pos(x,y,z)'' | Relativ zum Spieler/Agenten bez. Blickrichtung |+| ''pos_local(x,y,z)'' | Relativ zum Spieler/Agenten bez. Blickrichtung |
  
 ** 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 bauen). Die folgenden beiden Programme setzen jeweils einen Gold- und einen Diamantblock an die absoluten Positionen (0,-60,10) und (0,-60,11):+Man kann nun den Agenten dazu bringen, etwas für uns zu bauen, oder man kann auch direkt bauen (ohne die Verwendung der Agenten). Die folgenden beiden Programme setzen jeweils einen Gold- und einen Diamantblock an die absoluten Positionen (0,-60,10) und (0,-60,11):
  
 <sxh python;title:Blöcke direkt bauen> <sxh python;title:Blöcke direkt bauen>
Zeile 51: Zeile 51:
 | ''agent.set_assist(PLACE_FROM_ANY_SLOT, [TRUE/FALSE])'' | Automatisch nächstes Fach wählen, wenn ein Fach leer ist | | ''agent.set_assist(PLACE_FROM_ANY_SLOT, [TRUE/FALSE])'' | Automatisch nächstes Fach wählen, wenn ein Fach leer ist |
  
-Achtung: Wenn man im Kreativmodus ist, so ist das Material unlimitiert, d.h. es nimmt im Inventar des Spielers oder des Agenten nicht ab, wenn man baut.+Achtung: Im Kreativmodus ist das Material unlimitiert, d.h. das Material nimmt im Inventar des Spielers oder des Agenten nicht ab, wenn man baut.
 </collapse> </collapse>
 </callout> </callout>
Zeile 228: Zeile 228:
 </sxh> </sxh>
 <sxh python;title:eine weitere rekursive Funktion> <sxh python;title:eine weitere rekursive Funktion>
-ef rec2(x,y):+def rec2(x,y):
     if x<=1 or y>=30:     if x<=1 or y>=30:
         blocks.place(GOLD_BLOCK,pos(x,y,10))         blocks.place(GOLD_BLOCK,pos(x,y,10))
Zeile 390: Zeile 390:
 </callout> </callout>
  
-<callout type="warning" title="3. Listen (Arrays) erstellen, durchgehen und der range-Befehl">+<callout type="warning" title="4. Listen (Arrays) erstellen, durchgehen und der range-Befehl">
 {{fa>angle-double-down}}<button collapse="colllists" type="link">Bereich ausklappen/einklappen </button> {{fa>angle-double-down}}<button collapse="colllists" type="link">Bereich ausklappen/einklappen </button>
 <collapse id="colllists"> <collapse id="colllists">
-==== 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 ''Liste1'' erhält man mit ''Liste1[-1]'' 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 ''Liste1'' erhält man mit ''Liste1[-1]''
 <code Python> <code Python>
Zeile 420: Zeile 420:
 </WRAP> </WRAP>
  
-==== 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 439: Zeile 439:
 Tipp: Mit dem Befehl ''player.say'' kannst du deine Listen anzeigen lassen. Beispiel: ''player.say(L1)'' Tipp: Mit dem Befehl ''player.say'' kannst du deine Listen anzeigen lassen. Beispiel: ''player.say(L1)''
 </WRAP> </WRAP>
-==== 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 "abklappern" (durchgehen) und dann für jedes Element dieselbe Aktion durchfühen. Z.B. hat man eine Liste von Positionen und möchte bei jeder Position ein Haus bauen, oder man hat eine Liste von Baumaterialien und man möchte für jedes dieser Materialien einen Block platzieren etc.  Ganz oft will man für alle Elemente in einer Liste dasselbe tun, d.h. man will die Liste "abklappern" (durchgehen) und dann für jedes Element dieselbe Aktion durchfühen. Z.B. hat man eine Liste von Positionen und möchte bei jeder Position ein Haus bauen, oder man hat eine Liste von Baumaterialien und man möchte für jedes dieser Materialien einen Block platzieren etc. 
  
Zeile 519: Zeile 519:
 </callout> </callout>
  
-<callout type="primary" title="4. Verzweigungen mit ''if'' und Schleifen mit ''while'' ">+<callout type="primary" title="5. Verzweigungen mit ''if'' und Schleifen mit ''while'' ">
 {{fa>angle-double-down}}<button collapse="collif" type="link">Bereich ausklappen/einklappen </button> {{fa>angle-double-down}}<button collapse="collif" type="link">Bereich ausklappen/einklappen </button>
 <collapse id="collif"> <collapse id="collif">
  • ef/grundlagen_python.1663678209.txt.gz
  • Zuletzt geändert: 2022/09/20 14:50
  • von lehmannr