archiv:gf:gf2021_2022:2d1:leylaalessiashayenne

Verschwind, geschwindt aus dem Labyrinth!

Informatikprojekt von Demir Leyla Selin, Sommer Shayenne Lee und Eggertswyler Alessia


In unserem Projekt hatten wir die Idee ein Labyrinth von Hand zu bauen. Das Ziel ist es in dieses Labyrinth Fallen zu integrieren, welche wir mit Python programmieren. Zu dem wollten wir Checkpoints setzen, damit es nicht zu schwierig wird den Ausgang zu finden und das man nicht immer wieder von vorne anfangen muss. Zusätzlich zur Vereinfachung werden wir versteckte Abkürzungen in das Labyrinth integrieren. Die Welt wird auf den Modus „überleben, friedlich“ gestellt, so dass niemand aus dem Labyrinth fliegen kann und dass keine ungeplanten Monster das Spiel beeinflussen (Beispiel: Creeper = Explosion). Das Labyrinth wird unveränderbar sein. Es werden Türen in das Spiel inkludiert welche verwirrend wirken könnten.

Wenn ihr die Welt öffnet, spawnt ihr am Anfang einer langen Treppe. Über diese Treppe erreicht ihr den Eingang des Labyrinthes. Nehmt eure Sachen aus der Truhe mit, die neben dem Eingang steht. Das Ziel ist es logischerweise den Ausgang aus dem Labyrinth zu finden. Im Labyrinth sind verschiedenen Fallen verstreut, denen ihr lieber nicht begegnen wollt. Zudem haben wir verschiedene Schilder verteilt, die euch helfen könnten. Wenn ihr sterben solltet, landet ihr wieder beim Eingang.

Es gibt einige Dinge, die ihr beachten müsst, bevor das Spiel bei euch funktioniert. Ihr müsst vor dem Spielen „Minecraft-Education“ neu herunterladen. Damit alle Fallen im Spiel sind und es erst so richtig Spaß macht, müsst ihr den Code, welcher sich am Ende des Wikis befindet, kopieren und in die Welt einfügen.

Beim Eingang des Labyrinths befinden sich 2 Truhen, die mit 7 verschiedenen Sachen gefüllt sind. Nehmt am Anfang die erste Zeile in der Truhe mit. Die Gegenstände können für euch noch von Nutzen sein. Da wenn ihr sterbt die Sachen im Inventar verloren gehen, haben wir mehrere Zeilen mit den gleichen Gegenständen gemacht, die man mitnehmen kann, wenn man respawnt wird.

Lasst eure Finger von unserem Labyrinth und der Umgebung! Ihr könnt nichts Abbauen, was sich innerhalb des Labyrinths befindet. Wir wären euch allerdings auch dankbar, wenn ihr die Wege und Dekorationen um das Labyrinth so stehen lässt wie sie gesetzt wurden.

Ihr müsst durch das Labyrinth, um ins Ziel zu gelangen. Absperrungen verhindern, dass ihr einfach um das Labyrinth laufen könnt und so zum Ziel gelangt.

Nun kann es losgehen. Wenn ihr neu spawnt, werdet ihr immer vor der Eingangstreppe starten.

Alessia Eggertswyler: Programmierung, Gestaltung, Wiki
Shayenne Lee Sommer: Gestaltung, Fallen, Wiki
Leyla Selin Demir: Gestaltung, Bau der Fallen, Wiki

Zu den Fallen können wir euch leider nicht zu viel verraten, da es sonst im Spiel für euch nicht lustig wäre und ihr genau wüsstet was euch erwartet.
Im Spiel gibt es insgesamt drei verschiedene Fallen
Teuflische Hölle: Die Teuflische Hölle wird euch noch zeigen wer hier der Chef ist. Wenn ihr zu dieser Falle kommen solltet wird sie euch zum Tode führen.
Sandsturm des Todes: Beim Sandsturm des Todes werden euch Sandblöcke von Oben überraschen und euch erdrosseln. Mit ein bisschen Glück werdet ihr es aus der Falle heraus schaffen bevor ihr erstickt.
Endlosschleife: Es gibt verschiedene Sackgassen und Orte im Spiel an denen ihr gar keine Chance habt zu überleben. Die Endlosschleife überrascht euch mit einem plötzlichen Tod und ihr kommt sofort zurück an den Anfang.

Unser Grundriss des Labyrinths haben wir mithilfe einer Vorlage selber von Hand gebaut, sowie die Wege und Dekorationen vor und nach dem Labyrinth. Auch haben wir die „Teuflische Hölle“ selber gebaut, da diese nicht Programmierbar war. Alle gesetzten Schilder und Truhen, die ihr außerhalb und innerhalb findet, sind selber platziert.
Programmiert wurden die zwei anderen Fallen, also der „Sandsturm des Todes“ und die „Endlosschleife“. Auch den Pyramidenförmigen Untergrund, den man unter dem Labyrinth findet ist programmiert. Ebenfalls wurde die Zeit auf Mitternacht programmiert, damit es etwas düsterer wirkt. Wir haben auch einen Respawnort programmiert, welcher sich direkt am Anfang befindet. Solltet ihr sterben, werdet ihr dorthin zurück gebracht.

Es gab einige Schwierigkeiten welche wir nicht so umsetzen konnten wie wir wollten.
Zum einen wollten wir eigentlich Monster in unser Spiel integrieren die auch als Fallen dienen und einem töten. Dies ging jedoch nicht weil wir in unserem „überleben, friedlich“ Modus keine Monster platzieren konnten. Ein anderer Grund war auch das immer zuerst Tag war und die Monster während Tageslicht verbrannten.
Ein weiteres Problem das wir hatten war, dass wir die Falle „Teuflische Hölle“ von Hand bauen mussten und wenn wir dann etwas an unserem programmierten Code geändert haben ist die Falle kaputt gegangen und wir mussten sie mehrmals von vorne bauen. Deshalb mussten Hashtags vor unsere Codes setzten welche man auf gar keinen Fall wegnehmen darf.
Die letzte aber auch wahrscheinlich grösste Schwierigkeit war, dass wir ein paar Schichten unter unserem Labyrinth von Hand abbauen mussten damit wir diese Schichten mit einem „Anti-Abbau-Block“ auffüllen konnten. Dies hat eine Ewigkeit gedauert, hat aber seinen Zweck, denn nun kann niemand den Boden im Labyrinth abbauen und so versuchen zu fliehen.
Im grossen und Ganzen kann man jedoch sagen, dass es uns sehr Spass gemacht hat das Labyrinth zu bauen und auch vieles so wurde wie wir es wollten. Die Fallen funktionieren gut und es ist nicht unmöglich zum Ziel zu gelangen. Wir hatten uns Anfangs ziemlich überschätzt denn wir wollten zwei Labyrinthe aneinander hängen, aber wir denken es ist ohnehin besser so, dass wir nur eines gemacht haben.

Am Ende wird euch eine schöne Achterbahnfahrt bis zum Ziel bringen. Geschafft habt ihr es, wenn ihr dieses Bild vor Augen habt.
Und jetzt viel Spass!

Unsere Welt

#blocks.fill(GRASS, world(186, 5, -77), world(65, 5, 244))
#blocks.fill(211, world(191, 5, 192))
#blocks.fill(211, world(191, 5, 193))


#blocks.clone(world(5, 3, -55), world(90, 10, 40), world(150, 12, 150), CloneMask.REPLACE, CloneMode.NORMAL)
#blocks.fill(GRASS, world(239, 11, 145), world(146, 11, 249))
#blocks.fill(GRASS, world(241, 10, 143), world(144, 10, 251))
#blocks.fill(GRASS, world(243, 9, 141), world(142, 9, 253))
#blocks.fill(GRASS, world(245, 8, 139), world(140, 8, 255))
#blocks.fill(GRASS, world(247, 7, 137), world(138, 7, 257))
#blocks.fill(GRASS, world(249, 6, 135), world(136, 6, 259))
#blocks.fill(GRASS, world(251, 5, 133), world(134, 5, 261))
#blocks.fill(GRASS, world(253, 4, 131), world(132, 4, 263))
#blocks.fill(GRASS, world(255, 3, 129), world(130, 3, 265))
##NIEMALS wegnehmen sonst Falle kaputt!!
def on_travelled_walk():
    x = player.position().get_value(Axis.X)
    y = player.position().get_value(Axis.Y)
    z = player.position().get_value(Axis.Z)
    if (x == 215) and (y==13) and (z==198):
        blocks.place(SAND,pos(0,5,0))
    if (x == 214) and (y==13) and (z==198):
        blocks.place(SAND,pos(0,5,0))
    if (x == 215) and (y==13) and (z==199):
        blocks.place(SAND,pos(0,5,0))
    if (x == 214) and (y==13) and (z==199):
        blocks.place(SAND,pos(0,5,0))
    if (x == 215) and (y==13) and (z==194):
        blocks.place(SAND,pos(0,5,0))
    if (x == 214) and (y==13) and (z==194):
        blocks.place(SAND,pos(0,5,0))
    if (x == 215) and (y==13) and (z==195):
        blocks.place(SAND,pos(0,5,0))
    if (x == 214) and (y==13) and (z==195):
        blocks.place(SAND,pos(0,5,0))
    if (x == 215) and (y==13) and (z==196):
        blocks.place(SAND,pos(0,5,0))
    if (x == 214) and (y==13) and (z==196):
        blocks.place(SAND,pos(0,5,0))
    if (x == 215) and (y==13) and (z==197):
        blocks.place(SAND,pos(0,5,0))
    if (x == 214) and (y==13) and (z==197):
        blocks.place(SAND,pos(0,5,0))
    if (x == 210) and (y==13) and (z==201):
        blocks.place(SAND,pos(0,5,0))
    if (x == 210) and (y==13) and (z==200):
        blocks.place(SAND,pos(0,5,0))
    if (x == 211) and (y==13) and (z==201):
        blocks.place(SAND,pos(0,5,0))
    if (x == 211) and (y==13) and (z==200):
        blocks.place(SAND,pos(0,5,0))
    if (x == 212) and (y==13) and (z==201):
        blocks.place(SAND,pos(0,5,0))
    if (x == 212) and (y==13) and (z==200):
        blocks.place(SAND,pos(0,5,0))
    if (x == 213) and (y==13) and (z==201):
        blocks.place(SAND,pos(0,5,0))
    if (x == 213) and (y==13) and (z==200):
        blocks.place(SAND,pos(0,5,0))
    if (x == 214) and (y==13) and (z==201):
        blocks.place(SAND,pos(0,5,0))
    if (x == 214) and (y==13) and (z==200):
        blocks.place(SAND,pos(0,5,0))
    if (x == 215) and (y==13) and (z==201):
        blocks.place(SAND,pos(0,5,0))
    if (x == 215) and (y==13) and (z==200):
        blocks.place(SAND,pos(0,5,0))
    if (x == 216) and (y==13) and (z==201):
        blocks.place(SAND,pos(0,5,0))
    if (x == 216) and (y==13) and (z==200):
        blocks.place(SAND,pos(0,5,0))
    if (x == 217) and (y==13) and (z==201):
        blocks.place(SAND,pos(0,5,0))
    if (x == 217) and (y==13) and (z==200):
        blocks.place(SAND,pos(0,5,0))
    if (x == 218) and (y==13) and (z==201):
        blocks.place(SAND,pos(0,5,0))
    if (x == 218) and (y==13) and (z==200):
        blocks.place(SAND,pos(0,5,0))
    if (x == 219) and (y==13) and (z==201):
        blocks.place(SAND,pos(0,5,0))
    if (x == 219) and (y==13) and (z==200):
        blocks.place(SAND,pos(0,5,0))

    if (x == 195) and (y==13) and (z==165):
        player.execute("Kill @s")
    if (x == 196) and (y==13) and (z==165):
        player.execute("Kill @s")
    if (x == 172) and (y==13) and (z==170):
        player.execute("Kill @s")
    if (x == 172) and (y==13) and (z==171):
        player.execute("Kill @s")
    if (x == 180) and (y==13) and (z==213):
        player.execute("Kill @s")
    if (x == 179) and (y==13) and (z==213):
        player.execute("Kill @s")
    if (x == 202) and (y==13) and (z==213):
        player.execute("Kill @s")
    if (x == 202) and (y==13) and (z==214):
        player.execute("Kill @s")
    if (x == 203) and (y==13) and (z==214):
        player.execute("Kill @s")
    if (x == 203) and (y==13) and (z==213):
        player.execute("Kill @s")   


gameplay.time_set(DayTime.MIDNIGHT)
gameplay.set_game_rule(DAYLIGHT_CYCLE, False)

player.on_travelled(WALK, on_travelled_walk)
 

player.execute("setworldspawn 177 4 118")

  • archiv/gf/gf2021_2022/2d1/leylaalessiashayenne.txt
  • Zuletzt geändert: 2022/08/27 18:08
  • von lehmannr