====== Color Drop ====== Erstellung: Laura, Viviana, Lloyd ---- Um am Spiel teilzunehmen, betreten die Spieler die Burg. Sobald das Spiel beginnt, müssen die Spieler die Reihenfolge der angezeigten Farben (Blöcke) merken. Wenn sie gefragt werden, welche Farbe beispielsweise die zweite war, müssen sie zur entsprechenden Plattform mit der richtigen Farbe gehen. Wenn ein Spieler sich auf der falschen Plattform befindet, verschwindet diese, und der Spieler fällt in die Lava und scheidet aus ("stirbt"). Solange mindestens ein Spieler "am Leben" ist, wird der ausgeschiedene Spieler wieder in die Runde teleportiert. Allerdings kann er das Spiel nicht mehr gewinnen und spielt nur noch aus Spaß. Viel Glück! 8-o {{ :gf2:projekte:2023:minecraft:ll_la_vi.jpg?400 |}} {{ :gf2:projekte:2023:minecraft:2ll_la_vi.jpg?400 |}} ---- **Die "Music Extension" wird benötigt, um den Code erfolgreich abzuspielen. **{{:gf2:projekte:2023:minecraft:sunbenannt.jpg?100|}}{{:gf2:projekte:2023:minecraft:bunbenannt.jpg?150|}} ---- Unser Ziel war es, ein Spiel zu entwickeln, in dem die Umgebung von Hand und mit Hilfe von Programmiercode gebaut wurde. (Der Programmiercode wurde benötigt, um Gebäude wie das Schloss in die richtige Position zu bringen.) Der Programmiercode, den man dann in den "MakeCode" einfügt, übernimmt automatisch alles, was mit dem Spiel zu tun hat. **Die Codierung sollte jeweils nur von einer Person durchgeführt werden.** Der Code läuft automatisch in einer Schleife ab; es wird deshalb empfohlen, nach dem Ausführen des Codes nicht mehr zum "MakeCode"-Panel zurückzukehren (mit der Taste C). ==== Fazit ==== **Was wurde erreicht?** Wir haben in der uns zur Verfügung stehenden Zeit viel erreicht. Die Ideen wurden von allen Mitgliedern ausgetauscht. In den Lektionen haben wir aufgeteilt, was jeder zu unserem Projekt beitragen kann. Die Burg, die Umgebung und das Spielfeld wurden von den Bauverantwortlichen in der vorgegebenen Zeit errichtet. Mithilfe einer Kombination aus Python "MakeCode", Minecraft-Command-Blocks //(alle sichtbar bei -5, -31, 46)// und dem integrierten "Code in Chatbefehlen"-System (zur Verwendung von Tags) haben wir eine interaktive Welt in Minecraft geschaffen. **Was ist weniger gut gelaufen?** * Am Anfang waren wir uns nicht einig, welche Idee wir genau umsetzen wollten. Da die Komplexität eine Rolle spielte, aber jeder große Ideen hatte, dauerte es einige Zeit, bis die endgültige Idee entwickelt und finalisiert war. Da Laura uns schon nach wenigen Wochen verlassen hat und viel zu den Ideen und Fertigstellung beigetragen hat, ist die Arbeitslast etwas größer geworden. Aber als kleine Gruppe hatten wir ein gutes Arbeitstempo, das uns half, ein Spiel zu entwickeln, das uns allen //(sogar Laura in Chile)// gefiel. * Wir hatten einige Probleme bei der Erstellung des Codes. Das größte Problem waren die Arrays (Listen). **//(Der Fall ist unten dargestellt)//**. Durch die Verwendung von ''[:]'' wird eine Kopie der Elemente von "Original" erstellt und diese Kopie wird "Clone" zugewiesen. Auf diese Weise sind "Original" und "Clone" zwei getrennte Listen, und Änderungen an einer Liste beeinflussen nicht die andere. Original = [1,2,3] Clone = Original[:] Link = Original print(Original==Link==Clone) #Result: True Link.remove(1) print(Original==Link==Clone) #Result: False print(Link==Clone) #Result: False print(Link==Original) #Result: True print(Original,Link,Clone) #Result: [2, 3] [2, 3] [1, 2, 3] * Unser Code benötigte ebenfalls Debugging. Die Verwendung von player.say() ermöglichte es uns, die Änderungen der Variablen zu verfolgen. Und anschließend die entsprechenden Anpassungen im Code vorzunehmen. * Das Senden (''return'') von Listen von einer Funktion an eine externe Funktion ist fehlgeschlagen. Mit globalen Variablen haben wir dieses Problem umgangen **Was war noch geplant und wurde nicht realisiert?** Wir wollten noch implementieren, dass während einer Runde eine Glaswand zwischen zwei Platfromen steht, so dass man diese umgehen muss und das Spiel dadurch etwas schwieriger wird. Leider konnte dieses Ziel aus Zeitgründen nicht realisiert werden. ==== Programmiercode/Welt ==== Da unser Code sehr flexibel ist, kann ein neuer Spielablauf schnell geschrieben werden. * duration (Dauer der Farbanzeige): x>0.2 * numOfcolors (Anzahl der angezeigten Farben): x>1, x = natürliche Zahl * walkingTime (Dauer des Verbleibs der Plattformen nach der Anzeige): Muss x>1, x = natürliche Zahl gameProgram = [ {"duration": 1.3, "numOfcolors": 3, "walkingTime": 5}, {"duration": 1.1, "numOfcolors": 5, "walkingTime": 5}, {"duration": 1.2, "numOfcolors": 6, "walkingTime": 4} ] ---- **Die Codierung sollte jeweils nur von einer Person durchgeführt werden.** //Der Code enthält Kommentare, um dem Leser die Struktur des Codes zu verdeutlichen.//=) Weltdatei und Welt-Code: [[https://eduetatfr-my.sharepoint.com/:f:/g/personal/lloyd_schaaser_studentfr_ch/EmuHAGxnplROgz-kdHrBLXwBD50lGWxwrJiBQWIlyfc6ng?e=jkjvHN|Click here ]]