ef:minecraftauftraege

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
ef:minecraftauftraege [2024/09/03 13:58] – angelegt lehmannref:minecraftauftraege [2024/09/10 15:39] (aktuell) lehmannr
Zeile 1: Zeile 1:
 ===== Auftrag 03.09.2024 ===== ===== Auftrag 03.09.2024 =====
 +
 +<WRAP nicebox green>
 +**Auftrag 1**\\
 +Studiere im Wiki das Kapitel 3.1 und 3.3.1 (call by value vs. call by reference) zu den Variablen\\
 +Folgende Fragen sollten beantwortet werden können: \\
 +  * Was ist der Unterschied zwischen statischer und dynamischer Typisierung?
 +  * Welche Vor- und Nachteile haben die statische und die dynamische Typisierung?
 +  * Welche Variablentypen gibt es und was zeichnet sie aus?
 +  * Wozu verwendet man Variablen in der Programmierung?
 +  * Was ist der Unterschied zwischen einem Referenztyp und einem Werttyp?
 +  * Was versteht man zwischen "Call by Reference" bzw. "Call by Value"
 +  * Was bedeutet mutable bzw. imutable?
 +  * Sind in Python die Variablen Referenztypen oder Werttypen? Sind sie mutable oder imutable?
 +
 +**Auftrag 2**\\
 +  * Schreibe ein Programm, welches eine Linie mit 5 Blöcken baut.
 +  * Schreibe eine Funktion linie(n), welche eine Linie mit n Blöcken baut.
 +  * Schreibe eine Funktion linieDuo(n), welche eine Linie baut mit Diamant,Gold,Diamant,Gold etc. (n Mal)
 +  * Schreibe eine Funktion linieListe(l), welcher man eine Liste übergeben kann mit Materialien, und dann wird eine Linie aus diesen Materialien gebaut.
 +  * Schreibe eine Funktion Parkett(m1, m2, n), der man zwei Materialien und eine Zahl übergeben kann. Danach wird ein Schachbrettmuster der Breite und Länge n gebaut aus den Materialien m1 und m2.
 +
 +**Auftrag 3**\\
 +Schreibe ein Programm, welches deinen Agenten dazu bringt, Diamanten einzusammeln und Knochen nicht einzusammeln (bzw. wieder wegzuwerfen)\\
 +Erstelle dazu eine flache Welt und kopiere den untenstehenden Code in deinen Codebuilder.  \\
 +  * Das Feld ist 30x30 gross (0,-60,0) bis (30,-60,30)
 +  * Ich werde zufällig Knochen und Diamanten platzieren
 +  * Dein Agent soll die Diamanten aufsammeln und die Knochen nicht
 +  * Mit dem Chatbefehl build_arena kannst du die Arena bauen
 +  * Mit dem Chatbefehl spread_items kannst du Knochen und Diamanten verteilen
 +  * Du sollts den Code start schreiben, dieser beginnt mit teleport_agent, welche den Agenten zufällig in die Arena teleportiert. Danach kommen die Zeilen time1 und while...
 +
 +</WRAP>
 +
 +<sxh python highlight:[38-41]>
 +def build_arena():
 +    blocks.fill(SANDSTONE, world(0,-61,0),world(30,-61,30))
 +    blocks.fill(212, world(0,-60,30), world(30,-59,30))
 +    blocks.fill(212, world(30,-60,30), world(30,-59,0))
 +    blocks.fill(212, world(30,-60,0), world(0,-59,0))
 +    blocks.fill(212, world(0,-60,0), world(0,-59,30))
 +    blocks.fill(AIR, world(30,-58,0), world(0,-58,0))
 +    blocks.fill(211, world(0,-62,0),world(30,-62,30))
 +   
 +
 +player.on_chat("build_arena", build_arena)
 +
 +
 +def spread_items():
 +    
 +    for i in range(10):
 +        agent.set_item(DIAMOND, 1, 1)
 +        a = randint(1, 29)
 +        b = randint(1,29)
 +        agent.teleport(world(a, -60, b), WEST)
 +        agent.drop(BACK, 1, 1)
 +    
 +    for i in range(10):
 +        agent.set_item(BONE,2,2)
 +        a = randint(1, 29)
 +        b = randint(1,29)
 +        agent.teleport(world(a, -60, b), WEST)
 +        agent.drop(BACK, 2, 1)
 +            
 +
 +player.on_chat("spread_items", spread_items)
 +
 +def teleport_agent():
 +    a = randint(1, 29)
 +    b = randint(1,29)
 +    agent.teleport(world(a, -60, b), WEST)
 +
 +def start():
 +    teleport_agent()
 +    time1 = gameplay.time_query(GAME_TIME)
 +    while gameplay.time_query(GAME_TIME)-time1<2000:
 +        #agent.turn_left()
 +        u = randint(1,3)
 +        agent.move(FORWARD, u)
 +        agent.collect_all()
 +        agent.move(FORWARD, 1)
 +        agent.collect_all()
 +        agent.turn_left()
 +        if u==2:
 +            agent.turn_left()
 +
 +player.on_chat("start", start)
 +
 +#agent.detect(AgentDetection.BLOCK, FORWARD)
 +
 +#agent.inspect(AgentInspection.BLOCK, FORWARD)
 +
 +#agent.get_item_detail(1)
 +</sxh>
  • ef/minecraftauftraege.1725364694.txt.gz
  • Zuletzt geändert: 2024/09/03 13:58
  • von lehmannr