Inhaltsverzeichnis

Minecraft: Eine Welt mit Phyton programmieren

Win the Mini Games to win the Freedom:


Die Idee:

Wir haben uns entschieden eine eigene Welt zu gestalten, in welcher fünf verschiedene Mini Games integriert sind. Wir sind auf diese Idee gekommen, da wir gerne Escape Rooms besuchen und wir dadurch gerne eine eigene Interpretation eines Escape Rooms programmieren/gestalten wollten. Ausserdem haben wir uns von Halloween und der Dunkelheit inspirieren lassen, weswegen unser Spiel in der Nacht abspielt. Wir gingen auf Kompromisse ein und haben uns schlussendlich als Team entschieden.


Spielablauf:

Unsere Welt ist aus einem langem Tunnel, einem dazu angebauten Haus und einem Partyhaus ausgestattet. Alle Mini Games finden in einem langem Tunnel statt. Im Tunnel gibt es einzelne Räume, welche man betreten muss. Jeder Raum ist dem dazugehörigem Mini-Game gewidmet, heisst ist entsprechend dem dekoriert. Angebaut an dem Tunnel wurde ein Haus, welches sozusagen das Wartezimmer ist.

Man betritt dieses Haus, das Wartezimmer, und muss sich anstellen beim Office, da man dort ein Formular ausfüllen muss. Das Formular bestätigt, dass die Creator keine Haftung auf körperliche Verletzung übernimmt. Beim Warten kann man sich beim Buffet bedienen und sich auf der Couch bequem machen. Sobald der Creator an der Reihe ist, muss er die einzelnen Mini-Games absolvieren. Falls er bei einem Mini-Game durchfällt, heisst er verliert es, ist er disqualifiziert. Die Türen zu den einzelnen Mini-Games öffnet sich erst dann, wenn man das Mini-Game gewonnen hat. Wenn man alle Mini Games mit Bravour gemeistert hat, bekommt man eine kleine Belohnung. Direkt nach dem kann man im Party Haus feiern gehen oder die Welt verlassen.

Beschreibung der einzelnen Mini-Games:

Die Reihenfolge der Mini-Games ist wie folgt: Lava, Monstres, Sprungbrett, Mini Mission und zum Schluss Fight. Man muss jedes einzelnes Mini Game gewinnen oder abschliessen, sonst kommt man nicht weiter.

Lava:

Der Boden ist Lava. Ein Spiel, welche viele kennen. Zu Beginn ist der Boden normal. Anschliessend wird ca. pro zwei Sekunden einzelne Blöcke zu Lava. Der Creator muss verhindern, dass er auf einen Block mit Lava kommt. Wenn er drauf kommt, hat er verloren. Wenn er es geschafft hat, wird der ganze Boden wieder normal. Die Türe zum nächsten Spiel öffnet sich.

Monsters:

Hier erscheinen eine Anzahl von Monstern. Der Creator muss die Monster mit dem Schwert, welcher zu Beginn bekommt, zu Tote schlagen. Sobald er alle vernichtet hat, muss er das Schwert ablegen und die nächste Tür öffnet sich.

Sprungbrett:

Man muss mit Hilfe einer Leiter auf das Sprungbretter klettern. Anschliessend muss er springen, er muss jedoch in die vier Quadranten springen. Dort befindet sich Wasser, welches ihn retten. Ansonsten stirbt er. Sobald er dies gemeistert hat, öffnet sich die nächste Türe.

Mini Missionen:

Das Ziel ist es einen Wolf zu einem einem Hund zu verwandeln. Dies geschieht, indem man einen Wolf zähmt, mit Hilfe eines Knochen.

Die andere Mission ist es ein Schwert zu kreieren.

Fight:

Hier kämpft er gegen jemanden von uns, entweder Monica oder Jaël. Die ganze Ausrüstung wird bereitgestellt. Der Creator muss jemanden von uns zu Tote schlagen.


Aufteilung der Arbeit:

Jaël : Wiki, Programmieren des Partyhauses und Dekoration der Innenräume/Aussenbereich, Haus und Tunnel bauen

Monica: Programmieren der Mini-Games und Dekoration der Innenräume/Aussenbereich, Haus und Tunnel bauen


Programmieren oder gebaut?

Tunnel: Hand gebaut

Haus (Wartezimmer): Hand gebaut

Partyhaus: programmieren

Dekoration der Aussen/Innenräume:Hand gebaut

Mini-Games: programmieren

Türe: programmieren


Codes der programmierten Elementen:

Türen

def tuerefight():

  blocks.place(blocks.block_with_data(ACACIA_BUTTON,5), world(-58, 5, 8))
  blocks.place(blocks.block_with_data(ACACIA_BUTTON,5), world(-58, 5, 11))

player.on_chat(„tuerefight“, tuerefight)

def tuerecreate():

  blocks.place(blocks.block_with_data(ACACIA_BUTTON,5), world(-40, 5, 17))

player.on_chat(„tuerecreate“, tuerecreate)

def tuerejump():

  blocks.place(blocks.block_with_data(ACACIA_BUTTON,5), world(-22, 5, 12))

player.on_chat(„tuerejump“, tuerejump)

Türe beim Mini-Game „Lava“

def tuerelava():

  blocks.place(blocks.block_with_data(ACACIA_BUTTON,5), world(-4, 5, 17))

player.on_chat(„tuerelava“, tuerelava)

Türe beim Mini-Game „Monsters“

def tuerezombie():

  blocks.place(blocks.block_with_data(ACACIA_BUTTON,5), world(14, 5, 9))

player.on_chat(„tuerezombie“, tuerezombie)


Mini-Game „Lava“

def lava():

  for i in range(240):
      x=randint(12,-4)
      z=randint(0,19)
      loops.pause(120)
      blocks.place(LAVA,world(x,3,z))

def loeschen_lava():

  blocks.fill(COAL_BLOCK,world(12,3,0),world(-4,3,19))

loeschen_lava()

player.on_chat(„start2“, lava)


Mini-Game „Monsters“

def monsters():

  for i in range(5):
      x=randint(14,30)
      z=randint(0,19)
      loops.pause(2000)
      mobs.spawn(ZOMBIE, world(x, 4, z)) 

def loeschen_monsters():

  blocks.fill(AIR,world(14,4,0),world(30,4,19))

loeschen_monsters()

player.on_chat(„start1“, monsters)


Tod

def on_died():

  player.say("Bravo du hast Monica geschlagen! Hol deine Preise!")

player.on_died(on_died)


Partyhaus

def party_house(xpos,ypos,zpos,breite, hoehe):

  blocks.fill(STONE_BRICKS,world(xpos,ypos,zpos),world(xpos+breite,ypos+hoehe, zpos+breite))
  blocks.fill(AIR, world(xpos+1,ypos,zpos+1),world(xpos+breite-1,ypos+hoehe-1, zpos+breite-1))
  #Tuere
  blocks.fill(AIR,world(xpos+4,ypos,zpos),world(xpos+4,ypos+1,zpos))
  blocks.place(ACACIA_DOOR,world(xpos+4,ypos,zpos))

party_house(-89,4,9,10,5)


https://eduetatfr-my.sharepoint.com/:f:/g/personal/jael_jungo_studentfr_ch/EvFfshzSlapOtWGd4bX96BABifxXkND1dXIkd05SaSls7Q?e=0bW3z7

file:///C:/Users/jaelj/Downloads/codes_der_programmierten_elementen.pdf


Fazit:

Mit unserer Welt sind wir sehr zufrieden ,da wir finden die Umsetzung ist uns sehr gut gelungen. Wir haben sehr viel Zeit in unser Projekt investiert. Anfangs taten wir uns ein wenig schwierig mit dem Programmieren, da wir beide nicht sehr viel Ahnung vom Programmieren hatten. Wir haben dann unser Bestes versucht und die Spiele programmiert. Dieses Projekt hat uns beiden sehr viel Spass bereitet, vor allem das Bauen und das Dekorieren des Tunnels und der Häuser.

Monica und Jaël-31.01.2022

Code

Codes der programmierten Elementen:

def tuerefight():
    blocks.place(blocks.block_with_data(ACACIA_BUTTON,5), world(-58, 5, 8))
    blocks.place(blocks.block_with_data(ACACIA_BUTTON,5), world(-58, 5, 11))
player.on_chat("tuerefight", tuerefight)

def tuerecreate():
    blocks.place(blocks.block_with_data(ACACIA_BUTTON,5), world(-40, 5, 17))

player.on_chat("tuerecreate", tuerecreate)


def tuerejump():
    blocks.place(blocks.block_with_data(ACACIA_BUTTON,5), world(-22, 5, 12))

player.on_chat("tuerejump", tuerejump)

def tuerelava():
    blocks.place(blocks.block_with_data(ACACIA_BUTTON,5), world(-4, 5, 17))

player.on_chat("tuerelava", tuerelava)

def tuerezombie():
    blocks.place(blocks.block_with_data(ACACIA_BUTTON,5), world(14, 5, 9))

player.on_chat("tuerezombie", tuerezombie)

def lava():
    for i in range(240):
        x=randint(12,-4)
        z=randint(0,19)
        loops.pause(120)
        blocks.place(LAVA,world(x,3,z))

def loeschen_lava():
    blocks.fill(COAL_BLOCK,world(12,3,0),world(-4,3,19))

loeschen_lava()

player.on_chat("start2", lava)

def monsters():
    for i in range(5):
        x=randint(14,30)
        z=randint(0,19)
        loops.pause(2000)
        mobs.spawn(ZOMBIE, world(x, 4, z)) 

def loeschen_monsters():
    blocks.fill(AIR,world(14,4,0),world(30,4,19))

loeschen_monsters()

player.on_chat("start1", monsters)

def on_died():
    player.say("Bravo du hast Monica geschlagen! Hol deine Preise!")

player.on_died(on_died)

def party_house(xpos,ypos,zpos,breite, hoehe):
    blocks.fill(STONE_BRICKS,world(xpos,ypos,zpos),world(xpos+breite,ypos+hoehe, zpos+breite))
    blocks.fill(AIR, world(xpos+1,ypos,zpos+1),world(xpos+breite-1,ypos+hoehe-1, zpos+breite-1))
    #Tuere
    blocks.fill(AIR,world(xpos+4,ypos,zpos),world(xpos+4,ypos+1,zpos))
    blocks.place(ACACIA_DOOR,world(xpos+4,ypos,zpos))

party_house(-89,4,9,10,5)