Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
gf2:projekte:minecraft:2d1gruppe1 [2023/01/13 09:03] marrocgf2:projekte:minecraft:2d1gruppe1 [2023/02/26 07:31] (aktuell) marroc
Zeile 1: Zeile 1:
-<code python>+<code python MaxAlan.py>
 X=0 X=0
 Y=0 Y=0
Zeile 10: Zeile 10:
 Hind3=False Hind3=False
 Hind4=False Hind4=False
-Hind4=False+Hind5=False 
 +Hind6=False
 zaehler2=1 zaehler2=1
    
Zeile 16: Zeile 17:
     gameplay.time_set(0)     gameplay.time_set(0)
     gameplay.set_difficulty(NORMAL)     gameplay.set_difficulty(NORMAL)
-    gameplay.set_game_mode(CREATIVE, mobs.target(ALL_PLAYERS))+    gameplay.set_game_mode(SURVIVAL, mobs.target(ALL_PLAYERS))
     mobs.clear_effect(mobs.target(ALL_PLAYERS))     mobs.clear_effect(mobs.target(ALL_PLAYERS))
- +    gameplay.set_game_rule(KEEP_INVENTORY, False) 
 +    player.execute("immutableworld")
 def raum1(): def raum1():
-    player.execute("setworldspawn X Z Y")+    player.execute("setworldspawn 0 150 0") 
 +    player.execute("spawnpoint @s 0 150 0")
     blocks.fill(BLACKSTONE, world(X-1,Z-1,Y-5), world(X+8,Z+11,Y+6))     blocks.fill(BLACKSTONE, world(X-1,Z-1,Y-5), world(X+8,Z+11,Y+6))
     blocks.fill(AIR, world(X, Z, Y-4), world(X+7, Z+10, Y+5))     blocks.fill(AIR, world(X, Z, Y-4), world(X+7, Z+10, Y+5))
     blocks.fill(GLOWSTONE, world(X, Z-1, Y-1), world(X+7, Z-1, Y+1))     blocks.fill(GLOWSTONE, world(X, Z-1, Y-1), world(X+7, Z-1, Y+1))
-    blocks.fill(ANVIL, world(X+8, Z, Y-1), world(X+9, Z+2, Y+1))# anderer Block???+    blocks.fill(AIR, world(X+8, Z, Y-1), world(X+8, Z+2, Y+1)) 
 +    blocks.fill(MONSTER_SPAWNER, world(X+8, Z, Y-1), world(X+9, Z+2, Y+1))
     blocks.fill(GLOWSTONE, world(X, Z-1, Y-1), world(X+7, Z-1, Y+1))     blocks.fill(GLOWSTONE, world(X, Z-1, Y-1), world(X+7, Z-1, Y+1))
     raetselblock()     raetselblock()
Zeile 34: Zeile 38:
     blocks.place(AIR, world(X, Z, Y+5))     blocks.place(AIR, world(X, Z, Y+5))
     blocks.place(AIR, world(X+4, Z, Y+5))     blocks.place(AIR, world(X+4, Z, Y+5))
-    # Decko hier hinzufügen 
    
 def dialog1(): # Text an Spieler einige Zeilen angenehmer zum Lesen def dialog1(): # Text an Spieler einige Zeilen angenehmer zum Lesen
Zeile 54: Zeile 57:
         player.say("Tipp 3: Die Blöcke sind in zweimal in Modulo angeordnet von Süd nach Nord.")         player.say("Tipp 3: Die Blöcke sind in zweimal in Modulo angeordnet von Süd nach Nord.")
    
-    if (zaehler>4):+    if (zaehler==5): 
 +        player.say("Schau mit deinem 3 Auge nach Süden") # Hilf an der Wandtafel hinten 
 +  
 +    if (zaehler>5):
         player.say("Du hast leider schon alle Tipps aufgebraucht.")         player.say("Du hast leider schon alle Tipps aufgebraucht.")
    
Zeile 62: Zeile 68:
    
    
-def on_travelled_walk(): +def on_travelled_walk():  
-    x = player.position().get_value(Axis.X)+    x = player.position().get_value(Axis.X) 
     z = player.position().get_value(Axis.Y)     z = player.position().get_value(Axis.Y)
     y = player.position().get_value(Axis.Z)     y = player.position().get_value(Axis.Z)
Zeile 69: Zeile 75:
     if (x==X+8) and (y==Y) and (z==z>Z+-2) and (z==z<2+Z):# Raum1 zu Raum 2 Türe zu     if (x==X+8) and (y==Y) and (z==z>Z+-2) and (z==z<2+Z):# Raum1 zu Raum 2 Türe zu
         blocks.fill(ANVIL, world (X+8, Z, Y-1), world(X+8, Z+2, Y+1))         blocks.fill(ANVIL, world (X+8, Z, Y-1), world(X+8, Z+2, Y+1))
-  
         player.execute("spawnpoint @s 10, 151 0")         player.execute("spawnpoint @s 10, 151 0")
         mobs.apply_effect(LEVITATION, mobs.target(NEAREST_PLAYER), 10, 1)         mobs.apply_effect(LEVITATION, mobs.target(NEAREST_PLAYER), 10, 1)
         global Teil2         global Teil2
         Teil2 = True         Teil2 = True
-    if (x==X+10):+    if (x==X+10) and (z>Z-1):# Raum 2 schweben
         mobs.apply_effect(LEVITATION, mobs.target(NEAREST_PLAYER), 10, 1)         mobs.apply_effect(LEVITATION, mobs.target(NEAREST_PLAYER), 10, 1)
-    if  (x==X+13) and (Z+14==z):+    if (x==X+13) and (Z+14==z):
         player.execute("spawnpoint @s 18 163 0")         player.execute("spawnpoint @s 18 163 0")
-        player.say("gut gemacht"+    if ((X+21==x) or (x==X+22)) and ((Y+5==y) or (Y+6==y)) and (z==Z+14):# Ab hier, die bewegenden  Blöcke, immer gleiches Muster   
-    if ((X+21==x) or (x==X+22)) and ((Y+5==y) or (Y+6==y)) and (z==Z+14): +        global Hind1  
-        global Hind1 +        Hind1=False     # alte Funktion wird abgestellt  
-        Hind1=False +        global Hind2  
-        global Hind2 +        Hind2= True     # die neue Funktion wird aktiviert  
-        Hind2= True +        player.execute("spawnpoint @s 21 164 6"# neuer Spawnpoint falls man stirbt 
-        player.say("gut gemacht noch ein Sprung") +
-        player.execute("spawnpoint @s 21 163 6")+
     if (z==Z+10) and (X+23==x) or (X+24==x) and (y==Y+20) or (y==Y+21):     if (z==Z+10) and (X+23==x) or (X+24==x) and (y==Y+20) or (y==Y+21):
         global Hind2         global Hind2
Zeile 91: Zeile 94:
         global Hind3         global Hind3
         Hind3= True         Hind3= True
-        player.say("sehr gut gemacht weiter so") 
         player.execute("spawnpoint @s 23 160 21")         player.execute("spawnpoint @s 23 160 21")
-        if (zaehler2==1):+        if (zaehler2==1): # damit man nur eine Enderperle bekommt
             global zaehler2             global zaehler2
             zaehler2= zaehler2 +2             zaehler2= zaehler2 +2
             mobs.give(mobs.target(NEAREST_PLAYER), ENDER_PEARL, 1)             mobs.give(mobs.target(NEAREST_PLAYER), ENDER_PEARL, 1)
 +            player.say("sehr gut gemacht weiter so")
     if ((X+15==x) or (X+14==x)) and (z==Z+16) and (y==Y+27) or (y==Y+28):     if ((X+15==x) or (X+14==x)) and (z==Z+16) and (y==Y+27) or (y==Y+28):
         global Hind3         global Hind3
Zeile 102: Zeile 105:
         global Hind4         global Hind4
         Hind4= True         Hind4= True
 +        player.execute("spawnpoint @s 14 167 27")
 +    if (X+13<x<X+16) and (Z+10) and (Y+37<y<Y+40):
 +        global Hind4
 +        Hind4= False
 +        global Hind5
 +        Hind5= True
 +        player.execute("spawnpoint @s 14 160 39")
 +    if (X+13<x<X+16) and (Z+10) and (Y+41<y<Y+44):
 +        global Hind5
 +        Hind5= False
 +        global Hind6
 +        Hind6= True
    
 def raum2(): def raum2():
-     blocks.fill(OBSIDIAN, world(X+9,Z-150,Y-2), world(X+13,Z+21,Y+2))# anderer Block???+     blocks.fill(OBSIDIAN, world(X+9,Z-50,Y-2), world(X+13,Z+21,Y+2))# anderer Block???
      blocks.fill(AIR, world(X+10, Z-150, Y-1), world(X+12, Z+20, Y+1))      blocks.fill(AIR, world(X+10, Z-150, Y-1), world(X+12, Z+20, Y+1))
      blocks.fill(GLOWSTONE, world(X+10, Z-1, Y-1), world(X+12, Z-1, Y+1))      blocks.fill(GLOWSTONE, world(X+10, Z-1, Y-1), world(X+12, Z-1, Y+1))
Zeile 110: Zeile 125:
      blocks.fill(SEA_LANTERN, world(X+10, Z+4, Y-1), world(X+11, Z+4, Y+0))      blocks.fill(SEA_LANTERN, world(X+10, Z+4, Y-1), world(X+11, Z+4, Y+0))
      blocks.fill(SEA_LANTERN, world(X+11, Z+9, Y), world(X+12, Z+9, Y+1))      blocks.fill(SEA_LANTERN, world(X+11, Z+9, Y), world(X+12, Z+9, Y+1))
-     blocks.fill(GLOWSTONE, world(X+10, Z-150, Y-4), world(X+13, Z-150, Y+6))+     blocks.fill(GLOWSTONE, world(X+10, Z-50, Y-1), world(X+12, Z-50, Y+1))
      blocks.fill(SEA_LANTERN, world(X+10, Z+13, Y-1), world(X+12, Z+13, Y+1))      blocks.fill(SEA_LANTERN, world(X+10, Z+13, Y-1), world(X+12, Z+13, Y+1))
      blocks.fill(SEA_LANTERN, world(X+10, Z+18, Y-1), world(X+12, Z+18, Y))      blocks.fill(SEA_LANTERN, world(X+10, Z+18, Y-1), world(X+12, Z+18, Y))
Zeile 116: Zeile 131:
      blocks.place(OBSIDIAN, world(10+X,Z-1,Y))      blocks.place(OBSIDIAN, world(10+X,Z-1,Y))
    
-def blöckebewegen (M,x,z,y,x2,z2,y2,richx,richy,richz,länge,intervalldauer):# sie ist nich so schön fliessend jedoch meist besser geeignet+def blöckebewegen (M,x,z,y,x2,z2,y2,richx,richy,richz,länge,intervalldauer):# sie ist nicht so schön fliessend jedoch meist besser geeignet
     running = True     running = True
     intervall=1     intervall=1
Zeile 133: Zeile 148:
                             intervall= intervall + 1                             intervall= intervall + 1
    
-def blöckebewegen2 (M,x,z,y,x2,z2,y2,richx,richy,richz,länge,intervalldauer):# sie ist nich so schön fliessend jedoch meist besser geeignet+def blöckebewegen2 (M,x,z,y,x2,z2,y2,richx,richy,richz,länge,intervalldauer):# sie ist nicht so schön fliessend jedoch meist besser geeignet
     running = True     running = True
     intervall=1     intervall=1
Zeile 141: Zeile 156:
         if gameplay.time_query(GAME_TIME) > gurke + intervall * intervalldauer: # immer weiter, wenn mindestens 10 Ticks vergangen sind...         if gameplay.time_query(GAME_TIME) > gurke + intervall * intervalldauer: # immer weiter, wenn mindestens 10 Ticks vergangen sind...
                             blocks.fill(AIR, world(x, z, y), world(x2, z2, y2)) # Block löschen                             blocks.fill(AIR, world(x, z, y), world(x2, z2, y2)) # Block löschen
 +                            blocks.fill(M,world(x + richx, z+richz, y+richy), world(x2 + richx, z2+richz, y2+richy)) # Block an neuer Position bauen
 +                            x = x + richx # Position anpassen
 +                            x2= x2+richx
 +                            y= y+richy
 +                            y2=y2+richy
 +                            z= z+richz
 +                            z2=z2+richz
 +                            intervall= intervall + 1
 + 
 +def blöckebewegen3 (M,x,z,y,x2,z2,y2,richx,richy,richz,länge,intervalldauer):# das der hintere Block nicht verschwindet (wachsende Form)
 +    running = True
 +    intervall=1
 +    gurke = gameplay.time_query(GAME_TIME)
 +    blocks.fill(M,world(x, z, y),world(x2, z2, y2)) # Block an erster Position bauen
 +    while gameplay.time_query(GAME_TIME) < gurke + länge: #zähler der ticks
 +        if gameplay.time_query(GAME_TIME) > gurke + intervall * intervalldauer: # immer weiter, wenn mindestens 10 Ticks vergangen sind...
                             blocks.fill(M,world(x + richx, z+richz, y+richy), world(x2 + richx, z2+richz, y2+richy)) # Block an neuer Position bauen                             blocks.fill(M,world(x + richx, z+richz, y+richy), world(x2 + richx, z2+richz, y2+richy)) # Block an neuer Position bauen
                             x = x + richx # Position anpassen                             x = x + richx # Position anpassen
Zeile 157: Zeile 188:
     blocks.fill(STONE, world(X+14,Z+13,Y-1), world(X+24,Z+13,Y))     blocks.fill(STONE, world(X+14,Z+13,Y-1), world(X+24,Z+13,Y))
     blocks.fill(STONE, world(X+21,Z+13,Y+5), world(X+22,Z+13,Y+6))     blocks.fill(STONE, world(X+21,Z+13,Y+5), world(X+22,Z+13,Y+6))
-    while Hind1: +    blocks.place(OBSIDIAN, world(X+12, Z+13, Y+3)) 
-        blöckebewegen(STONE_BRICKS,X+14,Z+13,Y+2,X+13,Z+13,Y+3,2,0,0,35,5)+    while Hind1: # die verschiedenen Blöcke, die sich bewegen 
 +        blöckebewegen(STONE_BRICKS,X+14,Z+13,Y+2,X+13,Z+13,Y+3,2,0,0,70,10)
     while Hind2:     while Hind2:
         blöckebewegen2(STONE_BRICKS, X+23, Z+10, Y+1, X+24, Z+10, Y+2, 0, 1, 0, 200,10)         blöckebewegen2(STONE_BRICKS, X+23, Z+10, Y+1, X+24, Z+10, Y+2, 0, 1, 0, 200,10)
Zeile 164: Zeile 196:
         blöckebewegen (STONE_SLAB,X+22, Z+10, Y+21, X+21, Z+10, Y+20, -1, 1, 1, 160, 20)         blöckebewegen (STONE_SLAB,X+22, Z+10, Y+21, X+21, Z+10, Y+20, -1, 1, 1, 160, 20)
     while Hind4:     while Hind4:
-        blöckebewegen (BRICKS,X+12, Z+13, Y+31, X+13, Z+13, Y+31, 2, 0, 0, 6030+        blocks.fill(AIR, world(X+14,Z+13,Y+33), world(X+15,Z+13,Y+33)) 
-        blocks.fill(AIR, world(X+14,Z+13,Y+31), world(X+15,Z+13,Y+31)) +        blöckebewegen (BRICKS,X+12, Z+13, Y+33, X+13, Z+13, Y+33, 2, 0, 0, 4020
- +        blocks.fill(STONE_BRICKS, world(X+14,Z+10,Y+38), world(X+15,Z+10,Y+39)) 
 +    while Hind5: 
 +        blocks.fill(STONE_BRICKS, world(X+14,Z+10,Y+42), world(X+15,Z+10,Y+43)) 
 +    if (Hind6==True): 
 +        blocks.fill(AIR, world(X+14, Z+10, Y-1), world(X+24, Z+19, Y+40)) 
 +        blöckebewegen3 (STONE_BRICKS,X+14, Z+10, Y+41, X+13, Z+10, Y+44, 2, 0, 0, 60, 10) 
 +        blöckebewegen3 (ANVIL,X+14, Z+13, Y+41, X+14, Z+13, Y+41, 2, 0, 0, 60, 10
 +        blöckebewegen3 (ANVIL,X+14, Z+13, Y+44, X+14, Z+13, Y+44, 2, 0, 0, 60, 10) 
 +        blocks.fill(MONSTER_SPAWNER, world(X+25, Z+11, Y+42), world(X+25, Z+12, Y+43)) 
 +        player.say("Du hast dich wacker geschlagen."
 +        player.say("JEDOCH BIST DU KEIN MAGIER*in"
 +        player.say("Angesichts deines Talentes gesttaten wir dir weiterzuleben."
 +        player.say("Um weiter zum Schatz vorzudringen sag:aperta."
 +        player.say("Wenn du klugerweise dich zurückziehen möchtest sag: beam mich hoch scotty."
 +  
 +def antworttod(): # wenn er/sie den Schatz verfolen will 
 +    player.teleport(world(X+11, Z-48, Y)) 
 +    player.execute("spawnpoint @s 11 102 0") 
 +    player.say("Wir sind so freundlich und geben dir den Schatz!"
 +    player.say("Ich hoffe du kanst ihn essen"
 +    player.say(" Wir garen dich schon etwas, dann ist deine Zeit in der Höhle kürzer ") 
 +    player.say("Leb wohl, du Totgeweihter"
 +    mobs.apply_effect(HUNGER, mobs.target(NEAREST_PLAYER), 1000000, 20) 
 +    mobs.apply_effect(FIRE_DAMAGE, mobs.target(NEAREST_PLAYER), 1000000, 1) 
 +    Materialien=[DIAMOND, GOLD_NUGGET, LAPIS_LAZULI, DIAMOND_BLOCK, GOLD_BLOCK] 
 +    n=1 
 +    for zahl in Materialien: 
 +        mobs.give(mobs.target(NEAREST_PLAYER), Materialien[n], 128) 
 +        n=n+1 
 +  
 +def antwortend(): # wenn er/sie aufhören möchte  
 +    player.say("Gratulation, du hast überlebt"
 +    player.teleport(positions.ground_position(pos(0,0,0))) 
 + 
 spielbediungen() spielbediungen()
 raum1() raum1()
-#player.teleport(world(X, Z, Y))+player.teleport(world(X, Z, Y))
 player.on_travelled(WALK, on_travelled_walk) player.on_travelled(WALK, on_travelled_walk)
 dialog1() dialog1()
 player.on_chat("Tipp", TippR1) player.on_chat("Tipp", TippR1)
-player.on_chat("79 79 118", rantwort)#mögliche Erweiterung mit Elementconstructor+player.on_chat("79 79 118", rantwort) 
 +player.on_chat("aperta", antworttod) 
 +player.on_chat("beam mich hoch scotty", antwortend)
 raum2() raum2()
 raum3() raum3()
- 
  
 </code> </code>
Zeile 184: Zeile 249:
  
 ====== Notizen für das Projekt ====== ====== Notizen für das Projekt ======
 +
 +**Ideen für das Projekt**
 +
 +Unser ursprünglicher Gedanke war eine Schatzsuche in einer mittelalterlichen Burg und oder die Entschärfung einer Bombe.
 +Dabei muss man sich durch verschiedene Räume kämpfen. 
 +Am Schluss hat man die Wahl den Schatz zu nehmen oder die Bombe aufzuhalten.
 +Wenn man den Schatz nimmt, löst sich der Boden auf und man fällt in die Tiefe (alles explodiert), aber man stirbt nicht daran. Eine letzte gehässige Nachricht erscheint, dabei bekommt der Spieler den Effekt Hunger, die Nachricht besagt, iss dein Gold und man verhungert.
 +
 +__Mögliche Hindernisse:__
 +  * Einen Block, den man an die richtige Stelle setzen muss.
 +  * Ein kleines jump in run mit Effekten
 +  * Mit Pfeil und Bogen etwas in einer Reihenfolge abschiessen. 
 +  * Ein Chemierätsel 
 +
 +**Ergebnisse aus den Ideen**
 +
 +Bei der aktuellen Version muss man sich durch drei Räume durchkämpfen. Wenn man das jeweilige Rätsel gelöst hat, öffnet sich der nächste Raum. Dabei wird man durch den Chat angeleitet. Bei ersten muss man sich einem Rätsel stellen. Beim Zweiten fliegt man hoch und muss Blöcken ausweichen. Beim Dritten ist es erforderlich sich über einen Lavasee zu bewegen. Am Schluss muss man sich entscheiden, ob man den Schatz weiter verfolgen will oder ob man die Mission abbrechen möchte. Wer sich für den Schatz entscheidet, bekommt ihn auch. Jedoch bekommt man auch Hunger und stirbt. Man könnte zwar den Boden zerstören und rausspringen. Jedoch stirbt man dann am Fallschaden. Wer sich dagegen für den Abbruch entscheidet, wird weg transferiert und überlebt. 
 +
 +====== Unsere Problematiken beim Programmieren ====== 
  
  
-**Beschreibung**  +**Blöcke Bewegen:**
-Ein Abenteuer-Rätselspiel +
-Von Raum zu Raum durchkämpfen +
-Sekundär eine  mittelalterliche Burg als Dekohülle falls genug Zeit +
  
-**Ziel**  +Das Problem bestand darindie Blöcke in verschiedenen Geschwindigkeiten zu bewegen. Dabei sollen sie nur eine bestimmte Bewegung vollführen und nicht unbegrenzt auf einer Achse weglaufen.
-Mehrere Rätsel und Aufgaben lösenalle Räume abschliessen  +
-Schatz suchen/ stehlen und oder ein Geheimnis lüften ..+
  
-**Story** (wird sich noch sicherlich noch ändern)  +Um dies zu lösen, haben wir die spieleigene Zeitrechnung als Basis genommen. Diese Zeiteinheit erhöhte jedoch schneller, als das Programm sie abfragen konnte. Deshalb mussten wir Intervalle einführen: Das Programm fragt die Zeit ab, und immer wenn der erfragte Zeitpunkt in einem neuen Intervall liegt, wird die Einheit bewegtSo konnten wir auch die Geschwindigkeit anpassen, indem wir die Intervalle grösser oder kleiner definiertenDurch Vorgabe der Anzahl der Takte und der Schrittgrösse kann auch die Bewegung im Raum limitiert werden.
-Man ist ein wackerer Abenteuer und man möchte in die Schatzkammern/ Verliesse der Magier eindringenJedoch gibt es verschiedene Abwehrmassnahmen die man überwinden mussMan möchte den Schatz und oder ein Geheimnis erbeuten.+
  
-**Ablauf**  +**Fehlende Blöcke:**
-Man muss in  verschiedene Räume  +
-Dort muss man jeweils die Aufgabe lösen. +
-Alle gelöst, öffnet/führt  zu einem Geheimgang und man muss ein letztes Rätsel lösen. +
-Anweisungen durch den Chat  +
  
-Am Schluss hat man die Wahl den Schatz zu nehmen oder etwas anderes (?) +Einige Blöcke, die im Inventar und auch in den Chatbefehlen vorhanden sindstehen beim Programmieren nicht zur VerfügungDas ist ärgerlich.
-Wenn man den Schatz nimmtlöst sich der Boden auf und man fällt in die tiefe und alles Explodiert ,aber man stirbt nicht daran. Man kann dann aber auch nichts mehr machen.  +
-Eine letzte gehässige Nachricht erscheint, dabei bekommt der Spieler den Effekt Hungerdie Nachricht besagt: «iss dein Gold»Und man Verhungert  +
  
-Wenn man sich für das Andere entscheidet, wird der Boden zum Ender_Portal man fällt durch. Auf der anderen Seite wird man sofort über dem Portal tp. In dieser Zeit wir der Enterdrache getötet, das Portal wird aktiviert man fällt durch und es kommt der Spielabspann, den man nutzen könnte. +**Absolute und relative Koordinaten:**
  
 +Zuerst haben wir relative Koordinaten verwendet, was auch kein Problem war. Als wir aber Blöcke durch eine Interaktion ersetzen wollten, mussten wir auf absolute Koordinaten zurückgreifen. Sonst erscheinen die Blöcke nicht am gewünschten Ort, sondern an verschiedenen Orten, je nach der Position der Spielerfigur.
  
-**Hindernisse Ideen** +**Programm Fehler:**
  
-Mehrere mögliche Möglichkeitenje nach Schwierigkeit/Zeit können noch andere Aufgaben auftauchen+Wir haben den Code kopiert und in verschiedenen Welten ausgeführt. Es zeigte sichdass die Spawnpoints, aber auch Positionen der Blöcke, nicht immer gleich funktionierten. Wir haben die Ursache nicht ermitteln können. Es ist doch der exakt gleiche Code, in gleich konzipierten Welten
  
-1.Einen Block den man an der richtigen Stelle setzen muss (Geometrie Rätsel) +===== Presentation ===== 
-2.Knöpfe drücken, welche verschiedene Funktionen ausführen, richtige Reihenfolge ergibt den Weg. +https://eduetatfr.sharepoint.com/teams/CSCR-C-2D1Informatik/_layouts/15/Doc.aspx?sourcedoc={5A3CA059-7FE5-4865-A2CB-497F1CB7429B}
-3.Mit Effekten hochschweben und Blöcke(Fallen, Mobs...  ausweichen.  +
-4.«Chemie» Rätsel   +
-5.Labyrinth +
-6.Wer hat Angst vor dem Einhorn, ich nicht... +
-7.« vielleicht ein paar Mobs zum bekämpfen».+
  
-Es gibt einmal noch die Möglichkeit direkt z u gewinnen aber auch zu verlieren. 
  
  • gf2/projekte/minecraft/2d1gruppe1.1673597011.txt.gz
  • Zuletzt geändert: 2023/01/13 09:03
  • von marroc