Seite anzeigenÄltere VersionenLinks hierherNach oben Diese Seite ist nicht editierbar. Sie können den Quelltext sehen, jedoch nicht verändern. Kontaktieren Sie den Administrator, wenn Sie glauben, dass hier ein Fehler vorliegt. ===== 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.txt Zuletzt geändert: 2024/09/10 15:39von lehmannr