diff --git a/Animation/Animation_Simple.py b/Animation/Animation_Simple.py new file mode 100755 index 0000000..cdfdda9 --- /dev/null +++ b/Animation/Animation_Simple.py @@ -0,0 +1,27 @@ +import turtle + +import time + +turtle.setup(500,500) +turtle.speed(0) +turtle.width(4) + +def quadrat(): + for i in range(4): + turtle.fd(100) + turtle.rt(90) + +turtle.pu() +turtle.setpos(-350,-50) +turtle.pd() + +turtle.ht() +turtle.tracer(0) + +while True: + turtle.clear() + quadrat() + turtle.fd(1) + time.sleep(0.01) + turtle.update() + diff --git a/Animation/Animation_dot.py b/Animation/Animation_dot.py new file mode 100755 index 0000000..4a1f089 --- /dev/null +++ b/Animation/Animation_dot.py @@ -0,0 +1,26 @@ +import turtle + +import time + +turtle.width(4) +turtle.bgcolor("black") +turtle.color("red") + +turtle.ht() + +turtle.pu() +turtle.setpos(-700,-700) +turtle.lt(45) +turtle.pd() + + +turtle.tracer(0) +turtle.delay(500) + + +while True: + turtle.clear() + turtle.dot(50) + turtle.fd(0.5) + turtle.update() + \ No newline at end of file diff --git a/Animation/Animation_ship.py b/Animation/Animation_ship.py new file mode 100755 index 0000000..725b731 --- /dev/null +++ b/Animation/Animation_ship.py @@ -0,0 +1,101 @@ +from turtle import* +import time +import math + + +speed_boat = 0.01 + +def ship(): + clear() + fd(130) + lt(50) + fd(50) + lt(130) + fd(90) + rt(90) + fd(150) + rt(154) + fd(math.sqrt(16900 + 4900)) + rt(116) + fd(65) + lt(90) + fd(18) + rt(90) + fd(102) + lt(130) + fd(49) + lt(50) + update() + +def ship_2(): + clear() + fd(130) + lt(50) + fd(50) + lt(130) + fd(240) + rt(130) + + + + +def speed_more(): + global speed_boat + speed_boat += 0.5 + + +def goleft(): + lt(1) + bk(1) + + +def goright(): + rt(1) + bk(1) + + +def speed_less(): + global speed_boat + speed_boat -= 0.5 + +def speed_stop(): + global speed_boat + speed_boat = -1.35 + +def speed_exelerate_fast(): + global speed_boat + speed_boat += 2 + +def speed_reduce_fast(): + global speed_boat + speed_boat -= 2 + +def reset_system(): + global speed_boat + speed_boat = 0.01 + home() + pu() + setpos(-350,-50) + pd() + tracer(0) + ht() + + + + +reset_system() + +while True: + fd(speed_boat) + ship() + time.sleep(0.01) + onkeypress(reset_system, "Escape") + onkeypress(speed_exelerate_fast, "w") + onkeypress(speed_reduce_fast, "s") + onkeypress(speed_stop, "space") + onkeypress(speed_more, "Up") + onkeypress(goright, "Right") + onkeypress(goleft, "Left") + onkeypress(speed_less, "Down") + listen() + diff --git a/Animation/Erde und Mond.py b/Animation/Erde und Mond.py new file mode 100755 index 0000000..3378a8e --- /dev/null +++ b/Animation/Erde und Mond.py @@ -0,0 +1,32 @@ +#Import der Module +import turtle +import time + +#Aufsetzen der Turtle instanzen +earth = turtle.Turtle() +sun = turtle.Turtle() + +#Vorbereiten der Benutzeroberfläche +turtle.bgcolor("black") +turtle.addshape("earth.gif") +turtle.addshape("sun.gif") +earth.shape("earth.gif") +sun.shape("sun.gif") + +#Erde umkreist Sonne +def earth_move(): + for i in range(10): + earth.fd(1) + earth.rt(0.2) + time.sleep(0.01) + + +turtle.tracer(2) + +earth.pu() +earth.fd(250) +earth.rt(90) + +while True: + earth_move() + \ No newline at end of file diff --git a/Animation/Main_hub.py b/Animation/Main_hub.py new file mode 100755 index 0000000..17b4b65 --- /dev/null +++ b/Animation/Main_hub.py @@ -0,0 +1,252 @@ +#Imporieren aller module +from turtle import* +import random +import time +import math + +title("Main Hub") + +#Wichtige Vorbereitungen + +def hi(): + pu() + setpos(-100,0) + pd() + lt(90) + fd(200) + bk(100) + rt(90) + fd(100) + lt(90) + fd(100) + bk(200) + pu() + setpos(50,0) + pd() + fd(200) + +speed(10000) +ht() + +#Lässt den Benutzer auswählen, ob die Formen zufällig oder in einem Kreis angeordnet, nach Wünschen des Benutzers gezeichnet werden sollen. +print("ready") +hi() +program_choice = int(numinput("Welches Program sollte ausgeführt werden?", " 1=Custom, 2=Random, 3=Drunken Man ",1,minval=1)) + + +#Definition des Befehls Vieleck(). Der Grundbaustein des Programms +def vieleck(anzahl_seiten,radius, anzahl_kreis_printed, figuren, kreise, figur_nummer, save_first): + parts_circle = 1 + time_durchgang_start = time.time() + for i in range(anzahl_seiten): + fd(radius/anzahl_seiten) + rt(360/anzahl_seiten) + parts_circle += 1 + if parts_circle / anzahl_seiten * 100 >= 50 and parts_circle / anzahl_seiten * 100 < 50.1: + print(" Circle:",parts_circle / anzahl_seiten * 100, "%") + time_durchgang_end = time.time() + exact_timecalculation(time_durchgang_start, time_durchgang_end, anzahl_seiten, radius, anzahl_kreis_printed, figuren, kreise, figur_nummer, save_first) + + +#Definition des Befehls, der mit beendigung des Auswahlverfahrens aufgerufen wird. Verwaltet die wichtigsten feautures +def figur(seite,radiusin,anzahlkr,anzahl_figuren,erh_input): + figur_number = 1 + first_time = 1 + print("Globally: 0 % done") + for i in range(anzahl_figuren): + change_color(figur_number) + print("drawing figure number",figur_number) + anzahl_kr_printed = 0 + for i in range(anzahlkr): + vieleck(seite,radiusin, anzahl_kr_printed, anzahl_figuren, anzahlkr, figur_number, first_time) + rt(360/anzahlkr) + anzahl_kr_printed += 1 + print(anzahl_kr_printed / anzahlkr * 100, "%") + radiusin += erh_input + figur_number += 1 + print("done") + print("Globally:", (figur_number - 1) / anzahl_figuren * 100, "% done") + +#Berechnet, sobald das Programm begonnen hatte zu zeichnen, wie lange der Vorgang noch dauern wird. +def exact_timecalculation(time_durchgang_end_1, time_durchgang_start_1, seitenzahl, radiusinput, anzahl_kreise_printed, figuren, kreise, figur_number, save_1): + print("Time per shape", time_durchgang_start_1 - time_durchgang_end_1) + remaining_circles = (figuren * kreise) - ((anzahl_kreise_printed + ((figur_number - 1) * kreise))) + remaining_time = remaining_circles * ((time_durchgang_end_1 - time_durchgang_start_1) * -1) + print(((anzahl_kreise_printed + ((figur_number - 1) * kreise))), "/", (kreise * figuren), "shapes got already printed.", remaining_circles, "remaining") + print("ETA:", remaining_time, "seconds or", remaining_time / 60, "minutes") + if save_1 > 1: + remaining_time = save_time_end + save_1 = 0 + else: + save_1 = 0 + +#Wechselt die Farbe +def change_color(anz_figuren): + if anz_figuren >= 1 and anz_figuren < 2: + color("red") + else: + if anz_figuren >= 2 and anz_figuren < 3: + color("green") + else: + if anz_figuren >= 3 and anz_figuren < 4: + color("blue") + else: + if anz_figuren >= 4 and anz_figuren < 5: + color("brown") + else: + color("black") + + +#Führt den zufälligen Teil des Programms aus +def vieleck_random_randomize(): + amount_circles_drawn = 0 + pu() + amount_circles = random.randint(25, 75) + print(amount_circles, "shapes need to be printed. Esitmated time:", amount_circles * 0.35, "seconds") + print("0 / 0 or 0 % done") + for i in range(amount_circles): + color(random.random(),random.random(),random.random()) + size = random.randint(50, 250) + width(random.randint(2, 10)) + ecken = random.randint(3, 20) + setpos(random.randint(-300,300), random.randint(-300,300)) + fuellen = random.randint(0,1) + pd() + if fuellen >= 1: + begin_fill() + for i in range(ecken): + fd(size / ecken) + rt(360 / ecken) + end_fill() + else: + for i in range(ecken): + fd(size / ecken) + rt(360 / ecken) + amount_circles_drawn += 1 + pu() + print(amount_circles_drawn, "/", amount_circles, "or", amount_circles_drawn / amount_circles * 100, "% drawn.") + print("100 % done. Process ended with a 0") + +#Definition des Betrunkenen Mannes?? +def drunken_man_walk_show(schritte,distanz): + for i in range(schritte): + fd(distanz) + setheading(random.randint(0, 360)) + +def drunken_man_walk_calculate(anzahl_tests,anzahl_figuren_test,add,anzahl_tests_pro,ausgabe): + print("started. Going to make the test", anzahl_tests, "times to get a result which is as acurate as possible") + schritte = 100 + schritte_begin = schritte + distanz = 20 + summe = 0 + summe_second = 0 + l = [1] + for i in range(anzahl_figuren_test): + amount_atemps_per = 0 + for i in range(anzahl_tests): + print("Collecting data for", schritte,"steps, collecting data for try number", amount_atemps_per + 1, "/", anzahl_tests) + for i in range(anzahl_tests_pro): + drunken_man_walk_show(schritte,distanz) + x = xcor() + y = ycor() + d = math.sqrt(x**2 + y**2) + summe += d + pu() + home() + pd() + summe_calc = summe / anzahl_tests_pro + print("Average dislocation of 0.0 is:", summe_calc,"pixels, with a amount of steps of", schritte,".") + summe_second += summe_calc + reset() + summe = 0 + amount_atemps_per += 1 + print("TOTAL Average dislocation of 0.0 is:", summe_second / anzahl_tests, "pixels with", schritte, "steps") + print("Next size getting executed") + result = summe_second / anzahl_tests + l.append(result) + schritte += add + summe_second = 0 + l.remove(1) + l.reverse() + print("\n\n\n") + print("entire list:",l) + print("\n_________________________ \n\n\n") + if ausgabe == 1: + for i in range(anzahl_figuren_test): + show = l.pop() + print(schritte_begin, "has an average dislocation of", show) + schritte_begin += add + else: + print("Schritte | Durchschnittliche Entfernung") + print("----------------------------------------------") + for i in range(anzahl_figuren_test): + show = l.pop() + print(schritte_begin, " | ", show) + schritte_begin += add + + + + +#Wird ausgeführt, wenn der vom Benutzer einstellbare Modus ausgewählt wird. +if program_choice >= 1 and program_choice < 2: + title("Custom Design") + reset() + ht() + speed(10000) + print("Custom Design") + seiteninput = int(numinput("Wie viele Seiten?", " Gerade Zahl von 3-unendlich ",10,minval=3)) + radiusinput = int(numinput("Wie gross soll der Radius sein?", " Gerade Zahl von 50-unendlich ",50,minval=50)) + anzahlkrinput = int(numinput("Wie viele Kreise sollen gezeichnet werden??", " Gerade Zahl von 1-unendlich ",5,minval=1)) + figureninput = int(numinput("Wie viele Figuren sollen gezeichnet werden?", " Gerade Zahl von 1-unendlich ",5,minval=1)) + erhinput = int(numinput("Um wieviel soll sich sich der Radius der Kreise erhöhen?", " Gerade Zahl von 20-unendlich ",50,minval=20)) + verzoegerung = int(numinput("Wie schnell soll die Animation laufen?", " Gerade Zahl von 1-unendlich, umso höher, desto schneller ",50,minval=0)) + print("starting process...") + tracer(verzoegerung) + print(anzahlkrinput * figureninput, "circles need to be printed. Estimated time until completion:", (anzahlkrinput * figureninput * (seiteninput * 0.0330383)), "seconds or", (anzahlkrinput * figureninput * (seiteninput * 0.0330383)) / 60, "minutes") + time.sleep(2) + draw_time_start = time.time() + figur(seiteninput,radiusinput,anzahlkrinput,figureninput,erhinput) + draw_time_end = time.time() + draw_time = (draw_time_end - draw_time_start) - (anzahlkrinput * figureninput * (seiteninput * 0.0330383)) + print("Drawing of", anzahlkrinput * figureninput, "shapes has taken", draw_time_end - draw_time_start , "seconds or", (draw_time_end - draw_time_start) / 60, "minutes, estimated:", (anzahlkrinput * figureninput * (seiteninput * 0.0330383)), "seconds, which means a diffrence of", draw_time, "seconds or missed by", draw_time * 100, "%") + print("Click to exit") + + +else: + if program_choice >= 2 and program_choice < 3: + title("Random Design") + reset() + ht() + speed(10000) + print("Random Design") + draw_time_start = time.time() + vieleck_random_randomize() + draw_time_end = time.time() + print("Drawing has taken", draw_time_end - draw_time_start , "seconds") + print("Click to exit") + else: + if program_choice >= 3 and program_choice < 4: + title("Drunken Man's Walk") + reset() + ht() + speed(0) + print("Drunken Man's Walk") + easy_difficult = int(numinput("Soll es gezeigt oder eine Tabelle erstellt werden?", " 1=Normal, 2=Tabelle ",1,minval=1)) + if easy_difficult == 1: + title("Drunken Man's Walk: standard") + drunken_man_walk_show(100,20) + else: + title("Drunken Man's Walk: List") + tests_total = int(numinput("Wie viele unterschiedliche Längen sollten getestet werden?", " Dauer erhöht sich extrem, Genauigkeit genauso ",10,minval=1)) + tests_per = int(numinput("Wieviele Tests sollten pro Länge durchgeführt werden?", " Dauer erhöht sich extrem, Genauigkeit genauso ",10,minval=1)) + addition = int(numinput("Um wieviel soll die Schrittzahl vergrössert werden?", " Dauer erhöht sich unbedeutend, abhängig von Tests ", 100, minval=1)) + executes_per = int(numinput("Wie viele Spuren sollen gezeichnet werden?", " Dauer erhöht sich ziemlich, Genauigkeit genauso ",1000,minval=1)) + tracerdelay = int(numinput("Alle wie viele Striche soll aktualisiert werden?", " umso höher, desto schneller ",10000,minval=1)) + output = int(numinput("Wie soll die Liste ausgegeben werden?", " 1 = Liste, 2 = Tabelle ",1,minval=1, maxval=2)) + tracer(tracerdelay) + drunken_man_walk_calculate(tests_per,tests_total,addition,executes_per,output) + + else: + print("wrong") +update() +exitonclick() \ No newline at end of file diff --git a/Animation/Viereck drehung.py b/Animation/Viereck drehung.py new file mode 100755 index 0000000..cd7066e --- /dev/null +++ b/Animation/Viereck drehung.py @@ -0,0 +1,21 @@ +from turtle import* +import time +#tracer(1) +#ht() + +def viereck(): + for i in range(1000000000000000): + clear() + pu() + setpos(0,0) + rt(10) + fd(50) + rt(90) + pd() + for i in range(4): + fd(50) + rt(90) + fd(50) + time.sleep(0.05) + +viereck() \ No newline at end of file diff --git a/Animation/Wartesymbol.py b/Animation/Wartesymbol.py new file mode 100755 index 0000000..d796e37 --- /dev/null +++ b/Animation/Wartesymbol.py @@ -0,0 +1,24 @@ +import time +import os + +strich = 1 + + +while True: + for i in range(4): + print("Please wait...") + if strich == 1: + print("\t-", end="\r") + time.sleep(0.5) + elif strich == 2: + print("\t\\", end="\r") + time.sleep(0.5) + elif strich == 3: + print("\t|", end="\r") + time.sleep(0.5) + else: + print("\t/", end="\r") + time.sleep(0.5) + os.system( 'clear' ) + strich += 1 + strich = 1 \ No newline at end of file diff --git a/Animation/earth.gif b/Animation/earth.gif new file mode 100755 index 0000000..0d72eb7 Binary files /dev/null and b/Animation/earth.gif differ diff --git a/Animation/sun.gif b/Animation/sun.gif new file mode 100755 index 0000000..dad57c4 Binary files /dev/null and b/Animation/sun.gif differ diff --git a/ArrayOperations/Listenformatierung.py b/ArrayOperations/Listenformatierung.py new file mode 100755 index 0000000..04c7939 --- /dev/null +++ b/ArrayOperations/Listenformatierung.py @@ -0,0 +1,3 @@ +inventory = ["Test", "Test2"] +for item in inventory: + print("*"+item) \ No newline at end of file diff --git a/Assembly/PC.dig b/Assembly/PC.dig new file mode 100755 index 0000000..3a2dd83 --- /dev/null +++ b/Assembly/PC.dig @@ -0,0 +1,347 @@ + + + 1 + + + + Switch + + + + + Switch + + + + + LightBulb + + + rotation + + + + + + + VDD + + + + + Ground + + + + + Switch + + + + + Switch + + + + + LightBulb + + + rotation + + + + + + + RelayDT + + + + + RelayDT + + + mirror + true + + + rotation + + + + + + + In + + + + + Ground + + + + + In + + + rotation + + + + + + + LightBulb + + + rotation + + + + Color + + 51 + 51 + 255 + 255 + + + + + + + Ground + + + + + XOr + + + + + In + + + + + In + + + + + LED + + + + + PFET + + + + + NFET + + + + + In + + + Label + A + + + + + + Ground + + + + + VDD + + + + + Out + + + Label + Out + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Assembly/PC_2.dig b/Assembly/PC_2.dig new file mode 100755 index 0000000..2673498 --- /dev/null +++ b/Assembly/PC_2.dig @@ -0,0 +1,391 @@ + + + 1 + + + + PFET + + + + + NFET + + + + + In + + + Label + A + + + + + + Ground + + + + + VDD + + + + + Out + + + Label + Out + + + + + + Not + + + + + In + + + Label + A1 + + + + + + Out + + + Label + Out1 + + + + + + Out + + + Label + Out2 + + + + + + FGNFET + + + + + PFET + + + + + FGPFET + + + + + FGNFET + + + + + In + + + Label + A2 + + + + + + In + + + Label + B2 + + + + + + VDD + + + + + Ground + + + + + NAnd + + + wideShape + true + + + + + + Out + + + Label + Out3 + + + + + + In + + + Label + A3 + + + + + + In + + + Label + B3 + + + + + + NOr + + + wideShape + true + + + + + + In + + + Label + A4 + + + + + + In + + + Label + B4 + + + + + + Out + + + Label + Out4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Assembly/PC_3.dig b/Assembly/PC_3.dig new file mode 100755 index 0000000..e83d43f --- /dev/null +++ b/Assembly/PC_3.dig @@ -0,0 +1,212 @@ + + + 1 + + + + And + + + wideShape + true + + + + + + And + + + wideShape + true + + + + + + Or + + + wideShape + true + + + + + + Or + + + wideShape + true + + + + + + And + + + wideShape + true + + + + + + Out + + + Label + Out1 + + + + + + Out + + + Label + Out2 + + + + + + In + + + Label + A1 + + + + + + In + + + Label + B1 + + + + + + In + + + Label + C1 + + + + + + In + + + Label + A2 + + + + + + In + + + Label + B2 + + + + + + In + + + Label + C2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Assembly/Rechenwerk.dig b/Assembly/Rechenwerk.dig new file mode 100755 index 0000000..2de67ad --- /dev/null +++ b/Assembly/Rechenwerk.dig @@ -0,0 +1,394 @@ + + + 1 + + + + In + + + rotation + + + + Label + B0 + + + + + + Volladierer.dig + + + + + In + + + rotation + + + + Label + A0 + + + + + + LED + + + rotation + + + + Label + S0 + + + + + + In + + + rotation + + + + Label + B1 + + + + + + Volladierer.dig + + + + + In + + + rotation + + + + Label + A1 + + + + + + LED + + + rotation + + + + Label + S1 + + + + + + In + + + rotation + + + + Label + B2 + + + + + + Volladierer.dig + + + + + In + + + rotation + + + + Label + A2 + + + + + + LED + + + rotation + + + + Label + S2 + + + + + + In + + + rotation + + + + Label + B3 + + + + + + Volladierer.dig + + + + + In + + + rotation + + + + Label + A3 + + + + + + LED + + + rotation + + + + Label + S3 + + + + + + LED + + + rotation + + + + Label + S4 + + + + + + In + + + Label + I1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Assembly/Volladierer.dig b/Assembly/Volladierer.dig new file mode 100755 index 0000000..d3a08f1 --- /dev/null +++ b/Assembly/Volladierer.dig @@ -0,0 +1,210 @@ + + + 1 + + + + XOr + + + wideShape + true + + + + + + And + + + rotation + + + + wideShape + true + + + + + + And + + + rotation + + + + wideShape + true + + + + + + Or + + + rotation + + + + wideShape + true + + + + + + XOr + + + wideShape + true + + + + + + In + + + Label + A + + + + + + In + + + Label + B + + + + + + In + + + Label + Cin + + + rotation + + + + + + + Out + + + Label + S + + + + + + Out + + + Label + Cout + + + rotation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/C/Addierer.c b/C/Addierer.c new file mode 100755 index 0000000..d6c76bc --- /dev/null +++ b/C/Addierer.c @@ -0,0 +1,10 @@ +int main() { + int summe = 0; + for(int i=0; i<5; i++) { + printf("Gib die Zahl ein:") + int zahl; + scanf("%d", &zahl); + summe = summe + zahl; + } + printf("Summe: %d\n", summe); +} \ No newline at end of file diff --git a/Concepts/TicTacToe_V2 Layout menu.docx b/Concepts/TicTacToe_V2 Layout menu.docx new file mode 100755 index 0000000..021758b Binary files /dev/null and b/Concepts/TicTacToe_V2 Layout menu.docx differ diff --git a/Concepts/Zuweisungsnummer.docx b/Concepts/Zuweisungsnummer.docx new file mode 100755 index 0000000..77f6cb5 Binary files /dev/null and b/Concepts/Zuweisungsnummer.docx differ diff --git a/ExamStuff/Aufgabe 7 Prfg Spirale.py b/ExamStuff/Aufgabe 7 Prfg Spirale.py new file mode 100755 index 0000000..82414c3 --- /dev/null +++ b/ExamStuff/Aufgabe 7 Prfg Spirale.py @@ -0,0 +1,19 @@ +from turtle import* +shape("turtle") +color("blue") + +distance = 10 +pu() + +for i in range(2): + fd(distance) + rt(20) + orientation = heading() + stamp() + while orientation > 0: + orientation = heading() + fd(distance) + rt(20) + stamp() + distance += 2 + print(orientation) \ No newline at end of file diff --git a/ExamStuff/Prüfung Testfile.py b/ExamStuff/Prüfung Testfile.py new file mode 100755 index 0000000..5be3e20 --- /dev/null +++ b/ExamStuff/Prüfung Testfile.py @@ -0,0 +1,6 @@ +seconds = 70512 +minutes = seconds // 60 +seconds_rest = minutes % 60 +hours = minutes // 60 +minutes_rest = minutes % 60 +print(hours, minutes_rest, seconds_rest) \ No newline at end of file diff --git a/ExamStuff/prfg Aufgabe 8 Cross.py b/ExamStuff/prfg Aufgabe 8 Cross.py new file mode 100755 index 0000000..52f979b --- /dev/null +++ b/ExamStuff/prfg Aufgabe 8 Cross.py @@ -0,0 +1,28 @@ +from turtle import* +import math + +rt(45) +go = 1 +color("red") + +distance_in = int(numinput("Wie weit darf sich die Turtle vom Mittelpunkt entfernen??", " Gerade Zahl von 1-unendlich ",300,minval=1)) + +for i in range(4): + go = 1 + while go == 1: + fd(50) + dot(25) + x = xcor() + y = ycor() + distance = math.sqrt((x**2) + (y**2)) + if distance >= distance_in: + go = 0 + else: + if distance <= -distance_in: + go = 0 + + else: + go = 1 + + bk(distance_in) + rt(90) \ No newline at end of file diff --git a/IO/Calculator.py b/IO/Calculator.py new file mode 100755 index 0000000..cceefac --- /dev/null +++ b/IO/Calculator.py @@ -0,0 +1,66 @@ +#Library import +import math + + +#Startup +out = 0 +print(""" + +,--------. ,--. ,--. +'--. .--',--,--. ,---. ,---.| ,---. ,---. ,--,--, ,--.--. ,---. ,---.| ,---. ,--,--, ,---. ,--.--. + | | ' ,-. |( .-' | .--'| .-. || .-. :| \| .--'| .-. :| .--'| .-. || \| .-. :| .--' + | | \ '-' |.-' `)\ `--.| | | |\ --.| || || | \ --.\ `--.| | | || || |\ --.| | + `--' `--`--'`----' `---'`--' `--' `----'`--''--'`--' `----' `---'`--' `--'`--''--' `----'`--' + + ================= + Alpha 1.0 + Build 1 + 28.05.21 + + """) + +#Userinput +i = input("Rechung eingeben: ") + +#Separation +l = i.split() +x1 = l.pop(0) +x = int(x1) + +#Calculation +if len(l) == 1: + print("Wrong entry, retry, use spaces in between numbers and operands.") +else: + while len(l) > 1: + y1 = l.pop(1) + y = int(y1) + if "*" in l: + out = x * y + + elif "+" in l: + out = x + y + + elif "-" in l: + out = x - y + + elif "/" or ":" in l: + out = x / y + + elif "^" or "**" in l: + out = x ** y + + elif "<>" in l: + math.sqrt(x) + + else: + print("unkown operand, retry") + + if len(l) != 0: + operand = l.pop(0) + x = out + else: + print("The result is:") + + +#Output +print(out) \ No newline at end of file diff --git a/IO/Coinflip.py b/IO/Coinflip.py new file mode 100755 index 0000000..38f96d0 --- /dev/null +++ b/IO/Coinflip.py @@ -0,0 +1,40 @@ +import random + + +st1 = 0 +st2 = 0 +st3 = 3 +st2a = 0 +anzahl = 0 + +go = 1 + + +while go == 1: + zahl = random.randint(1,2) + + if st1 == st2: + if st2a == st3: + go = 0 + else: + anzahl += 1 + st3 = st2 + st2 = st1 + st2a = st1 + st1 = zahl + if zahl == 1: + print("K") + else: + print("N") + + else: + anzahl += 1 + st3 = st2 + st2 = st1 + st2a = st1 + st1 = zahl + if zahl == 1: + print("K") + else: + print("N") +print("Took", anzahl, "tries") \ No newline at end of file diff --git a/IO/Eingabe Umwandlung easy.py b/IO/Eingabe Umwandlung easy.py new file mode 100755 index 0000000..7505d9c --- /dev/null +++ b/IO/Eingabe Umwandlung easy.py @@ -0,0 +1,21 @@ +eingabe = int(input("Zahl im Dezimalsystem: ")) +system = int(input("Zahlensystem: ")) + + +if system == 2: + y = bin(eingabe) + print("Resultat:", y) + +elif system == 16: + y = hex(eingabe) + print("Resultat:", y) + +elif system == 8: + y = oct(eingabe) + print("Resultat:", y) + +else: + print("wrong") + + + diff --git a/IO/Frankengewinnspiel.py b/IO/Frankengewinnspiel.py new file mode 100755 index 0000000..fc06504 --- /dev/null +++ b/IO/Frankengewinnspiel.py @@ -0,0 +1,111 @@ +#FRANKENGEWINNSPIEL +#------------------------------------------------- + + +#Import of Modules and setup variables +#import turtle + +#Definition of Turtle instances + + + +#Preparations, so setup of the game output window and choice of diffrent gamemodes +programchoice = 200 +while (programchoice < 1) or (programchoice > 99): + programchoice = programchoice = int(input("Welcher Modus? 1 = Normales Spiel, 2 = Liste aller Gewinne mit angabe des Höchsten, 3 = angabe des höchsten Gewinnes, 4 = andgabe des höchsten erreichbaren Feldes: ")) + if (programchoice < 1) or (programchoice > 99): + print("Number not within designated range. Try again") + print("Willkommen") + + + +#MAINGAME +#----------------------- +def playgame(field): + global winning + winning = 0 + while field > 1: + if (field % 2) == 1: + next = field * 3 + 1 + winning += next + field = next + else: + next = field / 2 + winning += next + field = next + +#GAMEMODE 1 +#------------------------- +def gamemode1(): + s = 200 + while (s < 1) or (s > 99): + s = int(input("Zahl: ")) + if (s < 1) or (s > 99): + print("Number not within designated range. Try again") + print("Ok") + fieldint = s + playgame(fieldint) + global winning + print("Your winnings:", winning) + + +#GAMEMODE 2 +#-------------------------- +def gamemode2(): + fieldascending = 1 + for i in range(99): + playgame(fieldascending) + print("You win",winning,"with startpoint",fieldascending) + fieldascending += 1 + +#GAMEMODE 3 +#-------------------------- +def gamemode3(): + fieldascending = 1 + global winning + currentwinning = 0 + currentfield = 0 + for i in range(99): + playgame(fieldascending) + if winning > currentwinning: + currentwinning = winning + currentfield = fieldascending + fieldascending += 1 + print("Biggest possible winning is", currentwinning,"on field", currentfield) + +#GAMEMODE 4 +#----------------------------- +def gamemode4(): + fieldascending = 1 + global winning + currentwinning = 0 + currentfield = 0 + biggestfield = 0 + for i in range(99): + field = fieldascending + while field > 1: + if (field % 2) == 1: + next = field * 3 + 1 + field = next + if next > biggestfield: + biggestfield = next + currentfield = fieldascending + else: + next = field / 2 + field = next + fieldascending += 1 + print("Biggest possible field is", biggestfield,"on startfield", currentfield) + +#RUN +#------------------------- +if programchoice == 1: + gamemode1() + +elif programchoice == 2: + gamemode2() + +elif programchoice == 3: + gamemode3() + +else: + gamemode4() diff --git a/IO/Idioms.py b/IO/Idioms.py new file mode 100755 index 0000000..df308e5 --- /dev/null +++ b/IO/Idioms.py @@ -0,0 +1,39 @@ +#Idioms +import random + +#Check user input +s = 200 + +while (s < 1) or (s > 99): + s = int(input("Zahl: ")) + if (s < 1) or (s > 99): + print("Number not within designated range. Try again") + +print("Ok") + + +#Find biggest number +output = 0 +for i in range(100): + n = random.randint(1, 1000) + if n > output: + output = n + +print(output) + + +#Summ up +summ = 0 +for i in range(100): + n = random.randint(1, 1000) + summ += n + +print(summ) + + +#even or uneven? +z = random.randint(1, 1000) +if (z % 2) == 1: + print("odd") +else: + print("even") \ No newline at end of file diff --git a/IO/Input + outupt.py b/IO/Input + outupt.py new file mode 100755 index 0000000..d020f75 --- /dev/null +++ b/IO/Input + outupt.py @@ -0,0 +1,13 @@ +import math + +#Eingabe +s = int(input("Seitenlänge: ")) + + +#Verarbeitung +for i in range(s): + print(s * "* ") + + + + diff --git a/IO/Umwandlung Zahlensysteme.py b/IO/Umwandlung Zahlensysteme.py new file mode 100755 index 0000000..8531770 --- /dev/null +++ b/IO/Umwandlung Zahlensysteme.py @@ -0,0 +1,15 @@ +eingabe = int(input("Zahl im Dezimalsystem: ")) +system = int(input("Zahlensystem: ")) + +y = eingabe +out = 0 +stelle = 1 + +while y > 0: + y = y // system + outadd = y % system + out += (outadd * stelle) + stelle *= 10 + + +print(out) \ No newline at end of file diff --git a/IO/Zeit des Lichts zur Erde.py b/IO/Zeit des Lichts zur Erde.py new file mode 100755 index 0000000..0c3d30b --- /dev/null +++ b/IO/Zeit des Lichts zur Erde.py @@ -0,0 +1,3 @@ +c = (1.4962375e8 / 2.99792458e5)/60 + +print(c) \ No newline at end of file diff --git a/IO/Zufall Not quite.py b/IO/Zufall Not quite.py new file mode 100755 index 0000000..366c6fc --- /dev/null +++ b/IO/Zufall Not quite.py @@ -0,0 +1,10 @@ +import time + +a = 5 +c = 1 +m = 32 +x = int(time.time()) % m + +for i in range(10): + x = (a*x + c) % m + print(x) \ No newline at end of file diff --git a/RandomOtherStuff/Clock.py b/RandomOtherStuff/Clock.py new file mode 100755 index 0000000..848e251 --- /dev/null +++ b/RandomOtherStuff/Clock.py @@ -0,0 +1,125 @@ +#Import der Module +import turtle +import time +import datetime + +#Setup der einzelnen Turtle instanzen. +turtle.tracer(0) +sekundenzeiger = turtle.Turtle() +minutenzeiger = turtle.Turtle() +stundenzeiger = turtle.Turtle() +uhr = turtle.Turtle() +sekundenzeiger.color("red") +minutenzeiger.color("blue") +stundenzeiger.width(2) + +#Definition des Ziffernblattes +def clock_bg(): + uhr.pd() + uhr.dot(10) + uhr.pu() + uhr.lt(90) + uhr.fd(230) + uhr.rt(90) + uhr.pd() + for i in range(12): + uhr.rt(90) + uhr.fd(20) + uhr.bk(20) + uhr.lt(90) + for i in range(60): + uhr.fd(2) + uhr.rt(0.5) + uhr.pu() + +#Funktion des Sekundenzeigers +def sekzeiger(): + sekundenzeiger.pu() + sekundenzeiger.home() + sekundenzeiger.pd() + sekunden = datetime.datetime.now().second + sekundenzeiger.setheading((sekunden * 6) * (-1)) + sekundenzeiger.lt(90) + sekundenzeiger.bk(40) + sekundenzeiger.fd(220) + + +#Funktion des Minutenzeigers +def minzeiger(): + minutenzeiger.pu() + minutenzeiger.home() + minutenzeiger.pd() + minuten = datetime.datetime.now().minute + minutenzeiger.lt((minuten * 6) *(-1)) + minutenzeiger.lt(90) + minutenzeiger.bk(30) + minutenzeiger.fd(215) + + +#Funktion des Stundenzeigers +def stzeiger(): + stundenzeiger.pu() + stundenzeiger.home() + stundenzeiger.pd() + mins = datetime.datetime.now().minute + stunden = datetime.datetime.now().hour + if stunden >= 12: + stunden -= 12 + stundenzeiger.lt((stunden * 30) * (-1)) + stundenzeiger.rt(mins * 0.5) + stundenzeiger.lt(90) + stundenzeiger.bk(15) + stundenzeiger.fd(135) + else: + stundenzeiger.lt((stunden * 30) * (-1)) + stundenzeiger.rt(mins * 0.5) + stundenzeiger.lt(90) + stundenzeiger.bk(15) + stundenzeiger.fd(135) + +#Ganze Uhr +def clock(): + sekundenzeiger.clear() + minutenzeiger.clear() + stundenzeiger.clear() + sekundenzeiger.ht() + minutenzeiger.ht() + stundenzeiger.ht() + uhr.ht() + uhr.home() + clock_bg() + sekzeiger() + minzeiger() + stzeiger() + turtle.update() + +#Stoppen der Uhr +def stop(): + global run + run = 0 + + +#Hauptschleife +def settings(): + print("Welcome!") + global run + time.sleep(2) + run = 0 + turtle.onkeypress(stop, "Escape") + turtle.listen() + run = 1 + while run == 1: + clock() + turtle.title("Clock") + else: + print("stopped, click to exit") + turtle.exitonclick() + print("process ended") + + + +#Startzeit einblenden +print(time.strftime("%H:%M:%S")) + +#Ausführen des Programms +settings() diff --git a/RandomOtherStuff/Slicer.py b/RandomOtherStuff/Slicer.py new file mode 100755 index 0000000..fd5c9ce --- /dev/null +++ b/RandomOtherStuff/Slicer.py @@ -0,0 +1,6 @@ +data = "myprogram.exe" + +datanew = data[:4] +amount = len(datanew) +amount //= 2 +print(datanew[amount]) diff --git a/RandomOtherStuff/Test.py b/RandomOtherStuff/Test.py new file mode 100755 index 0000000..2aa1dfc --- /dev/null +++ b/RandomOtherStuff/Test.py @@ -0,0 +1,21 @@ +from turtle import* + + +addshape("testimage.gif") +screensize(1080,1920) +shape("testimage.gif") +color("red") +speed(1000) +def walk(): + w=10 + length=100 + for i in range(4): + w += 10 + width(w) + for i in range(4): + length += 40 + fd(length) + rt(90) + +walk() +exitonclick() \ No newline at end of file diff --git a/RandomOtherStuff/Test_exe.py b/RandomOtherStuff/Test_exe.py new file mode 100755 index 0000000..62c8725 --- /dev/null +++ b/RandomOtherStuff/Test_exe.py @@ -0,0 +1,4 @@ +from turtle import* +import subprocess + +subprocess.run(Kreis_zufall_pre.py) \ No newline at end of file diff --git a/RandomOtherStuff/Textverbinder.py b/RandomOtherStuff/Textverbinder.py new file mode 100755 index 0000000..8579150 --- /dev/null +++ b/RandomOtherStuff/Textverbinder.py @@ -0,0 +1,15 @@ +x = input("Wert x: ") +y = input("Wert y: ") +z = input("Wert z: ") + +whole = x + " " + y + " " + z +remaining = len(whole) +start = 0 +ending = 6 +while remaining > 1: + print(whole[start:ending], end=" ") + start += 6 + ending += 6 + remaining -= 6 + + \ No newline at end of file diff --git a/RandomOtherStuff/While_rekursion.py b/RandomOtherStuff/While_rekursion.py new file mode 100755 index 0000000..ea2bd63 --- /dev/null +++ b/RandomOtherStuff/While_rekursion.py @@ -0,0 +1,53 @@ +from turtle import* + +t1 = Turtle() +t2 = Turtle() + + + +go = 3 +t1.lt(90) +t1.speed(1000) +t1.ht() + + +def gogo(): + go = 2 + while go>1: + if t1.xcor() < (window_width()/2 -50): + for i in range(50): + t1.fd(2) + t1.rt(180/50) + if t1.xcor() < (window_width()/2 -50): + for i in range(50): + t1.fd(2) + t1.lt(180/50) + + else: + print("done") + print(xcor()) + go = 1 + + + while go>0 and go<2: + if t1.xcor() > (window_width()/2 - window_width()/2 + 50): + for i in range(50): + t1.bk(2) + t1.lt(180/50) + if t1.xcor() > (window_width()/2 - window_width()/2 + 50): + for i in range(50): + t1.bk(2) + t1.rt(180/50) + else: + print("home") + go = 0 + onkey(gogo, "space") + print("ready") + +t2.ht() + + +onkey(gogo, "space") +listen() + +print("ready") \ No newline at end of file diff --git a/RandomOtherStuff/Wortraten spiel.py b/RandomOtherStuff/Wortraten spiel.py new file mode 100755 index 0000000..929640e --- /dev/null +++ b/RandomOtherStuff/Wortraten spiel.py @@ -0,0 +1,193 @@ +import os +global mistakes +mistakes = 0 +global wortelements +wortelements = [] +global done +done = [] + +def clear_screen(): + os.system('cls') + + +def worteingabe(): + global wort + wort = input("Suchen sie ein Wort, welches erraten werden soll, ein: ") + clear_screen() + print("Vielen Dank. Das Wort wurde gespeichert.") + print("Geben Sie das Gerät weiter.") + ausgabe(wort) + +def ausgabe(wort): + global wortelements + print(""" + +Das Wort: +""") + print(len(wort)*"*") + global wholewordlist + wholewordlist = list(wort) + wortelements = list(len(wort)*"*") + +def ersetzen(letter): + global wort + global wortelements + global wholewordlist + global done + while letter in wholewordlist: + pos = wholewordlist.index(letter) + wholewordlist.pop(pos) + wholewordlist.insert(pos, "*") + wortelements.pop(pos) + wortelements.insert(pos, letter) + + +def raten(): + global wort + global wortelements + global wholewordlist + global go + go = 1 + while go == 1: + buchstabe = input("Suchen sie einen Buchstaben aus, welcher sich im Wort befinden könnte: ") + if buchstabe in wholewordlist: + print("Der Buchstabe kommt hier vor:") + ersetzen(buchstabe) + print(*wortelements) + done.append(buchstabe) + elif buchstabe in done: + print("Dieser Buchstabe wurde bereits eingetippt.") + addman() + elif buchstabe == wort: + wholewordlist = list(len(wort)*"*") + else: + print("Dieser Buchstabe ist nicht Teil des Wortes") + done.append(buchstabe) + addman() + print(*done) + counts = wholewordlist.count("*") + if len(wort) - counts <= 0: + go = 0 + else: + print(""" + + +DAS WORT WURDE GEFUNDEN +Das Wort: +""") + print(wort) + + +def addman(): + global mistakes + mistakes += 1 + if mistakes == 1: + print(""" + + + + + __________ +""") + elif mistakes == 2: + print(""" + + + + + + | + _____|_____ +""") + elif mistakes == 3: + print(""" + + + + | + | + | + _____|_____ +""") + elif mistakes == 4: + print(""" + + | + | + | + | + |\ + _____|_\___ +""") + elif mistakes == 5: + print(""" + _____ + | + | + | + | + |\ + _____|_\___ +""") + elif mistakes == 6: + print(""" + _____ + | | + | ° + | + | + |\ + _____|_\___ +""") + elif mistakes == 6: + print(""" + _____ + | | + | ° + | \ + | + |\ + _____|_\___ +""") + elif mistakes == 7: + print(""" + _____ + | | + | ° + | \/ + | + |\ + _____|_\___ +""") + elif mistakes == 8: + print(""" + _____ + | | + | ° + | \/ + | / + |\ + _____|_\___ +""") + elif mistakes == 9: + print(""" + _____ + | | + | ° + | \/ + | /\ + |\ + _____|_\___ + + + DEAD +""") + global go + go = 0 + + + + + +worteingabe() +raten() \ No newline at end of file diff --git a/RandomOtherStuff/main.py b/RandomOtherStuff/main.py new file mode 100755 index 0000000..ffabfaa --- /dev/null +++ b/RandomOtherStuff/main.py @@ -0,0 +1,7 @@ +from turtle import * + +for i in range(4): + fd(100) + right(90) + +exitonclick() diff --git a/RandomOtherStuff/testimage.gif b/RandomOtherStuff/testimage.gif new file mode 100755 index 0000000..d618520 Binary files /dev/null and b/RandomOtherStuff/testimage.gif differ diff --git a/RandomOtherStuff/timetest.py b/RandomOtherStuff/timetest.py new file mode 100755 index 0000000..819f4c3 --- /dev/null +++ b/RandomOtherStuff/timetest.py @@ -0,0 +1,5 @@ +import time + +print ("time.time(): %f " % time.time()) +print (time.localtime( time.time())) +print (time.asctime( time.localtime(time.time()))) \ No newline at end of file diff --git a/RandomTurtle/Binäruhr.py b/RandomTurtle/Binäruhr.py new file mode 100755 index 0000000..f13a0fb --- /dev/null +++ b/RandomTurtle/Binäruhr.py @@ -0,0 +1,72 @@ +import turtle +import datetime +import time + + +#Setup +turtle.ht() +turtle.tracer(0) +turtle.speed(0) + +#Definition der Kreise +def circles(fill): + turtle.pu() + turtle.bk(20) + turtle.pd() + if fill == 0: + turtle.circle(10) + else: + turtle.begin_fill() + turtle.circle(10) + turtle.end_fill() + turtle.pu() + +turtle.home() +turtle.pu() +turtle.bk(25) + +#Postitionieren der Turtle +def distance(pixels): + turtle.home() + turtle.pu() + turtle.lt(90) + turtle.bk(pixels) + turtle.rt(90) + +#Berechnen der einzelnen Stellen +def main(): + turtle.clear() + turtle.home() + h = datetime.datetime.now().hour + min = datetime.datetime.now().minute + sec = datetime.datetime.now().second + hr_pos2 = h//2 + mn_pos2 = min//2 + sk_pos2 = sec//2 + + + for i in range(6): + hr_pos2 = hr_pos2 // 2 + hr_pos = hr_pos2 % 2 + circles(hr_pos) + + distance(50) + + for i in range(7): + mn_pos2 = mn_pos2 // 2 + mn_pos = mn_pos2 % 2 + circles(mn_pos) + + distance(100) + + for i in range(7): + sk_pos2 = sk_pos2 // 2 + sk_pos = sk_pos2 % 2 + circles(sk_pos) + + turtle.update() + +#Ausführen +while True: + main() + time.sleep(0.1) \ No newline at end of file diff --git a/RandomTurtle/Digitale Uhr.py b/RandomTurtle/Digitale Uhr.py new file mode 100755 index 0000000..199ba46 --- /dev/null +++ b/RandomTurtle/Digitale Uhr.py @@ -0,0 +1,48 @@ +from turtle import* +import datetime +import time + +style = ("Minecraftia", 75, "normal") +tracer(0) + +#Ausführen der Uhr. +while True: + time.sleep(1) + clear() + ht() + pu() + sec = datetime.datetime.now().second + min = datetime.datetime.now().minute + h = datetime.datetime.now().hour + bk(350) +#Abstände definieren + if h >= 10: + write(h, font=style) + fd(200) + else: + write("0", font=style) + fd(100) + write(h, font=style) + fd(100) + write(":", font=style, align = "left") + fd(50) + if min >= 10: + write(min, font=style) + fd(200) + else: + write("0", font=style) + fd(100) + write(min, font=style) + fd(100) + write(":", font=style, align = "left") + fd(50) + if sec >= 10: + write(sec, font=style) + fd(200) + else: + write("0", font=style) + fd(100) + write(sec, font=style) + fd(100) + home() + update() \ No newline at end of file diff --git a/RandomTurtle/Dots.py b/RandomTurtle/Dots.py new file mode 100755 index 0000000..3a8dd9a --- /dev/null +++ b/RandomTurtle/Dots.py @@ -0,0 +1,25 @@ +from turtle import* +import time + +def scene(d): + dot(500/d) + + +ht() +color("red") +bgcolor("black") +pu() +tracer(0) + +lt(90) +bk(120) + +a = 200 + +for i in range(200): + clear() + scene(a) + update() + a -= 1 + time.sleep(0.025) + fd(1) \ No newline at end of file diff --git a/RandomTurtle/Eiskristall-Rekursion.py b/RandomTurtle/Eiskristall-Rekursion.py new file mode 100755 index 0000000..a3fa073 --- /dev/null +++ b/RandomTurtle/Eiskristall-Rekursion.py @@ -0,0 +1,36 @@ +from turtle import * +import time +r = numinput("PENTAGON","Wie gross soll die Seitenlänge des Pentagons sein?",200) +rl = numinput("PENTAGON","Wie viele Ebenen sollen benuzt werden?",3) +tracer(0) + +def pentagon(n, radius): + if n == 0: + #ausgefülltes Pentagon zeichnen + color("Red") + begin_fill() + for i in range(5): + fd(radius) + rt(360/5) + end_fill() + else: + for i in range(5): + #Positionierung der Turtle + pu() + fd(radius * 2.62 * 0.381966) + rt(360/5) + pd() + #Rekursion + pentagon(n - 1,radius * 0.381966) + update() + +starttime = time.time() +pu() +lt(90) +fd(r) +rt(90) +bk(r*0.6) +pd() +pentagon(rl, r) + +exitonclick(); \ No newline at end of file diff --git a/RandomTurtle/Halbkreis.py b/RandomTurtle/Halbkreis.py new file mode 100755 index 0000000..b63a117 --- /dev/null +++ b/RandomTurtle/Halbkreis.py @@ -0,0 +1,14 @@ +from turtle import* + +speed(10000) +ht() + + + +def kreis_halb(anzahl_seiten,radius): + for i in range(anzahl_seiten): + fd(radius / anzahl_seiten) + rt(360 / anzahl_seiten) + +kreis_halb(500,800) +exitonclick() diff --git a/RandomTurtle/Huhn.py b/RandomTurtle/Huhn.py new file mode 100755 index 0000000..fba7f58 --- /dev/null +++ b/RandomTurtle/Huhn.py @@ -0,0 +1,87 @@ +import turtle +import math +import random + +turtle.title("Huhn") +sideay = int(turtle.numinput("Huhn", "Punkt A, cord y", -100)) +sideax = int(turtle.numinput("Huhn", "Punkt A, cord x", 200)) +sideby = int(turtle.numinput("Huhn", "Punkt B, cord y", -100)) +sidebx = int(turtle.numinput("Huhn", "Punkt B, cord x", -200)) +sidecy = int(turtle.numinput("Huhn", "Punkt C, cord y", 200)) +sidecx = int(turtle.numinput("Huhn", "Punkt C, cord x", 0)) +anzahl_durchgaenge = int(turtle.numinput("Huhn", "Anzahl Durchgänge", 10, minval=1, maxval=100)) +stiftdicke = int(turtle.numinput("Huhn", "Stiftdicke", 2, minval=1, maxval=50)) +durchgang = 0 + + +turtle.speed(0) +cage = turtle.Turtle() +huhn = turtle.Turtle() + +cage.ht() +huhn.pu() +huhn.ht() + + +def motion(sideay,sideax,sideby,sidebx,sidecy,sidecx,stiftdicke): + edge = random.randint(1,3) + if edge == 1: + x = sideax + y = sideay + else: + if edge == 2: + x = sidebx + y = sideby + else: + x = sidecx + y = sidecy + + huhn.setheading(huhn.towards(x, y)) + nextpos = (math.sqrt((x - huhn.xcor())**2 + (y - huhn.ycor()) **2)) / 2 + huhn.fd(nextpos) + huhn.pd() + huhn.dot(stiftdicke) + huhn.pu() + +def motion_pre(sideay,sideax,sideby,sidebx,sidecy,sidecx,stiftdicke): + edge = random.randint(1,3) + if edge == 1: + x = sideax + y = sideay + else: + if edge == 2: + x = sidebx + y = sideby + else: + x = sidecx + y = sidecy + + huhn.setheading(huhn.towards(x, y)) + nextpos = (math.sqrt((x - huhn.xcor())**2 + (y - huhn.ycor()) **2)) / 2 + huhn.fd(nextpos) + +def cagedraw(sideax,sideay,sidebx,sideby,sidecx,sidecy): + cage.pu() + cage.setpos(sideax,sideay) + cage.pd() + cage.setpos(sidebx,sideby) + cage.setpos(sidecx,sidecy) + cage.setpos(sideax,sideay) + + +print("Started drawing Triangle") +cagedraw(sideax,sideay,sidebx,sideby,sidecx,sidecy) + +print("Started mapping... Printing Points of Tranche:") +turtle.tracer(1000) +print("initialisation") +for i in range(50): + motion_pre(sideay,sideax,sideby,sidebx,sidecy,sidecx,stiftdicke) + +for i in range(anzahl_durchgaenge): + for i in range(1000): + motion(sideay,sideax,sideby,sidebx,sidecy,sidecx,stiftdicke) + durchgang += 1 + print(durchgang,"/", anzahl_durchgaenge) +print("done, click to exit") +turtle.exitonclick() \ No newline at end of file diff --git a/RandomTurtle/Kleeblatt.py b/RandomTurtle/Kleeblatt.py new file mode 100755 index 0000000..2834274 --- /dev/null +++ b/RandomTurtle/Kleeblatt.py @@ -0,0 +1,17 @@ +from turtle import* + +speed(1000) + +def blatt(seite,winkel,anzahl): + for i in range(anzahl): + begin_fill() + for i in range(3): + fd(seite) + lt(winkel) + end_fill() + rt(360/anzahl) + +ht() +color("green") +blatt(100,120,4) +exitonclick() \ No newline at end of file diff --git a/RandomTurtle/Kreis_zufall_pre.py b/RandomTurtle/Kreis_zufall_pre.py new file mode 100755 index 0000000..22bd079 --- /dev/null +++ b/RandomTurtle/Kreis_zufall_pre.py @@ -0,0 +1,35 @@ +import random +import turtle +import time + +turtle.pu() + +def vieleck_random_randomize(): + for i in range(random.randint(25, 100)): + turtle.color(random.random(),random.random(),random.random()) + size = random.randint(50, 200) + turtle.width(random.randint(2, 10)) + ecken = random.randint(3, 20) + turtle.setpos(random.randint(-300,300), random.randint(-300,300)) + fuellen = random.randint(0,1) + turtle.pd() + if fuellen >= 1: + turtle.begin_fill() + for i in range(ecken): + turtle.fd(size / ecken) + turtle.rt(360 / ecken) + turtle.end_fill() + else: + for i in range(ecken): + turtle.fd(size / ecken) + turtle.rt(360 / ecken) + turtle.pu() + +print("Random Design") +draw_time_start = time.time() +vieleck_random_randomize() +draw_time_end = time.time() +print("Drawing has taken", draw_time_end - draw_time_start , "seconds") +print("Click to exit") + +turtle.exitonclick(); \ No newline at end of file diff --git a/RandomTurtle/Progressbar.py b/RandomTurtle/Progressbar.py new file mode 100755 index 0000000..6be0841 --- /dev/null +++ b/RandomTurtle/Progressbar.py @@ -0,0 +1,11 @@ +import time +import os + +while True: + for i in range(4): + print("=", end=" ",flush=True) + time.sleep(0.5) + print("=", end="\r",flush=True) + time.sleep(0.5) + os.system( 'cls' ) + time.sleep(0.5) \ No newline at end of file diff --git a/RandomTurtle/Striche.py b/RandomTurtle/Striche.py new file mode 100755 index 0000000..e192ca8 --- /dev/null +++ b/RandomTurtle/Striche.py @@ -0,0 +1,16 @@ +from turtle import* + +dicke = 3 +lt(90) + +for i in range(10): + fd(100) + bk(100) + rt(90) + pu() + fd(20) + pd() + lt(90) + width(dicke) + dicke += 2 + diff --git a/RandomTurtle/Test_while_rekursiojn.py b/RandomTurtle/Test_while_rekursiojn.py new file mode 100755 index 0000000..e42cc3f --- /dev/null +++ b/RandomTurtle/Test_while_rekursiojn.py @@ -0,0 +1,7 @@ +from turtle import* + +a = int(numinput("Wie alt bist du?", "Bitte als Zahl eingeben",16,minval=1,maxval=100)) + +while (a>=16) and (a<=20): + fd(100) + a = 1 \ No newline at end of file diff --git a/RandomTurtle/TicTacToe.py b/RandomTurtle/TicTacToe.py new file mode 100755 index 0000000..9c99933 --- /dev/null +++ b/RandomTurtle/TicTacToe.py @@ -0,0 +1,187 @@ +#TICTACTOE V 1.0 + +import time + +#Variables5 +global bd +bd = [[0,0,0],[0,0,0],[0,0,0]] +global filled_fields +filled_fields = 0 +global player +global playershow +playershow = 1 +player = 1 +global play +play = 1 + + +#FUNCTIONS +#-------------------- +def inputs(): + global playershow + global bd + print("It's the turn of player", playershow) + m = input("Where do you want to put your mark? ") + if len(m) > 1: + sp = m[0] + zl = m[1] + z = int(zl) - 1 + s = ord(sp) - 65 + if bd[z][s] > 0: + print(""" +THAT FIELD IS ALREADY TAKEN, CHOOSE DIFFERENT ONE! +""") + else: + inputremap(z,s) + else: + print(""" + PLEASE TYPE IN A LEGIT COORDINATE: + FORM: Coordinate Y Coordinate X --> Ex. A1/A2 + """) + +def inputremap(z, s): + global player + global playershow + global bd + bd[z][s] = player + if playershow == 1: + playershow = 2 + player = 7 + else: + playershow = 1 + player = 1 + global filled_fields + filled_fields += 1 + full(filled_fields) + + +def winning(): + global play + global bd + x = 0 + y = 0 + global go + go = 1 + count = 0 + print(""" +checking for winner +""") + while go == 1: + if sum(bd[x]) == 3: + go = 0 + play = 0 + print("The Winner is player 1") + elif sum(bd[x]) == 21: + go = 0 + play = 0 + print("The Winner is player 2") + elif bd[0][y] + bd[1][y] + bd[2][y] == 3: + go = 0 + play = 0 + print("The Winner is player 1") + elif bd[0][y] + bd[1][y] + bd[2][y] == 21: + go = 0 + play = 0 + print("The Winner is player 2") + else: + x += 1 + y += 1 + if count >= 2: + go = 0 + print("""no winner yet +""") + else: + count += 1 + +def full(filled_field): + global bd + if filled_field == 9: + print("draw") + global play + play = 0 + else: + winning() + + +#BOARD DRAWING +def board_draw(): + print("\n") + xx = 0 + yy = 0 + global bd + while yy < 3: + while xx < 3: + if bd[xx][yy] == 0: + print(" ", end = " ") + elif bd[xx][yy] == 1: + print(" X ", end = " ") + elif bd[xx][yy] == 7: + print(" O ", end = " ") + else: + print(""" CRITICAL ERROR""") + if xx < 2: + print("|", end = " ") + else: + print(" ", end = " ") + xx += 1 + print(" ") + xx = 0 + if yy < 2: + print("----------------------") + else: + print(" ") + yy += 1 + + + + +#MAIN CYCLE +print(50*("\n")) + +print(""" + + ------------------------------------------------------ + + + + + TIC TAC TOE + =========== + V 1.0 + V 2021.06.18 + + + +by Janis Hutz +""") +time.sleep(2) +print("starting...") +time.sleep(3) +print("\n\n\n") +goahead = 1 +print(""" + | | + ---------------- + | | + ---------------- + | | + """) +while goahead == 1: + while play == 1: + inputs() + board_draw() + time.sleep(2) + print(""" +REPLAY? +""") + i = input("""Choose: (y/n)""") + if i == "y": + goahead = 1 + play = 1 + else: + goahead = 0 +print(""" + + GOOD BYE! + +""") \ No newline at end of file diff --git a/RandomTurtle/blume.py b/RandomTurtle/blume.py new file mode 100755 index 0000000..d77df09 --- /dev/null +++ b/RandomTurtle/blume.py @@ -0,0 +1,43 @@ +from turtle import* + +lt(90) +width(3) +speed(1000) + +def stiel(orientation): + color("green") + for i in range(50): + if orientation > 1 and orientation < 3: + fd(7) + lt(1) + else: + fd(7) + rt(1) + + +def leaves(): + color("red") + for i in range(100): + fd(3) + rt(360/100) + + + + +def blume(orientation_in,blaetter): + stiel(orientation_in) + for i in range(blaetter): + leaves() + rt(360/blaetter) + + +ht() + +blume(2,5) +pu() +home() +fd(50) +lt(90) +pd() +blume(1,10) +exitonclick() \ No newline at end of file diff --git a/StringOperations/reverser.py b/StringOperations/reverser.py new file mode 100755 index 0000000..b5fa577 --- /dev/null +++ b/StringOperations/reverser.py @@ -0,0 +1,13 @@ +eingabe = input("Dein Text: ") +caracter = -1 +morecaracters = True +amountleft = len(eingabe) +while morecaracters == True: + print(eingabe[caracter], end="") + if amountleft > 1: + caracter -= 1 + amountleft -= 1 + else: + morecaracters = False + + \ No newline at end of file diff --git a/TextAdventure/Adventure_Crash_neu.py b/TextAdventure/Adventure_Crash_neu.py new file mode 100755 index 0000000..17925f1 --- /dev/null +++ b/TextAdventure/Adventure_Crash_neu.py @@ -0,0 +1,577 @@ +import time +import random +global stepscount +stepscount = 0 +inventory = [] +done = [] +visited = [] +global goahead +goahead = 0 + + + + +def cover(): + print(""" + + + + + + + + + + + + + ______ ______ ______ ______ _______ _______ _____ +( ___ \ / ___ \ / ___ \ / ___ \ ( )( ___ )|\ /| / ___ \ +| ( ) )\/ ) )\/ \ \\/ ) )| () () || ( ) |( \ / ) ( (___) ) +| (__/ / / / ___) / / / | || || || (___) | \ (_) / \ / +| __ ( / / (___ ( / / | |(_)| || ___ | ) _ ( / ___ \ +| ( \ \ / / ) \ / / | | | || ( ) | / ( ) \ ( ( ) ) +| )___) ) / / /\___/ / / / | ) ( || ) ( |( / \ ) ( (___) ) +|/ \___/ \_/ \______/ \_/ |/ \||/ \||/ \| \_____/ + + _______ _______ _______ _______ +( ____ \( ____ )( ___ )( ____ \|\ /| +| ( \/| ( )|| ( ) || ( \/| ) ( | +| | | (____)|| (___) || (_____ | (___) | +| | | __)| ___ |(_____ )| ___ | +| | | (\ ( | ( ) | ) || ( ) | +| (____/\| ) \ \__| ) ( |/\____) || ) ( | +(_______/|/ \__/|/ \|\_______)|/ \| + + + + + + +""") + time.sleep(2) + print(""" +DIES BASIERT AUF EINER WAHREN TATSACHE. DIE SPIELELEMENTE SIND VEREINFACHT UND TEILS +UNREALISTISCH DARGESTELLT. WICHTIGE DETAILS WERDEN ZUR EINFACHEREN VERSTÄNDLICHKEIT +WEGGELASSEN. DER ERMITTLUNGSPROZESS IST IN WIRKLICHKEIT EINE UNGEHEURLICH SCHWIERIGE +AUFGABE UND WIRD HIER AUF EIN MÖGLICHST ÜBERSCHAUBARES MASS GEKÜRZT. + +""") + time.sleep(5) + go = 0 + while go == 0: + a = userinput("Tippe folgendes ein, wenn du bereit bist: ok | ") + if a == "ok": + go = 1 + else: + print("wrong, retry") + global start + start = time.time() + + + +def gameoverpossible(): + global start + if "grounding" not in done: + current = time.time() - start + if current < 120: + gameover1() + elif current < 180 and current > 119: + gameover2() + elif current < 240 and current > 179: + gameover3() + elif current < 300 and current > 239: + gameover() + else: + current = time.time() + +def gameover1(): + if random.randint(0,10) == 1: + gameover() + else: + current = time.time() + +def gameover2(): + if random.randint(0,6) == 1: + gameover() + else: + current = time.time() + +def gameover3(): + if random.randint(0,3) == 1: + gameover() + else: + current = time.time() + +def gameover(): + global next + next = 0 + global exit + exit = 0 + print(""" + NEW YORK TIMES + + DIE KATASTROPHE + --------------------------------- +Heute morgen gegen 7 Uhr ist eine Boeing 737 MAX 8 der United Airlines abgestürzt. +Alle 178 Menschen an Bord der Maschine sind bei dem fast senkrechten Absturz der +Maschine gestorben. Der Unfall ähnelt den beiden bisherigen Abstürzen von 737 MAX +in Ethiopien und Indonesien in vielerlei Hinsicht. Auch hier war die Maschine +senkrecht abgestürzt, auch hier wollten die Piloten umkehren und meldeten Probleme +mit der Flugsteuerung. Die Ermittler dieses Falles werden sich morgen früh für ihre +langsame Arbeit für den Tod der 178 Menschen verantworten, da sie kein Weltweites +Flugverbot für die 737 MAX ausgesprochen hatte. + --------------------------------- + +Oh weh. +Das wird einige Konsequenzen für dich nach sich ziehen. +""") + time.sleep(4) + print(""" + + +Es ist der nächste Morgen. Du machst dich auf zum Gericht. +Die Richter entziehen den Fall deiner Verantwortung und verurteilen dich zu +lebenslänglicher Haft, aufgrund von fahrlässiger Tötung. Das ist das Ende deiner +Karriere. +""") + + print("Punktezahl: 0") + + + +def einfuehrung(): + print("""Es ist Samstagmorgen... Urplötzlich stürzt eine fast brandneue Boeing 737MAX +von Ethiopian Airlines ab. Die Welt ist schockiert, da dies bereits der zweite Absturz dieses +Typs ist. Beides Mal waren fast brandneue Flugzeuge involviert. Beide Abstürze ähnelten sich +massiv. Deine Aufgabe ist es nun, die Absturze zu klären.""") + print(""" +Als neu ernannter Ermittler musst du dir bereits jetzt eine wichtige Frage stellen: +Solltest du ein weltweites Flugverbot für diesen Flugzeugtypen verhängen? +Sowohl Boeing als auch die Fluggesellschaften werden sich dagegen sträuben. +""") + i = userinput("Willst du das Flugverbot verhängen? (y/n)") + if i == "y": + print(""" + NEW YORK TIMES + + NTSB ERMITTLER VERHÄNGT FLUGVERBOT FÜR UNGLÜCKSFLIEGER + -------------------------------------------------------------- +Heute Morgen hat ein Sprecher des NTSB (National Transport and Safety Board verkündet, +dass der leitende Ermittler ein Flugverbot für alle Flugzeuge der Boeing 737MAX-Klasse +zu verhängen. Dies ist auf massive Proteste seitens der Fluggesellschaften und von Boeing +gestossen. Jedoch: Viele Aviatikexperten befürworten den Entscheid des Ermittlers. Die +Sicherheit der Passagiere muss um jeden Preis gewährleistet werden. Die einzige Möglichkeit +dies zu gewährleisten ist, ein Flugverbot auszusprechen. +""") + done.append("grounding") + elif i == "n": + print(""" +Die Wirtschaft ist wichtig, ein Pilotenfehler kann ja nicht ausgeschlossen werden. +Ermitteln wir! + +""") + else: + print("wrong, retry") + einfuehrung() + time.sleep(4) + +def grundriss(): + if "grounding" in done: + print(""" + +_________________________________________________________________________________________________________ + +Willkommen im Ermittlerbüro. +Dies ist dein Arbeitsplatz an der Unfallstelle. Die Welt will Antworten und Boeing +braucht sie, um das Flugzeug zu verbessern. Der Zeitdruck ist aber geringer, da keine +weiteren Abstürze geschehen können. +Hier kannst du alle Gegenstände, welche du auf der Unfallstelle finden kannst +untersuchen, um die mögliche Unfallursache herauszufinden. +""") + else: + print(""" + +_________________________________________________________________________________________________________ + +Willkommen im Ermittlerbüro. +Dies ist dein Arbeitsplatz an der Unfallstelle. Du solltest dich so schnell wie +möglich um diesen Fall kümmern, denn sonst könnte es zu weiteren Abstürzen kommen. +Hier kannst du alle Gegenstände, welche du auf der Unfallstelle finden kannst +untersuchen, um die mögliche Unfallursache herauszufinden. +""") + + +def abspann(): + print(""" + +DU HAST ES GESCHAFFT! + GLÜCKWUNSCH! + + """) + global start + global stepscount + times = time.time() - start + points = times*2 + stepscount**2 - 110 + if points < 0: + print("Deine Zeit: ",times) + print("\n\nDeine Punkte (Je geringer desto besser): 0") + print("\nDeine Anzahl Schritte (Je geringer desto besser):", stepscount) + else: + print("Deine Zeit: ",times) + print("\n\nDeine Punkte (Je geringer desto besser): ",points) + print("\nDeine Anzahl Schritte (Je geringer desto besser):", stepscount) + bewertung(points) + +def bewertung(punkte): + print(""" + DEINE BEWERTUNG:""") + if punkte <= 0: + print(""" GOD """) + if punkte < 20: + print(""" A+ """) + elif punkte < 40: + print(""" A """) + elif punkte < 100: + print(""" B """) + elif punkte < 200: + print(""" C """) + elif punkte < 301: + print(""" D """) + elif punkte > 300: + print(""" D- """) + + +def userinput(question): + return input(question).lower() + +def makedone(item): + inventory.remove(item) + done.append(item) + +def eb(): + global stepscount + stepscount += 1 + print("""Du befindest dich jetzt im Ermittlerbüro. +""") + while len(inventory) > 0: + stepscount += 1 + if "blackbox" in inventory: + makedone("blackbox") + print("""Da du ja jetzt die Blackbox des Flugzeugs gefunden hast, +kannst du sie hier im Ermittlerbüro aufmachen und die Flugdaten auslesen. +Dies dauert jedoch eine gewisse Zeit. Du öffnest ihn und hoffst, dass einer +deiner Spezialisten die Daten retten kann.""") + time.sleep(7) + print("""Dein Spezialist hat es geschafft! Die Daten konten wiederhergestellt werden! +Du siehst eine Auffälligkeit in den Daten der Flughöhe und der vertikalen Geschwindigkeit. +Dies deutet auf massive technische Probleme hin. Auch die Daten des Anstellwinkelsensors 1, +sind auffällig: Er hatte die ganze Zeit denselben Anstellwinkel angezeigt. +""") + if "anstellwinkelsensor" in inventory: + print("""Glücklicherweise hast du ihn bereits auf dem Trümmerfeld entdeckt. +Du untersuchst ihn nun.""") + elif "anstellwinkelsensor" in done: + print("""Du hast ihn ja bereits untersucht. """) + else: + print("""Du solltest dich vielleicht nach dem Sensor umsehen.""") + elif "anstellwinkelsensor" in inventory: + makedone("anstellwinkelsensor") + print("""Da du ja zuvor den Anstellwinkelsensor des Flugzeugs gefunden hast, +kannst du ihn jetzt auf Schäden überprüfen. Du untersuchst die Ströme, welche der +Sensor bei Bewegung ausgibst und machst eine Entdeckung: +ER FUNKTIONIERT NICHT! +Logischerweise könnte er auch durch den Aufprall beschädigt sein, """) + if "blackbox" in done: + print("""aber die Blackbox bestätigt ja den Ausfall des Sensors. +Du bist der Ursache auf der Spur. Glückwunsch!""") + global goahead + goahead = 1 + inventory.clear() + else: + print("""du solltest deshalb die Blackbox finden, um den Ausfall zu +bestätigen. +""") + print("\n") + elif "turbine" in inventory: + print("""Du hast eine der beiden Turbinen in das Büro transportieren lassen. +Als mögliche Absturzursache hast du Triebwerksversagen im Verdacht. Beim Betrachten +der Triebwerke erkennst du aber an der Verformung der Schaufeln und dem Dreck +in der Turbine selbst, also im Kompressor, dass sie voll funktionstüchtig war. +Somit kann ein Absturz durch Triebwerksversagen ausgeschlossen werden. +Denn ein modernes Flugzeug kann auch mit nur einem Triebwerk problemlos fliegen.""") + makedone("turbine") + elif "zeugen" in inventory: + makedone("zeugen") + print("""Du hast ja auch bereits die Zeugen befragt. Du schaust dir deine +Notizen lange an, kannst aber nichts erkennen, was dir für den Fall helfen könnte. +Du verwirfst die Aussagen als nicht aussagekräftig.""") + time.sleep(5) + if goahead == 1: + stepscount += 1 + print("""Du wendest dich nun den Pilotenakten zu. Der Kapitän hatte beachtliche +8000 Flugstunden und soweit du erkennen magst, auch keine bekannten Probleme. Auch die +(kurze) Karriere des Copiloten war makellos, er hatte jedoch nur 200 Flugstunden. +Die Piloten hatten beim Kontakt mit dem Tower Probleme gemeldet und zur Umkehr +gebeten. Dies bestätigte auch der Stimmenrekorder. Deine Aufmerksamkeit fällt auf +das als Manouvering Caracteristics Augumentation System, oder kurz MCAS, welches eigentlich +einen Strömungsabriss verhindern sollte, aber, aufgrund der Architektur der 737-Familie, +nur mit einem der redundanten Anstellwinkelsensoren verbunden war. Des weiteren: +Zwei Sensoren sind einer zu wenig, denn falls jetzt einer ausfallen sollte, welcher +sollte verwendet werden? Das MCAS hatte hier schlicht weg keine Chance, vernüftig +zu handeln und hatte das Flugzeug in einen Sturzflug gezwungen, da der Anstellwinkelsensor +einen zu hohen Anstellwinkel gemeldet hatte. Das Flugzeug war jedoch gar nicht in jener Lage und +die Piloten kämpften vergeblich gegen das System, welches sich nicht abschalten liess. +Denn durch die grösseren und Effizienteren Triebwerke (LEAP 1A) der 737MAX, mussten diese +weiter vorne und höher unter dem Flügel angebracht werden, um genügend Bodenfreiheit zu +gewährleisten. Dies hatte dazu geführt, dass bei dem schon sehr alten Flugzeug das sogenannte +Pitch-Up moment grösser wurde und somit die Nase des Flugzeugs in gewissen Fluglagen +unkontrolliert nach oben gehen kann. Das MCAS sollte dies verhindern, denn diese Fluglage +führt unweigerlich zu einem Strömungsabriss, bei welchem das Flugzeug sogesagt "vom Himmel +fallen würde".""") + time.sleep(10) + if "grounding" in done: + stepscount -= 2 + print(""" +Nachdem du ja glücklicherweise bereits bei Ermittlungsbeginn das Grounding des Typs andgeordnet hattest. +Die Fluggesellschaften und Boeing hatten zwar nicht sehr positiv darauf reagiert, aber mit dem was +du herausgefunden hattest, sind jetzt alle froh, dass du es getan hattest. +Die 737 MAX war anschliessend bis im Dezember 2020 gegroundet und Boeing fuhr durch dieses Problem +massive Verluste ein. +""") + else: + stepscount += 10 + print(""" +Alle sind schockiert, dass du nicht bereits bei Ermittlungsbeginn ein Grounding angeordnet hattest. +Boeing und auch die Fluggesellschaften fanden es zwar erst besser, aber auch sie sind jetzt der Meinung, +dass es besser gewesen wäre, wenn du bereits da ein Grounding angeordnet hättest. Deine Haltung davon ist +zwar verständlich, aber du wirst trotzdem zur Verantwortung gezogen. Du musst eine Haftstrafe von einem +Jahr absitzen, da du viele Personen in Gefahr gebracht hast. Trotzdem, der Fall ist geklärt. +""") + return 0 + else: + print("""Um etwas untersuchen zu können, musst du erst etwas in dein Inventar nehmen, +dann hier zurückkehren. Gehe dazu hinaus auf die Unfallstelle. +Auch da könnten sich wichtige Hinweise verstecken.""") + i = userinput("Wo willst du hin? Zum Cockpit (c), zum Flügel (f), zum Heck (h) oder willst du Zeugen befragen (z)? ") + if i == "c": + return 4 + if i == "f": + return 2 + if i == "h": + return 3 + if i == "z": + return 5 + + + +def fl(): + global stepscount + stepscount += 1 + if "flügel" in visited: + print("""Du hast den Flügel bereits untersucht.""") + i = userinput("Wo willst du hin? Zum Cockpit (c), zum Heck (h), zum Büro (b) oder willst du Zeugen befragen (z)? ") + if i == "c": + return 4 + if i == "b": + return 1 + if i == "h": + return 3 + if i == "z": + return 5 + else: + print("wrong, retry") + return 2 + else: + print(""" +Der Flügel. Komplett zertrümmert. Er scheint in einem beinahe 90° Winkel +aufgeschlagen zu sein. Du und dein Team finden eine der beiden Turbinen. Du lässt +sie in dein Büro transportieren, um sie dort zu untersuchen. Du kannst entweder +in dein Büro gehen oder weitersuchen.""") + i = userinput("Willst du zurück? (y/n)") + visited.append("flügel") + time.sleep(2) + if i == 'y': + return 1 + elif i == 'n': + print("""Du willst also weitersuchen.""") + i = userinput("Wo willst du hin? Zum Cockpit (c), zum Heck (h) oder willst du Zeugen befragen (z)? ") + if i == "c": + return 4 + if i == "h": + return 3 + if i == "z": + return 5 + else: + print("wrong, retry") + return 2 + + + +def hk(): + global stepscount + stepscount += 1 + if "heck" in visited: + print("""Du hast das Heck bereits untersucht.""") + i = userinput("Wo willst du hin? Zum Cockpit (c), zum Flügel (f), zum Büro (b) oder willst du Zeugen befragen (z)? ") + if i == "c": + return 4 + if i == "b": + return 1 + if i == "f": + return 2 + if i == "z": + return 5 + else: + print("wrong, retry") + return 3 + else: + print(""" +Du entdeckst etwas, das wie das Seitenleitwerks des Flugzeugs aussehen könnte. +Dein grösstes Ziel ist, die Blackbox zu finden. Du hebst Teile an, und plötzlich siehst du sie: +Die Blackbox. Du hebst sie auf und lässt sie in dein Büro bringen. """) + inventory.append("blackbox") + time.sleep(1) + visited.append("heck") + i = userinput("Willst du zurück? (y/n)") + if i == 'y': + return 1 + elif i == 'n': + print("""Du willst also weitersuchen.""") + i = userinput("Wo willst du hin? Zum Cockpit (c), zum Flügel (h) oder willst du Zeugen befragen (z)? ") + if i == "c": + return 4 + if i == "f": + return 2 + if i == "z": + return 5 + else: + print("wrong, retry") + return 3 + + + +def zg(): + global stepscount + stepscount += 1 + if "zeugen" in visited: + print("""Du hast die Zeugen bereits befragt.""") + i = userinput("Wo willst du hin? Zum Cockpit (c), zum Flügel (f), zum Büro (b) oder zum Heck (h)? ") + if i == "c": + return 4 + if i == "b": + return 1 + if i == "f": + return 2 + if i == "h": + return 3 + else: + print("wrong, retry") + return 5 + else: + print(""" +Du machst dich auf den Weg in ein nahegelegenes Dorf, da du gehört hast, dass eine Person +den Absturz gesehen hat. + - Hallo. Sie haben den Absturz mitverfolgt? + - Ja habe ich. + - Wollen sie uns etwas darüber erzählen? + - Ja klar. Also. Ich war gerade auf dem Weg nach Hause, als ich ein Flugzeug hörte. Es war lauter + als sonst, deshalb schaute ich auf. Etwas schien ganz und gar nicht gut, denn plötzlich kippte + es zur Seite weg und stürzte vom Himmel. Einfach so. Eine riesige Explosion erschütterte unser Dorf. + - Vielen Dank. Sie haben mir geholfen. + + Du machst dich auf den Weg zurück zur Unfallstelle. Willst du dir direkt Gedanken über die + Aussagen machen? Dafür musst du ins Büro zurück. """) + inventory.append("zeugen") + time.sleep(1) + visited.append("zeugen") + i = userinput("Willst du zurück? (y/n)") + if i == 'y': + return 1 + elif i == 'n': + print("""Du willst also weitersuchen.""") + i = userinput("Wo willst du hin? Zum Cockpit (c), zum Heck (h) oder zum Flügel (f)? ") + if i == "c": + return 4 + if i == "h": + return 3 + if i == "f": + return 2 + else: + print("wrong, retry") + return 5 + + + +def co(): + global stepscount + stepscount += 1 + if "cockpit" in visited: + print("""Du hast das Cockpit bereits untersucht.""") + i = userinput("Wo willst du hin? Zum Heck (h), zum Flügel (f), zum Büro (b) oder willst du Zeugen befragen (z)? ") + if i == "h": + return 3 + if i == "b": + return 1 + if i == "f": + return 2 + if i == "z": + return 5 + else: + print("wrong, retry") + return 4 + else: + print(""" +Du näherst dich der Nase des Flugzeugs. Vorsichtig läufst du umher. Vor dir liegt ein Sensor. +Er scheint defekt zu sein. Du hebst ihn auf und lässt ihn in dein Büro bringen. +Du kannst zurück gehen und ihn untersuchen oder weitersuchen.""") + inventory.append("anstellwinkelsensor") + time.sleep(1) + visited.append("cockpit") + i = userinput("Willst du zurück? (y/n)") + if i == 'y': + return 1 + elif i == 'n': + print("""Du willst also weitersuchen.""") + i = userinput("Wo willst du hin? Zum Flügel (f), zum Heck (h) oder willst du Zeugen befragen (z)? ") + if i == "f": + return 2 + if i == "h": + return 3 + if i == "z": + return 5 + else: + print("wrong, retry") + return 4 + + + + +def main(): + cover() + einfuehrung() + grundriss() + global next + global exit + next = 1 + exit = 0 + while next != 0: + if next == 1: + next = eb() + elif next == 2: + next = fl() + elif next == 3: + next = hk() + elif next == 4: + next = co() + elif next == 5: + next = zg() + else: + print("an error occured. restart. Exit Code:", next) + next = 0 + exit = 0 + gameoverpossible() + if exit == 1: + abspann() + +main() \ No newline at end of file diff --git a/TextAdventure/Adventure_Template (1).py b/TextAdventure/Adventure_Template (1).py new file mode 100755 index 0000000..9bc8491 --- /dev/null +++ b/TextAdventure/Adventure_Template (1).py @@ -0,0 +1,871 @@ +import time + + +global inventory +inventory = [] + +global besucht +besucht = [] + + +def cover(): + print(""" + +▄▄▄█████▓ ██░ ██ ▓█████ ██░ ██ ▒█████ █ ██ ██████ ▓█████ +▓ ██▒ ▓▒▓██░ ██▒▓█ ▀ ▓██░ ██▒▒██▒ ██▒ ██ ▓██▒▒██ ▒ ▓█ ▀ +▒ ▓██░ ▒░▒██▀▀██░▒███ ▒██▀▀██░▒██░ ██▒▓██ ▒██░░ ▓██▄ ▒███ +░ ▓██▓ ░ ░▓█ ░██ ▒▓█ ▄ ░▓█ ░██ ▒██ ██░▓▓█ ░██░ ▒ ██▒▒▓█ ▄ + ▒██▒ ░ ░▓█▒░██▓░▒████▒ ░▓█▒░██▓░ ████▓▒░▒▒█████▓ ▒██████▒▒░▒████▒ + ▒ ░░ ▒ ░░▒░▒░░ ▒░ ░ ▒ ░░▒░▒░ ▒░▒░▒░ ░▒▓▒ ▒ ▒ ▒ ▒▓▒ ▒ ░░░ ▒░ ░ + ░ ▒ ░▒░ ░ ░ ░ ░ ▒ ░▒░ ░ ░ ▒ ▒░ ░░▒░ ░ ░ ░ ░▒ ░ ░ ░ ░ ░ + ░ ░ ░░ ░ ░ ░ ░░ ░░ ░ ░ ▒ ░░░ ░ ░ ░ ░ ░ ░ + ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ + + + +--------------------------------------------------------------------- + + """) + time.sleep(1) + + + +def gameover(): + print(""" + + + ▄████ ▄▄▄ ███▄ ▄███▓▓█████ ▒█████ ██▒ █▓▓█████ ██▀███ + ██▒ ▀█▒▒████▄ ▓██▒▀█▀ ██▒▓█ ▀ ▒██▒ ██▒▓██░ █▒▓█ ▀ ▓██ ▒ ██▒ +▒██░▄▄▄░▒██ ▀█▄ ▓██ ▓██░▒███ ▒██░ ██▒ ▓██ █▒░▒███ ▓██ ░▄█ ▒ +░▓█ ██▓░██▄▄▄▄██ ▒██ ▒██ ▒▓█ ▄ ▒██ ██░ ▒██ █░░▒▓█ ▄ ▒██▀▀█▄ +░▒▓███▀▒ ▓█ ▓██▒▒██▒ ░██▒░▒████▒ ░ ████▓▒░ ▒▀█░ ░▒████▒░██▓ ▒██▒ + ░▒ ▒ ▒▒ ▓▒█░░ ▒░ ░ ░░░ ▒░ ░ ░ ▒░▒░▒░ ░ ▐░ ░░ ▒░ ░░ ▒▓ ░▒▓░ + ░ ░ ▒ ▒▒ ░░ ░ ░ ░ ░ ░ ░ ▒ ▒░ ░ ░░ ░ ░ ░ ░▒ ░ ▒░ +░ ░ ░ ░ ▒ ░ ░ ░ ░ ░ ░ ▒ ░░ ░ ░░ ░ + ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ + ░ + + +------------------------------------------------------------------------- +""") + + +def regeln(): + print("Bevor wir starten, ein paar Anmerkungen.\n" + "Bitte alles was du schreibst IMMER in Kleibuchstaben verfassen.\n" + "Es wird immer MAXIMAL ein Wort benötigt.\n" + "Du hast einen Rucksack dabei, in dem du Dinge mitnehmen kannst.\n") + + time.sleep(1) + + +def einfuehrung(): + print("Es ist Freitag Nacht...\n" + + + "Du hast dich verlaufen und bist auf der Suche nach einer Unterkunft\n" + "für die kommende Nacht.\n" + "Du bist ganz auf dich alleine gestellt.\n" + "Wenn du nicht aufpasst, wirst du sterben.\n" + "Sei vorsichtig und überlege dir jede Entscheidung gut.\n" + "Es gibt kein Zurück!!\n" + + "Du bist ganz alleine an einer abgelegenen Strasse.\n" + "Es stürmt und ist eiskalt.\n" + "Plötzlich kommst du zu einem alten Haus.\n" + "Es sieht unheimlich aus.\n") + time.sleep(1) + +def grundriss(): + print (""" + DU BIST HIER + | + __________ ____|______ _______ ____ + | | | | | | + |Wohnzimmer|____| Flur |____|Schlafzimmer| + | | | | | | + |__ _____ _| |__ ______ _| |___ ___ ____| + | | + | | + | | + ____|____ ________ __ ______|_____ + | | | | | | + | Küche |____| Flur |____| Badezimmer | + | | | | | | + |__ _____ _| |__ ________| |_ __________| + | + | + | + _____|_ ____ + | | + | Keller | + | | + |_________ __| + + + +""") + time.sleep(1) + + + + + +def lageplan(): + print(""" + + _______ ___________ _______ ____ + | | | | | | + |Wohnzimmer|____| Flur |____|Schlafzimmer| + | | | | | | + |__ _____ _| |__ ______ _| |___ ___ ____| + | | + | | + | | + ____|____ ________ __ ______|_____ + | | | | | | + | Küche |____| Flur |____|Badezimmer | + | | | | | | + |__ _____ _| |__ ________| |_ __________| + | + | + | + _____|______ + | | + | Keller | + | | + |____________| + + + """) + + + + +def abspann(): + print(""" + + +▄▄▄█████▓ ██░ ██ ▓█████ ▓█████ ███▄ █ ▓█████▄ +▓ ██▒ ▓▒▓██░ ██▒▓█ ▀ ▓█ ▀ ██ ▀█ █ ▒██▀ ██▌ +▒ ▓██░ ▒░▒██▀▀██░▒███ ▒███ ▓██ ▀█ ██▒░██ █▌ +░ ▓██▓ ░ ░▓█ ░██ ▒▓█ ▄ ▒▓█ ▄ ▓██▒ ▐▌██▒░▓█▄ ▌ + ▒██▒ ░ ░▓█▒░██▓░▒████▒ ░▒████▒▒██░ ▓██░░▒████▓ + ▒ ░░ ▒ ░░▒░▒░░ ▒░ ░ ░░ ▒░ ░░ ▒░ ▒ ▒ ▒▒▓ ▒ + ░ ▒ ░▒░ ░ ░ ░ ░ ░ ░ ░░ ░░ ░ ▒░ ░ ▒ ▒ + ░ ░ ░░ ░ ░ ░ ░ ░ ░ ░ ░ ░ + ░ ░ ░ ░ ░ ░ ░ ░ ░ + ░ +----------------------------------------------------- + + +""") + + + +def Eintreten(): + aktion = input('Willst Du eintreten oder weglaufen?').lower() + + if aktion == 'eintreten': + flur1() + + elif aktion == 'weglaufen': + print("\n" + "Du läufst davon voller Angst... \n" + "Doch schon nach kurzer Zeit wird dir bewusst...\n" + "Du musst zurück wenn du diese Nacht überleben willst.\n") + time.sleep(1) + Eintreten() + + else: + print("Dieser Befgehl ist mir leider nicht bekannt :/\n" + "Bitte erneut versuchen\n") + time.sleep(2) + Eintreten() + + +def Mord(): + print("\n" + "Du rennst so schnell du kannst zum Flur. \n" + "Du willst die Türe aufreissen und weglaufen.\n" + "Doch die Türe ist verschlossen!\n" + "Plötzlich spürst du das jemand hinter dir steht... \n" + "...du drehst langsam deinen Kopf\n" + "Die schwarze Gestalt steht hinter dir!\n" + "Sie ist voller Blut und lacht laut und bevor du reagieren kannst...\n" + "...sticht sie dir ein Messer kaltblütig in die Brust!\n") + time.sleep(5) + gameover() + +def schock(): + print("Du öffnest neugierig den Duschvorhang.\n" + "Die Badewanne.. sie.. sie ist.. voller Blut!\n" + "Du schreist und hast Angst. Du willst nur noch weg hier!\n" + "Doch nach kurzer Zeit fällt dir neben der Wanne etwas auf...\n" + "...ist das ein Schlüssel?") + + h = input('Schlüssel aufheben oder liegen lassen?').lower() + + if h == "aufheben": + inventory.append("schlüssel") + badezimmer() + + + if h == "lassen": + badezimmer() + + else: + print("Dieser Befehl ist mir leider nicht bekannt :/\n" + "Bitte erneut versuchen.\n") + time.sleep(2) + schock() + +def flur2(): + print("Du stehst erneut auf einem Flur...\n" + "Er sieht aber anderst aus als der beim Hauseingang.\n" + "Deutlich düsterer... und eine Tür die in einen anderen Raum führt.\n" + "In den Keller vielleicht?\n") + + i = input("Willst du die Türe öffnen?").lower() + + if i == "nein": + flur3() + + + if i == "ja": + + if "schlüssel" in inventory: + inventory.remove("schlüssel") + treppe() + + else: + print("Die Türe scheint verschlossen zu sein.\n" + "Du brauchst einen Schlüssel um diesen Raum zu betreten.\n") + + time.sleep(3) + lageplan() + + j = input("Wohin willst du?").lower() + + + + if j == "badezimmer": + if "ja" in besucht: + badezimmer1() + + else: + badezimmer() + + if j == "küche": + kueche() + + else: + print("Dieser Befgehl ist mir leider nicht bekannt :/\n" + "Bitte erneut versuchen\n") + time.sleep(2) + flur1() + + + + + + +def flur1(): + inventory.append("lampe") + print("\n" + "(Du findest eine Lampe und steckst sie in dein Inventar)\n" + "Du stehst auf einem Flur.\n" + "Das Haus sieht alt und verlassen aus.\n" + "Doch plötzlich hörst du etwas...\n" + "Schritte vielleicht?\n") + + d = input("Willst du im Schlafzimmer oder im Wohnzimmer nachsehen?").lower() + + if d == "schlafzimmer": + schlafzimmer1() + + if d == "wohnzimmer": + wohnzimmer1() + + else: + print("Dieser Befgehl ist mir leider nicht bekannt :/\n" + "Bitte erneut versuchen.\n") + time.sleep(2) + flur1() + + +def flur(): + + print("Du bist nun auf dem Flur.\n") + + f = input("Wohin willst du?").lower() + lageplan() + + + if f == "schlafzimmer": + schlafzimmer() + + if f == "wohnzimmer": + wohnzimmer() + + else: + + print("Du kannst diesen Raum nicht direkt betreten.\n") + flur() + +def flur3(): + + print("Du bist nun auf dem Flur.\n") + + + if "schlüssel" in inventory: + + q = input("Willst du die Türe öffnen?") + + if q == "ja": + if "schlüssel" in inventory: + treppe() + + else: + print("Du brauchst einen Schlüssel um diese Türe zu öffnen.\n") + + if q == "nein": + + + time.sleep(3) + lageplan() + f = input("Wohin willst du?").lower() + + + if f == "badezimmer": + if "ja" in besucht: + badezimmer() + + else: + badezimmer1() + + if f == "küche": + kueche() + + else: + print("Du kannst diesen Raum nicht direkt betreten.\n") + flur3() + + else: + lageplan() + f = input("Wohin willst du?").lower() + + + if f == "badezimmer": + if "ja" in besucht: + badezimmer() + + else: + badezimmer1() + + if f == "küche": + kueche() + + else: + print("Du kannst diesen Raum nicht direkt betreten.\n") + flur3() + + + +def kueche(): + + print("Du bist nun in der Küche.\n" + "Von der schwarzen Gestalt ist nichts zu sehen.\n" + "Auf der Ablage liegt ein Messer.\n") + + time.sleep(2) + + p = input("Willst du das Messer aufheben? Es könnte sich später noch für Nützlich erweisen.\n") + + if p == "ja": + inventory.append("messer") + + + if p == "nein": + print("ok") + + + kueche1() + +def kueche1(): + + print("Du bist nun in der Küche.\n") + + time.sleep(2) + lageplan() + x = input("Wohin willst du?").lower() + + + if x == "flur": + flur2() + + if x == "wohnzimmer": + wohnzimmer() + + else: + + print("Du kannst diesen Raum nicht direkt betreten.\n") + kueche() + +def schlafzimmer(): + + print("Du bist nun im Schlafzimmer.\n") + + e = input("Wohin willst du?").lower() + lageplan() + + if e == "badezimmer": + if "ja" in besucht: + badezimmer() + + else: + badezimmer1() + + if e == "flur": + flur() + + else: + + print("Du kannst diesen Raum nicht direkt betreten.\n") + schlafzimmer() + +def wohnzimmer(): + + print("Du bist nun im Wohnzimmer.\n") + + f = input("Wohin willst du?").lower() + lageplan() + + if f == "flur": + flur() + + if f == "küche": + kueche() + + else: + print("Du kannst diesen Raum nicht direkt betreten.\n") + wohnzimmer() + + +def badezimmer2(): + + if "ja" in besucht: + + badezimmer() + + + else: + + print("Du bist nun im Badezimmer.\n") + + e = input("Wohin willst du?").lower() + lageplan() + + if e == "flur": + flur3() + + if e == "schlafzimmer": + schlafzimmer() + + else: + + print("Du kannst diesen Raum nicht direkt betreten.\n") + badezimmer() + + +def badezimmer(): + + print("Du bist nun im Badezimmer.\n") + + if "schlüssel" != inventory: + + w = input("Willst du den Schlüssel aufheben?").lower() + + if w == "ja": + inventory.append("schlüssel") + + else: + print("ok") + + + e = input("Wohin willst du?").lower() + lageplan() + + if e == "flur": + flur3() + + if e == "schlafzimmer": + schlafzimmer() + + else: + + print("Du kannst diesen Raum nicht direkt betreten.\n") + badezimmer() + + +def badezimmer1(): + + besucht.append("ja") + print("Du öffnest die Türe zum Bad ganz leise.\n" + "Du hoffst, dass die schwarze Gestalt nichts gehört hat.\n" + "Etwas ängstlich betrittst du nun das Badezimmer.\n" + "Viel gibt es nicht zu sehen in diesem Badezimmer\n" + "Eine Toilette, ein Spiegel und eine Badewanne\n" + "Der Duschvorhang der Badewanne ist zu\n") + + g = input("Willst du ihn öffnen?").lower() + + if g == "ja": + schock() + + if g == "nein": + badezimmer2() + + else: + print("Dieser Befgehl ist mir leider nicht bekannt :/\n" + "Bitte erneut versuchen\n") + badezimmer1() + + + +def schlafzimmer1(): + + print("\n" + "Du öffnest die Schlafzimmertüre langsam.\n" + "Die Türe aber knirscht und lässt sich nur schwer öffnen.\n" + "Nun betrittst du das alte und verlassene SChlafzimmer.\n" + "Du siehst dich etwas um.\n" + "Am Boden hinter dem Bett siehst du etwas.\n" + "Flecken viellei... HILFE!!!!!\n" + "Jemand schrie um Hilfe? Und die Flecken - es ist Blut!!\n") + + a = input("Willst du flüchten oder dem Hilferuf folgen?").lower() + + if a == "flüchten": + + print("\n" + "Du entschliesst dich zu flüchten.\n" + "Du hast Todesangst\n") + Mord() + + if a == "folgen": + wohnzimmer1() + + else: + print("Dieser Befgehl ist mir leider nicht bekannt :/\n" + "Bitte erneut versuchen\n") + time.sleep(2) + schlafzimmer1() + + +def wohnzimmer1(): + + print("\n" + "Du gehst aufmerksam ins Wohnzimmer.\n" + "Du blickst umher.\n" + "Da links! Eine schwarze Gestalt steht im nächsten Zimmer!\n" + "Geschockt bleibst du stehen und planst dein weiteres Vorgehen.\n") + + b = input("Willst du die Situation beobachten oder flüchten?").lower() + + if b == "flüchten": + Mord() + + if b == "beobachten": + print("\n" + "Schockiert erkennst du, dass die schwarze Gestalt ein Messer hat.\n" + "Sie lacht auf eine psychopathische Art und Weise und läuft umher.\n" + "Sucht sie etwas? Oder jemanden?\n" + "Mich vielleicht?\n" + "Es sieht so aus als würde sie im nächsten Raum verschwinden.\n") + + time.sleep(5) + lageplan() + + c = input("Wohin willst du?").lower() + + if c == "flur": + flur() + + + if c == "küche": + kueche() + + + else: + print("Du kannst diesen Raum nicht direkt betreten.\n") + wohnzimmer1() + + else: + print("Dieser Befgehl ist mir leider nicht bekannt :/\n" + "Bitte erneut versuchen\n") + time.sleep(2) + wohnzimmer1() + + +def treppe(): + + print("Du öffnest die Türe möglichst leise.\n" + "Zu deiner Erleichterung öffnet sich die Türe ruhig.\n" + "Vor dir siehst du eine Treppe.\n" + "Sie führt nach unten... in den Keller wahrscheinlich.\n") + + k = input("Willst du den Keller betreten?") + + if k == "ja": + keller1() + + + if k == "nein": + schlüssel = 1 + flur3() + + + else: + print("Dieser Befehl ist mir leider nicht bekannt :/\n" + "Bitte erneut versuchen.\n") + treppe() + +def keller1(): + + print("Schleichend gehst du die dunkle, alte Treppe hinunter\n" + "Zu deinem Pech knirscht das alte Holz unter deinen Füssen\n" + "Unten angekommen siehst du dich etwas um.\n" + "Ein Schrank, ein altes Bett und viele alte Schachteln stehen herum.\n" + "Ein komischer Geruch kommt dir in die Nase...\n" + "...woher der wohl kommen mag?\n" + "Aus dem Schranz läuft etwas heraus...\n" + "...wegen der Dunkelheit erkennst du nicht wases ist.\n") + + l = input("Willst du im Schrank nachschauen?").lower() + + if l == "ja": + schrank1() + + if l == "nein": + schrank2() + + +def schrank2(): + print( + "Du hörst plötzlich ein Lachen.\n" + "Die schwarze Gestalt!!!\n" + "Und du hast keine Möglichkeit zu flüchten!\n" + "Das knirschen der Treppen wird immer lauter.\n" + "Du musst dich verstecken. Schnell!!!\n") + + + + + time.sleep(3) + + o = input("Wo willst du dich verstecken?\n" + "Hinter den Schachteln oder unter dem Bett?").lower() + + + if o == "bett": + bett() + + + if o == "schachteln": + schachteln() + + + else: + print("Diese Möglichkeit steht nicht zur Auswahl.\n" + "Bitte überprüfe deine Antwort nochmals.\n") + schrank2() + + + +def schrank1(): + + print("Du öffnest den Schrank.\n" + "AHHHHHH!! Eine Leiche!! Und Blut! Überall Blut!!\n" + "Als wäre das nicht schon genug, hörst du plötzlich ein Lachen\n" + "Die schwarze Gestalt!!!\n" + "Und du hast keine Möglichkeit zu flüchten!\n" + "Das knirschen der Treppen wird immer lauter.\n" + "Du musst dich verstecken. Schnell!!!\n") + + + time.sleep(3) + + m = input("Wo willst du dich verstecken?\n" + "Im Schrank, hinter den Schachteln oder unter dem Bett?\n").lower() + + if m == "schrank": + schrank() + + + if m == "bett": + bett() + + + if m == "schachteln": + schachteln() + + + else: + print("Diese Möglichkeit steht nicht zur Auswahl.\n" + "Bitte überprüfe deine Antwort nochmals.\n") + schrank1() + + +def schrank(): + print("Du hast entschieden dich im Schrank zu verstecken.\n" + "In dem Schrank in dem auch die Leiche ist.\n" + "Ob das wohl die Richtige entscheidung war?\n") + ende1() + + + + +def bett(): + print("Du hast dich für das Bett entschieden\n" + "Unter dem Bett liegt ein Teppich\n" + "Ob da wohl etwas darunter ist, dass versteckt werden muss?\n") + ende2() + + + + +def schachteln(): + print("Du hast dich für die Schachteln entschieden\n" + "Du machst dich so klein wie möglich und hoffst nicht entdeckt zu werden\n" + "Durch einen Spalt bei den Schachteln siehst du auf das Bett\n" + "Darunter fällt dir ein Teppich auf.\n" + "Es sieht aus als wäre darunter etwas versteckt.\n") + ende3() + + +def ende1(): + + print("Du drückst dich an den Schrank und bist so leise wie nur möglich.\n" + "Du hörst wie die schwarze Gestalt immer und immer näher kommt.\n" + "Sie lacht laut und sucht dich überall.\n" + "Sie kommt näher zum Schrank mit dem Messer voran.\n" + "Dann bleibt sie stehen.\n" + "Langsam öffnet sie die Schranktür.\n" + "Du blickst ihr direkt in die Augen.\n" + "Du schreist aber sie zeigt keine Gnade und ersticht dich kaltblütig.\n") + gameover() + + + +def ende2(): + + print("Die schwarze Gestalt ist im Keller.\n" + "Du hast Todesangst. Sie sucht dich überall.\n" + "Du erinnerst dich an das Messer welches du im Badezimmer gefunden hast.\n") + + n = input("Willst du mit dem Messer den Teppich aufschneiden?") + + if n == "ja": + + if "messer" in inventory: + + inventory.remove("messer") + flucht() + + else: + mord2() + + + if n == "nein": + print("Du hast keine andere wahl. Schneide den Teppich auf!!!") + ende2() + + else: + print("Antworte bitte mit ja oder nein.") + ende2() + + + + +def ende3(): + + print("Du hörst wie die schwarze Gestalt den Keller betretet.\n" + "Voller Angst überlegst du wie du flüchten könntest.\n" + "Die schwarze Gestalt sucht dich überall.\n" + "Sie kommt langsam aber stetig immer näher zu den Schachteln.\n" + "Als die schwarze Gestalt einen kurzen Moment weg schaut,\n" + "läufst du so schnell du kannst zum Bett und versteckst dich dort\n") + + ende2() + + +def mord2(): + print("Du hast kein Messer in deinem Rucksack.\n" + "Da du das Messer ohne Erfolg gesucht hast,\n" + "wurde die schwarze Gestalt auf dich aufmerksam.\n" + "Sie kommt immer näher in Richtung Bett und du hast\n" + "keine Möglichkeit mehr dich zu verstecken.\n" + "Die schwarze Gestalt zieht das Bett weg und sieht dir tief in die Augen.\n" + "Du schaust sie hilfeschreiend an aber das ist ihr egal.\n" + "Sie lacht laut los und sticht dir langsam mit dem Messer in die Brust.\n" + "Du verlierst das Bewusstsein und das letzte was du noch hörst,\n" + "ist das psychopathische Lachen.\n") + gameover() + + + +def flucht(): + print("Unter dem Teppich ist tatsächlich etwas.\n" + "Eine geheime Öffnung im Boden!! Vielleicht ein Weg der hier weg führt?\n" + "Du Öffnest die Falltüre und springst nach unten.\n" + "Tatsächlich! Es sieht aus wie ein langer Gang\n" + "Das Problem ist nur... es ist stock dunkel.\n") + + o = input("Nimm deine Lampe und zünde sie an! (lampe nehmen)\n") + + if o == "lampe nehmen": + inventory.remove("lampe") + print("Du siehst nun genug für deine Flucht!\n") + wegvonhier() + + else: + print("Dieser Befehl kenne ich leider nicht :/\n" + "Bitte erneut versuchen.\n") + + +def wegvonhier(): + print("Hinter dir hörst du schonwieder das Lachen der schwarzen Gestalt.\n" + "Du rennst so schnell du kannst!\n" + "Es ist kalt und nass in diesem Tunnel aber dir bleibt nichts anderes übrig.\n" + "Hier! Eine Leiter!\n" + "Du steigst die Leiter nach oben und öffnest die Falltüre.\n" + "Die schwarze Gestalt kommt immer näher!\n" + "Du kletterst hinaus und schliesst die Türe wieder.\n") + glückwunsch() + + + +def glückwunsch(): + print("Gratuliere!!! Du hast die Nacht überlebt und einen Ausweg aus dem Haus gefunden!\n" + "Du bist nun in einem Wald.\n" + "Nach langem umherirren hast du ein Dorf gefunden.\n" + "Die Leute dort waren sehr freundlich und haben dich zurück zu deinem Haus gebracht.\n" + "Zuhause hast du alles der Polizei erzählt.\n" + "Als die Polizei ankam war das Haus nicht mehr dort.\n" + "Ein Berg aus SChutt und Asche ist übrig geblieben.\n" + "Die schwarze Gestalt wurde bis heute nicht gefunden.\n") + abspann() + + + + +def main(): + cover() + regeln() + einfuehrung() + grundriss() + Eintreten() + + +main() \ No newline at end of file diff --git a/TextAdventure/Adventure_Template (2).py b/TextAdventure/Adventure_Template (2).py new file mode 100755 index 0000000..9bc8491 --- /dev/null +++ b/TextAdventure/Adventure_Template (2).py @@ -0,0 +1,871 @@ +import time + + +global inventory +inventory = [] + +global besucht +besucht = [] + + +def cover(): + print(""" + +▄▄▄█████▓ ██░ ██ ▓█████ ██░ ██ ▒█████ █ ██ ██████ ▓█████ +▓ ██▒ ▓▒▓██░ ██▒▓█ ▀ ▓██░ ██▒▒██▒ ██▒ ██ ▓██▒▒██ ▒ ▓█ ▀ +▒ ▓██░ ▒░▒██▀▀██░▒███ ▒██▀▀██░▒██░ ██▒▓██ ▒██░░ ▓██▄ ▒███ +░ ▓██▓ ░ ░▓█ ░██ ▒▓█ ▄ ░▓█ ░██ ▒██ ██░▓▓█ ░██░ ▒ ██▒▒▓█ ▄ + ▒██▒ ░ ░▓█▒░██▓░▒████▒ ░▓█▒░██▓░ ████▓▒░▒▒█████▓ ▒██████▒▒░▒████▒ + ▒ ░░ ▒ ░░▒░▒░░ ▒░ ░ ▒ ░░▒░▒░ ▒░▒░▒░ ░▒▓▒ ▒ ▒ ▒ ▒▓▒ ▒ ░░░ ▒░ ░ + ░ ▒ ░▒░ ░ ░ ░ ░ ▒ ░▒░ ░ ░ ▒ ▒░ ░░▒░ ░ ░ ░ ░▒ ░ ░ ░ ░ ░ + ░ ░ ░░ ░ ░ ░ ░░ ░░ ░ ░ ▒ ░░░ ░ ░ ░ ░ ░ ░ + ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ + + + +--------------------------------------------------------------------- + + """) + time.sleep(1) + + + +def gameover(): + print(""" + + + ▄████ ▄▄▄ ███▄ ▄███▓▓█████ ▒█████ ██▒ █▓▓█████ ██▀███ + ██▒ ▀█▒▒████▄ ▓██▒▀█▀ ██▒▓█ ▀ ▒██▒ ██▒▓██░ █▒▓█ ▀ ▓██ ▒ ██▒ +▒██░▄▄▄░▒██ ▀█▄ ▓██ ▓██░▒███ ▒██░ ██▒ ▓██ █▒░▒███ ▓██ ░▄█ ▒ +░▓█ ██▓░██▄▄▄▄██ ▒██ ▒██ ▒▓█ ▄ ▒██ ██░ ▒██ █░░▒▓█ ▄ ▒██▀▀█▄ +░▒▓███▀▒ ▓█ ▓██▒▒██▒ ░██▒░▒████▒ ░ ████▓▒░ ▒▀█░ ░▒████▒░██▓ ▒██▒ + ░▒ ▒ ▒▒ ▓▒█░░ ▒░ ░ ░░░ ▒░ ░ ░ ▒░▒░▒░ ░ ▐░ ░░ ▒░ ░░ ▒▓ ░▒▓░ + ░ ░ ▒ ▒▒ ░░ ░ ░ ░ ░ ░ ░ ▒ ▒░ ░ ░░ ░ ░ ░ ░▒ ░ ▒░ +░ ░ ░ ░ ▒ ░ ░ ░ ░ ░ ░ ▒ ░░ ░ ░░ ░ + ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ + ░ + + +------------------------------------------------------------------------- +""") + + +def regeln(): + print("Bevor wir starten, ein paar Anmerkungen.\n" + "Bitte alles was du schreibst IMMER in Kleibuchstaben verfassen.\n" + "Es wird immer MAXIMAL ein Wort benötigt.\n" + "Du hast einen Rucksack dabei, in dem du Dinge mitnehmen kannst.\n") + + time.sleep(1) + + +def einfuehrung(): + print("Es ist Freitag Nacht...\n" + + + "Du hast dich verlaufen und bist auf der Suche nach einer Unterkunft\n" + "für die kommende Nacht.\n" + "Du bist ganz auf dich alleine gestellt.\n" + "Wenn du nicht aufpasst, wirst du sterben.\n" + "Sei vorsichtig und überlege dir jede Entscheidung gut.\n" + "Es gibt kein Zurück!!\n" + + "Du bist ganz alleine an einer abgelegenen Strasse.\n" + "Es stürmt und ist eiskalt.\n" + "Plötzlich kommst du zu einem alten Haus.\n" + "Es sieht unheimlich aus.\n") + time.sleep(1) + +def grundriss(): + print (""" + DU BIST HIER + | + __________ ____|______ _______ ____ + | | | | | | + |Wohnzimmer|____| Flur |____|Schlafzimmer| + | | | | | | + |__ _____ _| |__ ______ _| |___ ___ ____| + | | + | | + | | + ____|____ ________ __ ______|_____ + | | | | | | + | Küche |____| Flur |____| Badezimmer | + | | | | | | + |__ _____ _| |__ ________| |_ __________| + | + | + | + _____|_ ____ + | | + | Keller | + | | + |_________ __| + + + +""") + time.sleep(1) + + + + + +def lageplan(): + print(""" + + _______ ___________ _______ ____ + | | | | | | + |Wohnzimmer|____| Flur |____|Schlafzimmer| + | | | | | | + |__ _____ _| |__ ______ _| |___ ___ ____| + | | + | | + | | + ____|____ ________ __ ______|_____ + | | | | | | + | Küche |____| Flur |____|Badezimmer | + | | | | | | + |__ _____ _| |__ ________| |_ __________| + | + | + | + _____|______ + | | + | Keller | + | | + |____________| + + + """) + + + + +def abspann(): + print(""" + + +▄▄▄█████▓ ██░ ██ ▓█████ ▓█████ ███▄ █ ▓█████▄ +▓ ██▒ ▓▒▓██░ ██▒▓█ ▀ ▓█ ▀ ██ ▀█ █ ▒██▀ ██▌ +▒ ▓██░ ▒░▒██▀▀██░▒███ ▒███ ▓██ ▀█ ██▒░██ █▌ +░ ▓██▓ ░ ░▓█ ░██ ▒▓█ ▄ ▒▓█ ▄ ▓██▒ ▐▌██▒░▓█▄ ▌ + ▒██▒ ░ ░▓█▒░██▓░▒████▒ ░▒████▒▒██░ ▓██░░▒████▓ + ▒ ░░ ▒ ░░▒░▒░░ ▒░ ░ ░░ ▒░ ░░ ▒░ ▒ ▒ ▒▒▓ ▒ + ░ ▒ ░▒░ ░ ░ ░ ░ ░ ░ ░░ ░░ ░ ▒░ ░ ▒ ▒ + ░ ░ ░░ ░ ░ ░ ░ ░ ░ ░ ░ ░ + ░ ░ ░ ░ ░ ░ ░ ░ ░ + ░ +----------------------------------------------------- + + +""") + + + +def Eintreten(): + aktion = input('Willst Du eintreten oder weglaufen?').lower() + + if aktion == 'eintreten': + flur1() + + elif aktion == 'weglaufen': + print("\n" + "Du läufst davon voller Angst... \n" + "Doch schon nach kurzer Zeit wird dir bewusst...\n" + "Du musst zurück wenn du diese Nacht überleben willst.\n") + time.sleep(1) + Eintreten() + + else: + print("Dieser Befgehl ist mir leider nicht bekannt :/\n" + "Bitte erneut versuchen\n") + time.sleep(2) + Eintreten() + + +def Mord(): + print("\n" + "Du rennst so schnell du kannst zum Flur. \n" + "Du willst die Türe aufreissen und weglaufen.\n" + "Doch die Türe ist verschlossen!\n" + "Plötzlich spürst du das jemand hinter dir steht... \n" + "...du drehst langsam deinen Kopf\n" + "Die schwarze Gestalt steht hinter dir!\n" + "Sie ist voller Blut und lacht laut und bevor du reagieren kannst...\n" + "...sticht sie dir ein Messer kaltblütig in die Brust!\n") + time.sleep(5) + gameover() + +def schock(): + print("Du öffnest neugierig den Duschvorhang.\n" + "Die Badewanne.. sie.. sie ist.. voller Blut!\n" + "Du schreist und hast Angst. Du willst nur noch weg hier!\n" + "Doch nach kurzer Zeit fällt dir neben der Wanne etwas auf...\n" + "...ist das ein Schlüssel?") + + h = input('Schlüssel aufheben oder liegen lassen?').lower() + + if h == "aufheben": + inventory.append("schlüssel") + badezimmer() + + + if h == "lassen": + badezimmer() + + else: + print("Dieser Befehl ist mir leider nicht bekannt :/\n" + "Bitte erneut versuchen.\n") + time.sleep(2) + schock() + +def flur2(): + print("Du stehst erneut auf einem Flur...\n" + "Er sieht aber anderst aus als der beim Hauseingang.\n" + "Deutlich düsterer... und eine Tür die in einen anderen Raum führt.\n" + "In den Keller vielleicht?\n") + + i = input("Willst du die Türe öffnen?").lower() + + if i == "nein": + flur3() + + + if i == "ja": + + if "schlüssel" in inventory: + inventory.remove("schlüssel") + treppe() + + else: + print("Die Türe scheint verschlossen zu sein.\n" + "Du brauchst einen Schlüssel um diesen Raum zu betreten.\n") + + time.sleep(3) + lageplan() + + j = input("Wohin willst du?").lower() + + + + if j == "badezimmer": + if "ja" in besucht: + badezimmer1() + + else: + badezimmer() + + if j == "küche": + kueche() + + else: + print("Dieser Befgehl ist mir leider nicht bekannt :/\n" + "Bitte erneut versuchen\n") + time.sleep(2) + flur1() + + + + + + +def flur1(): + inventory.append("lampe") + print("\n" + "(Du findest eine Lampe und steckst sie in dein Inventar)\n" + "Du stehst auf einem Flur.\n" + "Das Haus sieht alt und verlassen aus.\n" + "Doch plötzlich hörst du etwas...\n" + "Schritte vielleicht?\n") + + d = input("Willst du im Schlafzimmer oder im Wohnzimmer nachsehen?").lower() + + if d == "schlafzimmer": + schlafzimmer1() + + if d == "wohnzimmer": + wohnzimmer1() + + else: + print("Dieser Befgehl ist mir leider nicht bekannt :/\n" + "Bitte erneut versuchen.\n") + time.sleep(2) + flur1() + + +def flur(): + + print("Du bist nun auf dem Flur.\n") + + f = input("Wohin willst du?").lower() + lageplan() + + + if f == "schlafzimmer": + schlafzimmer() + + if f == "wohnzimmer": + wohnzimmer() + + else: + + print("Du kannst diesen Raum nicht direkt betreten.\n") + flur() + +def flur3(): + + print("Du bist nun auf dem Flur.\n") + + + if "schlüssel" in inventory: + + q = input("Willst du die Türe öffnen?") + + if q == "ja": + if "schlüssel" in inventory: + treppe() + + else: + print("Du brauchst einen Schlüssel um diese Türe zu öffnen.\n") + + if q == "nein": + + + time.sleep(3) + lageplan() + f = input("Wohin willst du?").lower() + + + if f == "badezimmer": + if "ja" in besucht: + badezimmer() + + else: + badezimmer1() + + if f == "küche": + kueche() + + else: + print("Du kannst diesen Raum nicht direkt betreten.\n") + flur3() + + else: + lageplan() + f = input("Wohin willst du?").lower() + + + if f == "badezimmer": + if "ja" in besucht: + badezimmer() + + else: + badezimmer1() + + if f == "küche": + kueche() + + else: + print("Du kannst diesen Raum nicht direkt betreten.\n") + flur3() + + + +def kueche(): + + print("Du bist nun in der Küche.\n" + "Von der schwarzen Gestalt ist nichts zu sehen.\n" + "Auf der Ablage liegt ein Messer.\n") + + time.sleep(2) + + p = input("Willst du das Messer aufheben? Es könnte sich später noch für Nützlich erweisen.\n") + + if p == "ja": + inventory.append("messer") + + + if p == "nein": + print("ok") + + + kueche1() + +def kueche1(): + + print("Du bist nun in der Küche.\n") + + time.sleep(2) + lageplan() + x = input("Wohin willst du?").lower() + + + if x == "flur": + flur2() + + if x == "wohnzimmer": + wohnzimmer() + + else: + + print("Du kannst diesen Raum nicht direkt betreten.\n") + kueche() + +def schlafzimmer(): + + print("Du bist nun im Schlafzimmer.\n") + + e = input("Wohin willst du?").lower() + lageplan() + + if e == "badezimmer": + if "ja" in besucht: + badezimmer() + + else: + badezimmer1() + + if e == "flur": + flur() + + else: + + print("Du kannst diesen Raum nicht direkt betreten.\n") + schlafzimmer() + +def wohnzimmer(): + + print("Du bist nun im Wohnzimmer.\n") + + f = input("Wohin willst du?").lower() + lageplan() + + if f == "flur": + flur() + + if f == "küche": + kueche() + + else: + print("Du kannst diesen Raum nicht direkt betreten.\n") + wohnzimmer() + + +def badezimmer2(): + + if "ja" in besucht: + + badezimmer() + + + else: + + print("Du bist nun im Badezimmer.\n") + + e = input("Wohin willst du?").lower() + lageplan() + + if e == "flur": + flur3() + + if e == "schlafzimmer": + schlafzimmer() + + else: + + print("Du kannst diesen Raum nicht direkt betreten.\n") + badezimmer() + + +def badezimmer(): + + print("Du bist nun im Badezimmer.\n") + + if "schlüssel" != inventory: + + w = input("Willst du den Schlüssel aufheben?").lower() + + if w == "ja": + inventory.append("schlüssel") + + else: + print("ok") + + + e = input("Wohin willst du?").lower() + lageplan() + + if e == "flur": + flur3() + + if e == "schlafzimmer": + schlafzimmer() + + else: + + print("Du kannst diesen Raum nicht direkt betreten.\n") + badezimmer() + + +def badezimmer1(): + + besucht.append("ja") + print("Du öffnest die Türe zum Bad ganz leise.\n" + "Du hoffst, dass die schwarze Gestalt nichts gehört hat.\n" + "Etwas ängstlich betrittst du nun das Badezimmer.\n" + "Viel gibt es nicht zu sehen in diesem Badezimmer\n" + "Eine Toilette, ein Spiegel und eine Badewanne\n" + "Der Duschvorhang der Badewanne ist zu\n") + + g = input("Willst du ihn öffnen?").lower() + + if g == "ja": + schock() + + if g == "nein": + badezimmer2() + + else: + print("Dieser Befgehl ist mir leider nicht bekannt :/\n" + "Bitte erneut versuchen\n") + badezimmer1() + + + +def schlafzimmer1(): + + print("\n" + "Du öffnest die Schlafzimmertüre langsam.\n" + "Die Türe aber knirscht und lässt sich nur schwer öffnen.\n" + "Nun betrittst du das alte und verlassene SChlafzimmer.\n" + "Du siehst dich etwas um.\n" + "Am Boden hinter dem Bett siehst du etwas.\n" + "Flecken viellei... HILFE!!!!!\n" + "Jemand schrie um Hilfe? Und die Flecken - es ist Blut!!\n") + + a = input("Willst du flüchten oder dem Hilferuf folgen?").lower() + + if a == "flüchten": + + print("\n" + "Du entschliesst dich zu flüchten.\n" + "Du hast Todesangst\n") + Mord() + + if a == "folgen": + wohnzimmer1() + + else: + print("Dieser Befgehl ist mir leider nicht bekannt :/\n" + "Bitte erneut versuchen\n") + time.sleep(2) + schlafzimmer1() + + +def wohnzimmer1(): + + print("\n" + "Du gehst aufmerksam ins Wohnzimmer.\n" + "Du blickst umher.\n" + "Da links! Eine schwarze Gestalt steht im nächsten Zimmer!\n" + "Geschockt bleibst du stehen und planst dein weiteres Vorgehen.\n") + + b = input("Willst du die Situation beobachten oder flüchten?").lower() + + if b == "flüchten": + Mord() + + if b == "beobachten": + print("\n" + "Schockiert erkennst du, dass die schwarze Gestalt ein Messer hat.\n" + "Sie lacht auf eine psychopathische Art und Weise und läuft umher.\n" + "Sucht sie etwas? Oder jemanden?\n" + "Mich vielleicht?\n" + "Es sieht so aus als würde sie im nächsten Raum verschwinden.\n") + + time.sleep(5) + lageplan() + + c = input("Wohin willst du?").lower() + + if c == "flur": + flur() + + + if c == "küche": + kueche() + + + else: + print("Du kannst diesen Raum nicht direkt betreten.\n") + wohnzimmer1() + + else: + print("Dieser Befgehl ist mir leider nicht bekannt :/\n" + "Bitte erneut versuchen\n") + time.sleep(2) + wohnzimmer1() + + +def treppe(): + + print("Du öffnest die Türe möglichst leise.\n" + "Zu deiner Erleichterung öffnet sich die Türe ruhig.\n" + "Vor dir siehst du eine Treppe.\n" + "Sie führt nach unten... in den Keller wahrscheinlich.\n") + + k = input("Willst du den Keller betreten?") + + if k == "ja": + keller1() + + + if k == "nein": + schlüssel = 1 + flur3() + + + else: + print("Dieser Befehl ist mir leider nicht bekannt :/\n" + "Bitte erneut versuchen.\n") + treppe() + +def keller1(): + + print("Schleichend gehst du die dunkle, alte Treppe hinunter\n" + "Zu deinem Pech knirscht das alte Holz unter deinen Füssen\n" + "Unten angekommen siehst du dich etwas um.\n" + "Ein Schrank, ein altes Bett und viele alte Schachteln stehen herum.\n" + "Ein komischer Geruch kommt dir in die Nase...\n" + "...woher der wohl kommen mag?\n" + "Aus dem Schranz läuft etwas heraus...\n" + "...wegen der Dunkelheit erkennst du nicht wases ist.\n") + + l = input("Willst du im Schrank nachschauen?").lower() + + if l == "ja": + schrank1() + + if l == "nein": + schrank2() + + +def schrank2(): + print( + "Du hörst plötzlich ein Lachen.\n" + "Die schwarze Gestalt!!!\n" + "Und du hast keine Möglichkeit zu flüchten!\n" + "Das knirschen der Treppen wird immer lauter.\n" + "Du musst dich verstecken. Schnell!!!\n") + + + + + time.sleep(3) + + o = input("Wo willst du dich verstecken?\n" + "Hinter den Schachteln oder unter dem Bett?").lower() + + + if o == "bett": + bett() + + + if o == "schachteln": + schachteln() + + + else: + print("Diese Möglichkeit steht nicht zur Auswahl.\n" + "Bitte überprüfe deine Antwort nochmals.\n") + schrank2() + + + +def schrank1(): + + print("Du öffnest den Schrank.\n" + "AHHHHHH!! Eine Leiche!! Und Blut! Überall Blut!!\n" + "Als wäre das nicht schon genug, hörst du plötzlich ein Lachen\n" + "Die schwarze Gestalt!!!\n" + "Und du hast keine Möglichkeit zu flüchten!\n" + "Das knirschen der Treppen wird immer lauter.\n" + "Du musst dich verstecken. Schnell!!!\n") + + + time.sleep(3) + + m = input("Wo willst du dich verstecken?\n" + "Im Schrank, hinter den Schachteln oder unter dem Bett?\n").lower() + + if m == "schrank": + schrank() + + + if m == "bett": + bett() + + + if m == "schachteln": + schachteln() + + + else: + print("Diese Möglichkeit steht nicht zur Auswahl.\n" + "Bitte überprüfe deine Antwort nochmals.\n") + schrank1() + + +def schrank(): + print("Du hast entschieden dich im Schrank zu verstecken.\n" + "In dem Schrank in dem auch die Leiche ist.\n" + "Ob das wohl die Richtige entscheidung war?\n") + ende1() + + + + +def bett(): + print("Du hast dich für das Bett entschieden\n" + "Unter dem Bett liegt ein Teppich\n" + "Ob da wohl etwas darunter ist, dass versteckt werden muss?\n") + ende2() + + + + +def schachteln(): + print("Du hast dich für die Schachteln entschieden\n" + "Du machst dich so klein wie möglich und hoffst nicht entdeckt zu werden\n" + "Durch einen Spalt bei den Schachteln siehst du auf das Bett\n" + "Darunter fällt dir ein Teppich auf.\n" + "Es sieht aus als wäre darunter etwas versteckt.\n") + ende3() + + +def ende1(): + + print("Du drückst dich an den Schrank und bist so leise wie nur möglich.\n" + "Du hörst wie die schwarze Gestalt immer und immer näher kommt.\n" + "Sie lacht laut und sucht dich überall.\n" + "Sie kommt näher zum Schrank mit dem Messer voran.\n" + "Dann bleibt sie stehen.\n" + "Langsam öffnet sie die Schranktür.\n" + "Du blickst ihr direkt in die Augen.\n" + "Du schreist aber sie zeigt keine Gnade und ersticht dich kaltblütig.\n") + gameover() + + + +def ende2(): + + print("Die schwarze Gestalt ist im Keller.\n" + "Du hast Todesangst. Sie sucht dich überall.\n" + "Du erinnerst dich an das Messer welches du im Badezimmer gefunden hast.\n") + + n = input("Willst du mit dem Messer den Teppich aufschneiden?") + + if n == "ja": + + if "messer" in inventory: + + inventory.remove("messer") + flucht() + + else: + mord2() + + + if n == "nein": + print("Du hast keine andere wahl. Schneide den Teppich auf!!!") + ende2() + + else: + print("Antworte bitte mit ja oder nein.") + ende2() + + + + +def ende3(): + + print("Du hörst wie die schwarze Gestalt den Keller betretet.\n" + "Voller Angst überlegst du wie du flüchten könntest.\n" + "Die schwarze Gestalt sucht dich überall.\n" + "Sie kommt langsam aber stetig immer näher zu den Schachteln.\n" + "Als die schwarze Gestalt einen kurzen Moment weg schaut,\n" + "läufst du so schnell du kannst zum Bett und versteckst dich dort\n") + + ende2() + + +def mord2(): + print("Du hast kein Messer in deinem Rucksack.\n" + "Da du das Messer ohne Erfolg gesucht hast,\n" + "wurde die schwarze Gestalt auf dich aufmerksam.\n" + "Sie kommt immer näher in Richtung Bett und du hast\n" + "keine Möglichkeit mehr dich zu verstecken.\n" + "Die schwarze Gestalt zieht das Bett weg und sieht dir tief in die Augen.\n" + "Du schaust sie hilfeschreiend an aber das ist ihr egal.\n" + "Sie lacht laut los und sticht dir langsam mit dem Messer in die Brust.\n" + "Du verlierst das Bewusstsein und das letzte was du noch hörst,\n" + "ist das psychopathische Lachen.\n") + gameover() + + + +def flucht(): + print("Unter dem Teppich ist tatsächlich etwas.\n" + "Eine geheime Öffnung im Boden!! Vielleicht ein Weg der hier weg führt?\n" + "Du Öffnest die Falltüre und springst nach unten.\n" + "Tatsächlich! Es sieht aus wie ein langer Gang\n" + "Das Problem ist nur... es ist stock dunkel.\n") + + o = input("Nimm deine Lampe und zünde sie an! (lampe nehmen)\n") + + if o == "lampe nehmen": + inventory.remove("lampe") + print("Du siehst nun genug für deine Flucht!\n") + wegvonhier() + + else: + print("Dieser Befehl kenne ich leider nicht :/\n" + "Bitte erneut versuchen.\n") + + +def wegvonhier(): + print("Hinter dir hörst du schonwieder das Lachen der schwarzen Gestalt.\n" + "Du rennst so schnell du kannst!\n" + "Es ist kalt und nass in diesem Tunnel aber dir bleibt nichts anderes übrig.\n" + "Hier! Eine Leiter!\n" + "Du steigst die Leiter nach oben und öffnest die Falltüre.\n" + "Die schwarze Gestalt kommt immer näher!\n" + "Du kletterst hinaus und schliesst die Türe wieder.\n") + glückwunsch() + + + +def glückwunsch(): + print("Gratuliere!!! Du hast die Nacht überlebt und einen Ausweg aus dem Haus gefunden!\n" + "Du bist nun in einem Wald.\n" + "Nach langem umherirren hast du ein Dorf gefunden.\n" + "Die Leute dort waren sehr freundlich und haben dich zurück zu deinem Haus gebracht.\n" + "Zuhause hast du alles der Polizei erzählt.\n" + "Als die Polizei ankam war das Haus nicht mehr dort.\n" + "Ein Berg aus SChutt und Asche ist übrig geblieben.\n" + "Die schwarze Gestalt wurde bis heute nicht gefunden.\n") + abspann() + + + + +def main(): + cover() + regeln() + einfuehrung() + grundriss() + Eintreten() + + +main() \ No newline at end of file diff --git a/TextAdventure/Adventure_Template.py b/TextAdventure/Adventure_Template.py new file mode 100755 index 0000000..9ae9067 --- /dev/null +++ b/TextAdventure/Adventure_Template.py @@ -0,0 +1,820 @@ +import time + + +global inventory +inventory = [] + +global besucht +besucht = [] + + +def cover(): + print(""" + +▄▄▄█████▓ ██░ ██ ▓█████ ██░ ██ ▒█████ █ ██ ██████ ▓█████ +▓ ██▒ ▓▒▓██░ ██▒▓█ ▀ ▓██░ ██▒▒██▒ ██▒ ██ ▓██▒▒██ ▒ ▓█ ▀ +▒ ▓██░ ▒░▒██▀▀██░▒███ ▒██▀▀██░▒██░ ██▒▓██ ▒██░░ ▓██▄ ▒███ +░ ▓██▓ ░ ░▓█ ░██ ▒▓█ ▄ ░▓█ ░██ ▒██ ██░▓▓█ ░██░ ▒ ██▒▒▓█ ▄ + ▒██▒ ░ ░▓█▒░██▓░▒████▒ ░▓█▒░██▓░ ████▓▒░▒▒█████▓ ▒██████▒▒░▒████▒ + ▒ ░░ ▒ ░░▒░▒░░ ▒░ ░ ▒ ░░▒░▒░ ▒░▒░▒░ ░▒▓▒ ▒ ▒ ▒ ▒▓▒ ▒ ░░░ ▒░ ░ + ░ ▒ ░▒░ ░ ░ ░ ░ ▒ ░▒░ ░ ░ ▒ ▒░ ░░▒░ ░ ░ ░ ░▒ ░ ░ ░ ░ ░ + ░ ░ ░░ ░ ░ ░ ░░ ░░ ░ ░ ▒ ░░░ ░ ░ ░ ░ ░ ░ + ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ + + + +--------------------------------------------------------------------- + + """) + time.sleep(1) + + + +def gameover(): + print(""" + + + ▄████ ▄▄▄ ███▄ ▄███▓▓█████ ▒█████ ██▒ █▓▓█████ ██▀███ + ██▒ ▀█▒▒████▄ ▓██▒▀█▀ ██▒▓█ ▀ ▒██▒ ██▒▓██░ █▒▓█ ▀ ▓██ ▒ ██▒ +▒██░▄▄▄░▒██ ▀█▄ ▓██ ▓██░▒███ ▒██░ ██▒ ▓██ █▒░▒███ ▓██ ░▄█ ▒ +░▓█ ██▓░██▄▄▄▄██ ▒██ ▒██ ▒▓█ ▄ ▒██ ██░ ▒██ █░░▒▓█ ▄ ▒██▀▀█▄ +░▒▓███▀▒ ▓█ ▓██▒▒██▒ ░██▒░▒████▒ ░ ████▓▒░ ▒▀█░ ░▒████▒░██▓ ▒██▒ + ░▒ ▒ ▒▒ ▓▒█░░ ▒░ ░ ░░░ ▒░ ░ ░ ▒░▒░▒░ ░ ▐░ ░░ ▒░ ░░ ▒▓ ░▒▓░ + ░ ░ ▒ ▒▒ ░░ ░ ░ ░ ░ ░ ░ ▒ ▒░ ░ ░░ ░ ░ ░ ░▒ ░ ▒░ +░ ░ ░ ░ ▒ ░ ░ ░ ░ ░ ░ ▒ ░░ ░ ░░ ░ + ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ + ░ + + +-------------------------------------------------------------------------- +""") + + +def regeln(): + print("Bevor wir starten, ein paar Anmerkungen.\n" + "Bitte alles was du schreibst IMMER in Kleibuchstaben verfassen.\n" + "Es wird immer MAXIMAL ein Wort benötigt.\n" + "Du hast einen Rucksack dabei, in dem du Dinge mitnehmen kannst.\n") + + time.sleep(1) + + +def einfuehrung(): + print("Es ist Freitag Nacht...\n" + + + "Du hast dich verlaufen und bist auf der Suche nach einer Unterkunft\n" + "für die kommende Nacht.\n" + "Du bist ganz auf dich alleine gestellt.\n" + "Wenn du nicht aufpasst, wirst du sterben.\n" + "Sei vorsichtig und überlege dir jede Entscheidung gut.\n" + "Es gibt kein Zurück!!\n" + + "Du bist ganz alleine an einer abgelegener Strasse.\n" + "Es stürmt und ist eiskalt.\n" + "Plötzlich kommst du zu einem alten Haus.\n" + "Es sieht unheimlich aus.\n") + time.sleep(1) + +def grundriss(): + print (""" + DU BIST HIER + | + __________ ____|______ _______ ____ + | | | | | | + |Wohnzimmer|____| Flur |____|Schlafzimmer| + | | | | | | + |__ _____ _| |__ ______ _| |___ ___ ____| + | | + | | + | | + ____|____ ________ __ ______|_____ + | | | | | | + | Küche |____| Flur |____| Badezimmer | + | | | | | | + |__ _____ _| |__ ________| |_ __________| + | + | + | + _____|_ ____ + | | + | Keller | + | | + |_________ __| + + + +""") + time.sleep(1) + + + + + +def lageplan(): + print(""" + + _______ ___________ _______ ____ + | | | | | | + |Wohnzimmer|____| Flur |____|Schlafzimmer| + | | | | | | + |__ _____ _| |__ ______ _| |___ ___ ____| + | | + | | + | | + ____|____ ________ __ ______|_____ + | | | | | | + | Küche |____| Flur |____|Badezimmer | + | | | | | | + |__ _____ _| |__ ________| |_ __________| + | + | + | + _____|______ + | | + | Keller | + | | + |____________| + + + """) + + + + +def abspann(): + print(""" + + +▄▄▄█████▓ ██░ ██ ▓█████ ▓█████ ███▄ █ ▓█████▄ +▓ ██▒ ▓▒▓██░ ██▒▓█ ▀ ▓█ ▀ ██ ▀█ █ ▒██▀ ██▌ +▒ ▓██░ ▒░▒██▀▀██░▒███ ▒███ ▓██ ▀█ ██▒░██ █▌ +░ ▓██▓ ░ ░▓█ ░██ ▒▓█ ▄ ▒▓█ ▄ ▓██▒ ▐▌██▒░▓█▄ ▌ + ▒██▒ ░ ░▓█▒░██▓░▒████▒ ░▒████▒▒██░ ▓██░░▒████▓ + ▒ ░░ ▒ ░░▒░▒░░ ▒░ ░ ░░ ▒░ ░░ ▒░ ▒ ▒ ▒▒▓ ▒ + ░ ▒ ░▒░ ░ ░ ░ ░ ░ ░ ░░ ░░ ░ ▒░ ░ ▒ ▒ + ░ ░ ░░ ░ ░ ░ ░ ░ ░ ░ ░ ░ + ░ ░ ░ ░ ░ ░ ░ ░ ░ + ░ + + + +""") + + + +def Eintreten(): + aktion = input('Willst Du eintreten oder weglaufen?').lower() + + if aktion == 'eintreten': + flur1() + + elif aktion == 'weglaufen': + print("\n" + "Du läufst davon voller Angst... \n" + "Doch schon nach kurzer Zeit wird dir bewusst...\n" + "Du musst zurück wenn du diese Nacht überleben willst.\n") + time.sleep(1) + Eintreten() + + else: + print("Dieser Befgehl ist mir leider nicht bekannt :/\n" + "Bitte erneut versuchen\n") + time.sleep(2) + Eintreten() + + +def Mord(): + print("\n" + "Du rennst so schnell du kannst zum Flur. \n" + "Du willst die Türe aufreissen und weglaufen.\n" + "Doch die Türe ist verschlossen!\n" + "Plötzlich spürst du das jemand hinter dir steht... \n" + "...du drehst langsam deinen Kopf\n" + "Die schwarze Gestalt steht hinter dir!\n" + "Sie ist voller Blut und lacht laut und bevor du reagieren kannst...\n" + "...sticht sie dir ein Messer kaltblütig in die Brust!\n") + time.sleep(5) + gameover() + +def schock(): + print("Du öffnest neugierig den Duschvorhang.\n" + "Die Badewanne.. sie.. sie ist.. voller Blut!\n" + "Du schreist und hast Angst. Du willst nur noch weg hier!\n" + "Doch nach kurzer Zeit fällt dir neben der Wanne etwas auf...\n" + "...ist das ein Schlüssel?") + + h = input('Schlüssel aufheben oder liegen lassen?').lower() + + if h == "aufheben": + inventory.append("schlüssel") + badezimmer() + + + if h == "lassen": + badezimmer() + + else: + print("Dieser Befehl ist mir leider nicht bekannt :/\n" + "Bitte erneut versuchen.\n") + time.sleep(2) + schock() + +def flur2(): + print("Du stehst erneut auf einem Flur...\n" + "Er sieht aber anderst aus als der beim Hauseingang.\n" + "Deutlich düsterer... und eine Tür die in einen anderen Raum führt.\n" + "In den Keller vielleicht?\n") + + i = input("Willst du die Türe öffnen?").lower() + + if i == "nein": + flur3() + + + if i == "ja": + + if "schlüssel" in inventory: + inventory.remove("schlüssel") + treppe() + + else: + print("Die Türe scheint verschlossen zu sein.\n" + "Du brauchst einen Schlüssel um diesen Raum zu betreten.\n") + + time.sleep(3) + lageplan() + + j = input("Wohin willst du?").lower() + + + + if j == "badezimmer": + if "ja" in besucht: + badezimmer1() + + else: + badezimmer() + + if j == "küche": + kueche() + + else: + print("Dieser Befgehl ist mir leider nicht bekannt :/\n" + "Bitte erneut versuchen\n") + time.sleep(2) + flur1() + + + + + + +def flur1(): + inventory.append("lampe") + print("\n" + "(Du findest eine Lampe und steckst sie in dein Inventar)\n" + "Du stehst auf einem Flur.\n" + "Das Haus sieht alt und verlassen aus.\n" + "Doch plötzlich hörst du etwas...\n" + "Schritte vielleicht?\n") + + d = input("Willst du im Schlafzimmer oder im Wohnzimmer nachsehen?").lower() + + if d == "schlafzimmer": + schlafzimmer1() + + if d == "wohnzimmer": + wohnzimmer1() + + else: + print("Dieser Befgehl ist mir leider nicht bekannt :/\n" + "Bitte erneut versuchen\n") + time.sleep(2) + flur1() + + +def flur(): + print("Du bist nun auf dem Flur.\n") + + f = input("Wohin willst du?").lower() + lageplan() + + + if f == "schlafzimmer": + schlafzimmer() + + if f == "wohnzimmer": + wohnzimmer() + + else: + + print("Du kannst diesen Raum nicht direkt betreten.\n") + flur() + +def flur3(): + print("Du bist nun auf dem Flur.\n") + + + if "schlüssel" in inventory: + + q = input("Willst du die Türe öffnen?") + + if q == "ja": + if "schlüssel" in inventory: + treppe() + + else: + print("Du brauchst einen Schlüssel um diese Türe zu öffnen.\n") + + if q == "nein": + + + time.sleep(3) + lageplan() + f = input("Wohin willst du?").lower() + + + if f == "badezimmer": + if "ja" in besucht: + badezimmer() + + else: + badezimmer1() + + if f == "küche": + kueche() + + else: + print("Du kannst diesen Raum nicht direkt betreten.\n") + flur3() + + else: + lageplan() + f = input("Wohin willst du?").lower() + + + if f == "badezimmer": + if "ja" in besucht: + badezimmer() + + else: + badezimmer1() + + if f == "küche": + kueche() + + else: + print("Du kannst diesen Raum nicht direkt betreten.\n") + flur3() + + + + + + + + + +def kueche(): + print("Du bist nun in der Küche.\n" + "Von der schwarzen Gestalt ist nichts zu sehen.\n" + "Auf der Ablage liegt ein Messer.\n") + + time.sleep(2) + + p = input("Willst du das Messer aufheben? Es könnte sich später noch für Nützlich erweisen.\n") + + if p == "ja": + inventory.append("messer") + + + if p == "nein": + print("ok") + + + kueche1() + +def kueche1(): + print("Du bist nun in der Küche.\n") + + time.sleep(2) + lageplan() + x = input("Wohin willst du?").lower() + + + if x == "flur": + flur2() + + if x == "wohnzimmer": + wohnzimmer() + + else: + + print("Du kannst diesen Raum nicht direkt betreten.\n") + kueche() + +def schlafzimmer(): + print("Du bist nun im Schlafzimmer.\n") + + e = input("Wohin willst du?").lower() + lageplan() + + if e == "badezimmer": + if "ja" in besucht: + badezimmer() + + else: + badezimmer1() + + if e == "flur": + flur() + + else: + + print("Du kannst diesen Raum nicht direkt betreten.\n") + schlafzimmer() + +def wohnzimmer(): + print("Du bist nun im Wohnzimmer.\n") + + f = input("Wohin willst du?").lower() + lageplan() + + if f == "flur": + flur() + + if f == "küche": + kueche() + + else: + print("Du kannst diesen Raum nicht direkt betreten.\n") + wohnzimmer() + +def badezimmer(): + print("Du bist nun im Badezimmer.\n") + + if "schlüssel" != inventory: + + w = input("Willst du den Schlüssel aufheben?").lower() + + if w == "ja": + inventory.append("schlüssel") + + else: + print("ok") + + + e = input("Wohin willst du?").lower() + lageplan() + + if e == "flur": + flur3() + + if e == "schlafzimmer": + schlafzimmer() + + else: + + print("Du kannst diesen Raum nicht direkt betreten.\n") + badezimmer() + + +def badezimmer1(): + besucht.append("ja") + print("Du öffnest die Türe zum Bad ganz leise.\n" + "Du hoffst, dass die schwarze Gestalt nichts gehört hat.\n" + "Etwas ängstlich betrittst du nun das Badezimmer.\n" + "Viel gibt es nicht zu sehen in diesem Badezimmer\n" + "Eine Toilette, ein Spiegel und eine Badewanne\n" + "Der Duschvorhang der Badewanne ist zu\n") + + g = input("Willst du ihn öffnen?").lower() + + if g == "ja": + schock() + + if g == "nein": + badezimmer() + + else: + print("Dieser Befgehl ist mir leider nicht bekannt :/\n" + "Bitte erneut versuchen\n") + badezimmer1() + + + +def schlafzimmer1(): + print("\n" + "Du öffnest die Schlafzimmertüre langsam.\n" + "Die Türe aber knirscht und lässt sich nur schwer öffnen.\n" + "Nun betrittst du das alte und verlassene SChlafzimmer.\n" + "Du siehst dich etwas um.\n" + "Am Boden hinter dem Bett siehst du etwas.\n" + "Flecken viellei... HILFE!!!!!\n" + "Jemand schrie um Hilfe? Und die Flecken - es ist Blut!!\n") + + a = input("Willst du flüchten oder dem Hilferuf folgen?").lower() + + if a == "flüchten": + + print("\n" + "Du entschliesst dich zu flüchten.\n" + "Du hast Todesangst\n") + Mord() + + if a == "folgen": + wohnzimmer1() + + else: + print("Dieser Befgehl ist mir leider nicht bekannt :/\n" + "Bitte erneut versuchen\n") + time.sleep(2) + schlafzimmer1() + + +def wohnzimmer1(): + + print("\n" + "Du gehst aufmerksam ins Wohnzimmer.\n" + "Du blickst umher.\n" + "Da links! Eine schwarze Gestalt steht im nächsten Zimmer!\n" + "Geschockt bleibst du stehen und planst dein weiteres Vorgehen.\n") + + b = input("Willst du die Situation beobachten oder flüchten?").lower() + + if b == "flüchten": + Mord() + + if b == "beobachten": + print("\n" + "Schockiert erkennst du, dass die schwarze Gestalt ein Messer hat.\n" + "Sie lacht auf eine psychopathische Art und Weise und läuft umher.\n" + "Sucht sie etwas? Oder jemanden?\n" + "Mich vielleicht?\n" + "Es sieht so aus als würde sie im nächsten Raum verschwinden.\n") + + time.sleep(5) + lageplan() + + c = input("Wohin willst du?").lower() + + if c == "flur": + flur() + + + if c == "küche": + kueche() + + + else: + print("Du kannst diesen Raum nicht direkt betreten.\n") + wohnzimmer1() + + else: + print("Dieser Befgehl ist mir leider nicht bekannt :/\n" + "Bitte erneut versuchen\n") + time.sleep(2) + wohnzimmer1() + + +def treppe(): + print("Du öffnest die Türe möglichst leise.\n" + "Zu deiner Erleichterung öffnet sich die Türe ruhig.\n" + "Vor dir siehst du eine Treppe.\n" + "Sie führt nach unten... in den Keller wahrscheinlich.\n") + + k = input("Willst du den Keller betreten?") + + if k == "ja": + keller1() + + + if k == "nein": + schlüssel = 1 + flur3() + + + else: + print("Dieser Befehl ist mir leider nicht bekannt :/\n" + "Bitte erneut versuchen.\n") + treppe() + +def keller1(): + print("Schleichend gehst du die dunkle, alte Treppe hinunter\n" + "Zu deinem Pech knirscht das alte Holz unter deinen Füssen\n" + "Unten angekommen siehst du dich etwas um.\n" + "Ein Schrank, ein altes Bett und viele alte Schachteln stehen herum.\n" + "Ein komischer Geruch kommt dir in die Nase...\n" + "...woher der wohl kommen mag?\n" + "Aus dem Schranz läuft etwas heraus...\n" + "...wegen der Dunkelheit erkennst du nicht wases ist.\n") + + l = input("Willst du im Schrank nachschauen?").lower() + + if l == "ja": + schrank1() + + if l == "nein": + schrank2() + + +def schrank2(): + print( + "Du hörst plötzlich ein Lachen.\n" + "Die schwarze Gestalt!!!\n" + "Und du hast keine Möglichkeit zu flüchten!\n" + "Das knirschen der Treppen wird immer lauter.\n" + "Du musst dich verstecken. Schnell!!!\n") + + + + + time.sleep(3) + + o = input("Wo willst du dich verstecken?\n" + "Hinter den Schachteln oder unter dem Bett?").lower() + + + if o == "bett": + bett() + + + if o == "schachteln": + schachteln() + + + else: + print("Diese Möglichkeit steht nicht zur Auswahl.\n" + "Bitte überprüfe deine Antwort nochmals.\n") + schrank2() + + + +def schrank1(): + + print("Du öffnest den Schrank.\n" + "AHHHHHH!! Eine Leiche!! Und Blut! Überall Blut!!\n" + "Als wäre das nicht schon genug, hörst du plötzlich ein Lachen\n" + "Die schwarze Gestalt!!!\n" + "Und du hast keine Möglichkeit zu flüchten!\n" + "Das knirschen der Treppen wird immer lauter.\n" + "Du musst dich verstecken. Schnell!!!\n") + + + + + time.sleep(3) + + m = input("Wo willst du dich verstecken?\n" + "Im Schrank, hinter den Schachteln oder unter dem Bett?\n").lower() + + if m == "schrank": + schrank() + + + if m == "bett": + bett() + + + if m == "schachteln": + schachteln() + + + else: + print("Diese Möglichkeit steht nicht zur Auswahl.\n" + "Bitte überprüfe deine Antwort nochmals.\n") + schrank1() + + +def schrank(): + print("Du hast entschieden dich im Schrank zu verstecken.\n" + "In dem Schrank in dem auch die Leiche ist.\n" + "Ob das wohl die Richtige entscheidung war?\n") + ende1() + + + + +def bett(): + print("Du hast dich für das Bett entschieden\n" + "Unter dem Bett liegt ein Teppich\n" + "Ob da wohl etwas darunter ist, dass versteckt werden muss?\n") + ende2() + + + + +def schachteln(): + print("Du hast dich für die Schachteln entschieden\n" + "Du machst dich so klein wie möglich und hoffst nicht entdeckt zu werden\n" + "Durch einen Spalt bei den Schachteln siehst du auf das Bett\n" + "Darunter fällt dir ein Teppich auf.\n" + "Es sieht aus als wäre darunter etwas versteckt.\n") + ende3() + + +def ende1(): + + print("Du drückst dich an den Schrank und bist so leise wie nur möglich.\n" + "Du hörst wie die schwarze Gestalt immer und immer näher kommt.\n" + "Sie lacht laut und sucht dich überall.\n" + "Sie kommt näher zum Schrank mit dem Messer voran.\n" + "Dann bleibt sie stehen.\n" + "Langsam öffnet sie die Schranktür.\n" + "Du blickst ihr direkt in die Augen.\n" + "Du schreist aber sie zeigt keine Gnade und ersticht dich kaltblütig.\n") + gameover() + + + + +def ende2(): + + print("Die schwarze Gestalt ist im Keller.\n" + "Du hast Todesangst. Sie sucht dich überall.\n" + "Du erinnerst dich an das Messer welches du im Badezimmer gefunden hast.\n") + + n = input("Willst du mit dem Messer den Teppich aufschneiden?") + + if n == "ja": + inventory.remove("messer") + flucht() + + if n == "nein": + print("Du hast keine andere wahl. Schneide den Teppich auf!!!") + ende2() + + else: + print("Antworte bitte mit ja oder nein.") + ende2() + + + + +def ende3(): + + print("Du hörst wie die schwarze Gestalt den Keller betretet.\n" + "Voller Angst überlegst du wie du flüchten könntest.\n" + "Die schwarze Gestalt sucht dich überall.\n" + "Sie kommt langsam aber stetig immer näher zu den Schachteln.\n" + "Als die schwarze Gestalt einen kurzen Moment weg schaut,\n" + "läufst du so schnell du kannst zum Bett und versteckst dich dort\n") + + ende2() + + + +def flucht(): + print("Unter dem Teppich ist tatsächlich etwas.\n" + "Eine geheime Öffnung im Boden!! Vielleicht ein Weg der hier weg führt?\n" + "Du Öffnest die Falltüre und springst nach unten.\n" + "Tatsächlich! Es sieht aus wie ein langer Gang\n" + "Das Problem ist nur... es ist stock dunkel.\n") + + o = input("Nimm deine Lampe und zünde sie an! (lampe nehmen)\n") + + if o == "lampe nehmen": + inventory.remove("lampe") + print("Du siehst nun genug für deine Flucht!\n") + wegvonhier() + + else: + print("Dieser Befehl kenne ich leider nicht :/\n" + "Bitte erneut versuchen.\n") + + +def wegvonhier(): + print("Hinter dir hörst du schonwieder das Lachen der schwarzen Gestalt.\n" + "Du rennst so schnell du kannst!\n" + "Es ist kalt und nass in diesem Tunnel aber dir bleibt nichts anderes übrig.\n" + "Hier! Eine Leiter!\n" + "Du steigst die Leiter nach oben und öffnest die Falltüre.\n" + "Die schwarze Gestalt kommt immer näher!\n" + "Du kletterst hinaus und schliesst die Türe wieder.\n") + glückwunsch() + +def glückwunsch(): + print("Gratuliere!!! Du hast die Nacht überlebt und einen Ausweg aus dem Haus gefunden!\n" + "Du bist nun in einem Wald.\n" + "Nach langem umherirren hast du ein Dorf gefunden.\n" + "Die Leute dort waren sehr freundlich und haben dich zurück zu deinem Haus gebracht.\n" + "Zuhause hast du alles der Polizei erzählt.\n" + "Als die Polizei ankam war das Haus nicht mehr dort.\n" + "Ein Berg aus SChutt und Asche ist übrig geblieben.\n" + "Die schwarze Gestalt wurde bis heute nicht gefunden.\n") + abspann() + + + + + +def main(): + cover() + regeln() + einfuehrung() + grundriss() + Eintreten() + + +main() \ No newline at end of file diff --git a/TextAdventure/B737MAX Crash.py b/TextAdventure/B737MAX Crash.py new file mode 100755 index 0000000..960d6e4 --- /dev/null +++ b/TextAdventure/B737MAX Crash.py @@ -0,0 +1,582 @@ +import time +import random +global stepscount +stepscount = 0 +inventory = [] +done = [] +visited = [] +global goahead +goahead = 0 + + + + +def cover(): + print(""" + + + + + + + + + + + + + ______ ______ ______ ______ _______ _______ _____ +( ___ \ / ___ \ / ___ \ / ___ \ ( )( ___ )|\ /| / ___ \ +| ( ) )\/ ) )\/ \ \\/ ) )| () () || ( ) |( \ / ) ( (___) ) +| (__/ / / / ___) / / / | || || || (___) | \ (_) / \ / +| __ ( / / (___ ( / / | |(_)| || ___ | ) _ ( / ___ \ +| ( \ \ / / ) \ / / | | | || ( ) | / ( ) \ ( ( ) ) +| )___) ) / / /\___/ / / / | ) ( || ) ( |( / \ ) ( (___) ) +|/ \___/ \_/ \______/ \_/ |/ \||/ \||/ \| \_____/ + + _______ _______ _______ _______ +( ____ \( ____ )( ___ )( ____ \|\ /| +| ( \/| ( )|| ( ) || ( \/| ) ( | +| | | (____)|| (___) || (_____ | (___) | +| | | __)| ___ |(_____ )| ___ | +| | | (\ ( | ( ) | ) || ( ) | +| (____/\| ) \ \__| ) ( |/\____) || ) ( | +(_______/|/ \__/|/ \|\_______)|/ \| + + + + + + +""") + time.sleep(2) + print(""" +DIES BASIERT AUF EINER WAHREN TATSACHE. DIE SPIELELEMENTE SIND VEREINFACHT UND TEILS +UNREALISTISCH DARGESTELLT. WICHTIGE DETAILS WERDEN ZUR EINFACHEREN VERSTÄNDLICHKEIT +WEGGELASSEN. DER ERMITTLUNGSPROZESS IST IN WIRKLICHKEIT EINE UNGEHEURLICH SCHWIERIGE +AUFGABE UND WIRD HIER AUF EIN MÖGLICHST ÜBERSCHAUBARES MASS GEKÜRZT. + +""") + time.sleep(5) + go = 0 + while go == 0: + a = userinput("Tippe folgendes ein, wenn du bereit bist: ok | ") + if a == "ok": + go = 1 + else: + print("wrong, retry") + global start + start = time.time() + + + +def gameoverpossible(): + global start + if "grounding" not in done: + current = time.time() - start + if current < 120: + gameover1() + elif current < 180 and current > 119: + gameover2() + elif current < 240 and current > 179: + gameover3() + elif current < 300 and current > 239: + gameover() + else: + current = time.time() + +def gameover1(): + if random.randint(0,10) == 1: + gameover() + else: + current = time.time() + +def gameover2(): + if random.randint(0,6) == 1: + gameover() + else: + current = time.time() + +def gameover3(): + if random.randint(0,3) == 1: + gameover() + else: + current = time.time() + +def gameover(): + global next + next = 0 + global exit + exit = 0 + print(""" + NEW YORK TIMES + + DIE KATASTROPHE + --------------------------------- +Heute morgen gegen 7 Uhr ist eine Boeing 737 MAX 8 der United Airlines abgestürzt. +Alle 178 Menschen an Bord der Maschine sind bei dem fast senkrechten Absturz der +Maschine gestorben. Der Unfall ähnelt den beiden bisherigen Abstürzen von 737 MAX +in Ethiopien und Indonesien in vielerlei Hinsicht. Auch hier war die Maschine +senkrecht abgestürzt, auch hier wollten die Piloten umkehren und meldeten Probleme +mit der Flugsteuerung. Die Ermittler dieses Falles werden sich morgen früh für ihre +langsame Arbeit für den Tod der 178 Menschen verantworten, da sie kein Weltweites +Flugverbot für die 737 MAX ausgesprochen hatte. + --------------------------------- + +Oh weh. +Das wird einige Konsequenzen für dich nach sich ziehen. +""") + time.sleep(4) + print(""" + + +Es ist der nächste Morgen. Du machst dich auf zum Gericht. +Die Richter entziehen den Fall deiner Verantwortung und verurteilen dich zu +lebenslänglicher Haft, aufgrund von fahrlässiger Tötung. Das ist das Ende deiner +Karriere. +""") + + print("Punktezahl: 10000000000000000000000000000000000000000000000000000") + + + +def einfuehrung(): + print("""Es ist Samstagmorgen... Urplötzlich stürzt eine fast brandneue Boeing 737MAX +von Ethiopian Airlines ab. Die Welt ist schockiert, da dies bereits der zweite Absturz dieses +Typs ist. Beides Mal waren fast brandneue Flugzeuge involviert. Beide Abstürze ähnelten sich +massiv. Deine Aufgabe ist es nun, die Absturze zu klären.""") + print(""" +Als neu ernannter Ermittler musst du dir bereits jetzt eine wichtige Frage stellen: +Solltest du ein weltweites Flugverbot für diesen Flugzeugtypen verhängen? +Sowohl Boeing als auch die Fluggesellschaften werden sich dagegen sträuben. +""") + i = userinput("Willst du das Flugverbot verhängen? (y/n)") + if i == "y": + print(""" + NEW YORK TIMES + + NTSB ERMITTLER VERHÄNGT FLUGVERBOT FÜR UNGLÜCKSFLIEGER + -------------------------------------------------------------- +Heute Morgen hat ein Sprecher des NTSB (National Transport and Safety Board verkündet, +dass der leitende Ermittler ein Flugverbot für alle Flugzeuge der Boeing 737MAX-Klasse +zu verhängen. Dies ist auf massive Proteste seitens der Fluggesellschaften und von Boeing +gestossen. Jedoch: Viele Aviatikexperten befürworten den Entscheid des Ermittlers. Die +Sicherheit der Passagiere muss um jeden Preis gewährleistet werden. Die einzige Möglichkeit +dies zu gewährleisten ist, ein Flugverbot auszusprechen. +""") + done.append("grounding") + elif i == "n": + print(""" +Die Wirtschaft ist wichtig, ein Pilotenfehler kann ja nicht ausgeschlossen werden. +Ermitteln wir! + +""") + else: + print("wrong, retry") + einfuehrung() + time.sleep(4) + +def grundriss(): + if "grounding" in done: + print(""" + +_________________________________________________________________________________________________________ + +Willkommen im Ermittlerbüro. +Dies ist dein Arbeitsplatz an der Unfallstelle. Die Welt will Antworten und Boeing +braucht sie, um das Flugzeug zu verbessern. Der Zeitdruck ist aber geringer, da keine +weiteren Abstürze geschehen können. +Hier kannst du alle Gegenstände, welche du auf der Unfallstelle finden kannst +untersuchen, um die mögliche Unfallursache herauszufinden. +""") + else: + print(""" + +_________________________________________________________________________________________________________ + +Willkommen im Ermittlerbüro. +Dies ist dein Arbeitsplatz an der Unfallstelle. Du solltest dich so schnell wie +möglich um diesen Fall kümmern, denn sonst könnte es zu weiteren Abstürzen kommen. +Hier kannst du alle Gegenstände, welche du auf der Unfallstelle finden kannst +untersuchen, um die mögliche Unfallursache herauszufinden. +""") + + +def abspann(): + print(""" + +DU HAST ES GESCHAFFT! + GLÜCKWUNSCH! + + """) + global start + global stepscount + times = time.time() - start + points = times*2 + stepscount**2 - 110 + if points < 0: + print("Deine Zeit: ",times) + print("\n\nDeine Punkte (Je geringer desto besser): 0") + print("\nDeine Anzahl Schritte (Je geringer desto besser):", stepscount) + else: + print("Deine Zeit: ",times) + print("\n\nDeine Punkte (Je geringer desto besser): ",points) + print("\nDeine Anzahl Schritte (Je geringer desto besser):", stepscount) + bewertung(points) + +def bewertung(punkte): + print(""" + DEINE BEWERTUNG:""") + if punkte <= 0: + print(""" GOD """) + if punkte < 20: + print(""" A+ """) + elif punkte < 40: + print(""" A """) + elif punkte < 100: + print(""" B """) + elif punkte < 200: + print(""" C """) + elif punkte < 301: + print(""" D """) + elif punkte > 300: + print(""" D- """) + + +def userinput(question): + return input(question).lower() + +def makedone(item): + inventory.remove(item) + done.append(item) + +def eb(): + global goahead + global stepscount + stepscount += 1 + print("""Du befindest dich jetzt im Ermittlerbüro. +""") + while len(inventory) > 0: + stepscount += 1 + if "blackbox" in inventory: + makedone("blackbox") + print("""Da du ja jetzt die Blackbox des Flugzeugs gefunden hast, +kannst du sie hier im Ermittlerbüro aufmachen und die Flugdaten auslesen. +Dies dauert jedoch eine gewisse Zeit. Du öffnest ihn und hoffst, dass einer +deiner Spezialisten die Daten retten kann.""") + time.sleep(7) + print("""Dein Spezialist hat es geschafft! Die Daten konten wiederhergestellt werden! +Du siehst eine Auffälligkeit in den Daten der Flughöhe und der vertikalen Geschwindigkeit. +Dies deutet auf massive technische Probleme hin. Auch die Daten des Anstellwinkelsensors 1, +sind auffällig: Er hatte die ganze Zeit denselben Anstellwinkel angezeigt. +""") + if "anstellwinkelsensor" in inventory: + print("""Glücklicherweise hast du ihn bereits auf dem Trümmerfeld entdeckt. +Du untersuchst ihn nun.""") + goahead = 1 + elif "anstellwinkelsensor" in done: + print("""Du hast ihn ja bereits untersucht. """) + goahead = 1 + else: + print("""Du solltest dich vielleicht nach dem Sensor umsehen.""") + elif "anstellwinkelsensor" in inventory: + makedone("anstellwinkelsensor") + print("""Da du ja zuvor den Anstellwinkelsensor des Flugzeugs gefunden hast, +kannst du ihn jetzt auf Schäden überprüfen. Du untersuchst die Ströme, welche der +Sensor bei Bewegung ausgibst und machst eine Entdeckung: +ER FUNKTIONIERT NICHT! +Logischerweise könnte er auch durch den Aufprall beschädigt sein, """) + if "blackbox" in done: + print("""aber die Blackbox bestätigt ja den Ausfall des Sensors. +Du bist der Ursache auf der Spur. Glückwunsch!""") + goahead = 1 + inventory.clear() + else: + print("""du solltest deshalb die Blackbox finden, um den Ausfall zu +bestätigen. +""") + print("\n") + elif "turbine" in inventory: + print("""Du hast eine der beiden Turbinen in das Büro transportieren lassen. +Als mögliche Absturzursache hast du Triebwerksversagen im Verdacht. Beim Betrachten +der Triebwerke erkennst du aber an der Verformung der Schaufeln und dem Dreck +in der Turbine selbst, also im Kompressor, dass sie voll funktionstüchtig war. +Somit kann ein Absturz durch Triebwerksversagen ausgeschlossen werden. +Denn ein modernes Flugzeug kann auch mit nur einem Triebwerk problemlos fliegen.""") + makedone("turbine") + elif "zeugen" in inventory: + makedone("zeugen") + print("""Du hast ja auch bereits die Zeugen befragt. Du schaust dir deine +Notizen lange an, kannst aber nichts erkennen, was dir für den Fall helfen könnte. +Du verwirfst die Aussagen als nicht aussagekräftig.""") + time.sleep(5) + if goahead == 1: + global exit + exit = 1 + stepscount += 1 + print("""Du wendest dich nun den Pilotenakten zu. Der Kapitän hatte beachtliche +8000 Flugstunden und soweit du erkennen magst, auch keine bekannten Probleme. Auch die +(kurze) Karriere des Copiloten war makellos, er hatte jedoch nur 200 Flugstunden. +Die Piloten hatten beim Kontakt mit dem Tower Probleme gemeldet und zur Umkehr +gebeten. Dies bestätigte auch der Stimmenrekorder. Deine Aufmerksamkeit fällt auf +das als Manouvering Caracteristics Augumentation System, oder kurz MCAS, welches eigentlich +einen Strömungsabriss verhindern sollte, aber, aufgrund der Architektur der 737-Familie, +nur mit einem der redundanten Anstellwinkelsensoren verbunden war.""") + time.sleep(10) + print("""Des weiteren: +Zwei Sensoren sind einer zu wenig, denn falls jetzt einer ausfallen sollte, welcher +sollte verwendet werden? Das MCAS hatte hier schlicht weg keine Chance, vernüftig +zu handeln und hatte das Flugzeug in einen Sturzflug gezwungen, da der Anstellwinkelsensor +einen zu hohen Anstellwinkel gemeldet hatte. Das Flugzeug war jedoch gar nicht in jener Lage und +die Piloten kämpften vergeblich gegen das System, welches sich nicht abschalten liess. +Denn durch die grösseren und Effizienteren Triebwerke (LEAP 1A) der 737MAX, mussten diese +weiter vorne und höher unter dem Flügel angebracht werden, um genügend Bodenfreiheit zu +gewährleisten. Dies hatte dazu geführt, dass bei dem schon sehr alten Flugzeug das sogenannte +Pitch-Up moment grösser wurde und somit die Nase des Flugzeugs in gewissen Fluglagen +unkontrolliert nach oben gehen kann. Das MCAS sollte dies verhindern, denn diese Fluglage +führt unweigerlich zu einem Strömungsabriss, bei welchem das Flugzeug sogesagt "vom Himmel +fallen würde".""") + time.sleep(10) + if "grounding" in done: + stepscount -= 2 + print(""" +Nachdem du ja glücklicherweise bereits bei Ermittlungsbeginn das Grounding des Typs andgeordnet hattest. +Die Fluggesellschaften und Boeing hatten zwar nicht sehr positiv darauf reagiert, aber mit dem was +du herausgefunden hattest, sind jetzt alle froh, dass du es getan hattest. +Die 737 MAX war anschliessend bis im Dezember 2020 gegroundet und Boeing fuhr durch dieses Problem +massive Verluste ein. +""") + else: + stepscount += 10 + print(""" +Alle sind schockiert, dass du nicht bereits bei Ermittlungsbeginn ein Grounding angeordnet hattest. +Boeing und auch die Fluggesellschaften fanden es zwar erst besser, aber auch sie sind jetzt der Meinung, +dass es besser gewesen wäre, wenn du bereits da ein Grounding angeordnet hättest. Deine Haltung davon ist +zwar verständlich, aber du wirst trotzdem zur Verantwortung gezogen. Du musst eine Haftstrafe von einem +Jahr absitzen, da du viele Personen in Gefahr gebracht hast. Trotzdem, der Fall ist geklärt. +""") + return 0 + else: + print("""Um etwas untersuchen zu können, musst du erst etwas in dein Inventar nehmen, +dann hier zurückkehren. Gehe dazu hinaus auf die Unfallstelle. +Auch da könnten sich wichtige Hinweise verstecken.""") + i = userinput("Wo willst du hin? Zum Cockpit (c), zum Flügel (f), zum Heck (h) oder willst du Zeugen befragen (z)? ") + if i == "c": + return 4 + if i == "f": + return 2 + if i == "h": + return 3 + if i == "z": + return 5 + +def fl(): + global stepscount + stepscount += 1 + if "flügel" in visited: + print("""Du hast den Flügel bereits untersucht.""") + i = userinput("Wo willst du hin? Zum Cockpit (c), zum Heck (h), zum Büro (b) oder willst du Zeugen befragen (z)? ") + if i == "c": + return 4 + if i == "b": + return 1 + if i == "h": + return 3 + if i == "z": + return 5 + else: + print("wrong, retry") + return 2 + else: + print(""" +Der Flügel. Komplett zertrümmert. Er scheint in einem beinahe 90° Winkel +aufgeschlagen zu sein. Du und dein Team finden eine der beiden Turbinen. Du lässt +sie in dein Büro transportieren, um sie dort zu untersuchen. Du kannst entweder +in dein Büro gehen oder weitersuchen.""") + i = userinput("Willst du zurück? (y/n)") + inventory.append("turbine") + visited.append("flügel") + time.sleep(2) + if i == 'y': + return 1 + elif i == 'n': + print("""Du willst also weitersuchen.""") + i = userinput("Wo willst du hin? Zum Cockpit (c), zum Heck (h) oder willst du Zeugen befragen (z)? ") + if i == "c": + return 4 + if i == "h": + return 3 + if i == "z": + return 5 + else: + print("wrong, retry") + return 2 + + + +def hk(): + global stepscount + stepscount += 1 + if "heck" in visited: + print("""Du hast das Heck bereits untersucht.""") + i = userinput("Wo willst du hin? Zum Cockpit (c), zum Flügel (f), zum Büro (b) oder willst du Zeugen befragen (z)? ") + if i == "c": + return 4 + if i == "b": + return 1 + if i == "f": + return 2 + if i == "z": + return 5 + else: + print("wrong, retry") + return 3 + else: + print(""" +Du entdeckst etwas, das wie das Seitenleitwerks des Flugzeugs aussehen könnte. +Dein grösstes Ziel ist, die Blackbox zu finden. Du hebst Teile an, und plötzlich siehst du sie: +Die Blackbox. Du hebst sie auf und lässt sie in dein Büro bringen. """) + inventory.append("blackbox") + time.sleep(1) + visited.append("heck") + i = userinput("Willst du zurück? (y/n)") + if i == 'y': + return 1 + elif i == 'n': + print("""Du willst also weitersuchen.""") + i = userinput("Wo willst du hin? Zum Cockpit (c), zum Flügel (f) oder willst du Zeugen befragen (z)? ") + if i == "c": + return 4 + if i == "f": + return 2 + if i == "z": + return 5 + else: + print("wrong, retry") + return 3 + + + +def zg(): + global stepscount + stepscount += 1 + if "zeugen" in visited: + print("""Du hast die Zeugen bereits befragt.""") + i = userinput("Wo willst du hin? Zum Cockpit (c), zum Flügel (f), zum Büro (b) oder zum Heck (h)? ") + if i == "c": + return 4 + if i == "b": + return 1 + if i == "f": + return 2 + if i == "h": + return 3 + else: + print("wrong, retry") + return 5 + else: + print(""" +Du machst dich auf den Weg in ein nahegelegenes Dorf, da du gehört hast, dass eine Person +den Absturz gesehen hat. + - Hallo. Sie haben den Absturz mitverfolgt? + - Ja habe ich. + - Wollen sie uns etwas darüber erzählen? + - Ja klar. Also. Ich war gerade auf dem Weg nach Hause, als ich ein Flugzeug hörte. Es war lauter + als sonst, deshalb schaute ich auf. Etwas schien ganz und gar nicht gut, denn plötzlich kippte + es zur Seite weg und stürzte vom Himmel. Einfach so. Eine riesige Explosion erschütterte unser Dorf. + - Vielen Dank. Sie haben mir geholfen. + + Du machst dich auf den Weg zurück zur Unfallstelle. Willst du dir direkt Gedanken über die + Aussagen machen? Dafür musst du ins Büro zurück. """) + inventory.append("zeugen") + time.sleep(1) + visited.append("zeugen") + i = userinput("Willst du zurück? (y/n)") + if i == 'y': + return 1 + elif i == 'n': + print("""Du willst also weitersuchen.""") + i = userinput("Wo willst du hin? Zum Cockpit (c), zum Heck (h) oder zum Flügel (f)? ") + if i == "c": + return 4 + if i == "h": + return 3 + if i == "f": + return 2 + else: + print("wrong, retry") + return 5 + + + +def co(): + global stepscount + stepscount += 1 + if "cockpit" in visited: + print("""Du hast das Cockpit bereits untersucht.""") + i = userinput("Wo willst du hin? Zum Heck (h), zum Flügel (f), zum Büro (b) oder willst du Zeugen befragen (z)? ") + if i == "h": + return 3 + if i == "b": + return 1 + if i == "f": + return 2 + if i == "z": + return 5 + else: + print("wrong, retry") + return 4 + else: + print(""" +Du näherst dich der Nase des Flugzeugs. Vorsichtig läufst du umher. Vor dir liegt ein Sensor. +Er scheint defekt zu sein. Du hebst ihn auf und lässt ihn in dein Büro bringen. +Du kannst zurück gehen und ihn untersuchen oder weitersuchen.""") + inventory.append("anstellwinkelsensor") + time.sleep(1) + visited.append("cockpit") + i = userinput("Willst du zurück? (y/n)") + if i == 'y': + return 1 + elif i == 'n': + print("""Du willst also weitersuchen.""") + i = userinput("Wo willst du hin? Zum Flügel (f), zum Heck (h) oder willst du Zeugen befragen (z)? ") + if i == "f": + return 2 + if i == "h": + return 3 + if i == "z": + return 5 + else: + print("wrong, retry") + return 4 + + + + +def main(): + cover() + einfuehrung() + grundriss() + global next + global exit + next = 1 + exit = 0 + while next != 0: + if next == 1: + next = eb() + elif next == 2: + next = fl() + elif next == 3: + next = hk() + elif next == 4: + next = co() + elif next == 5: + next = zg() + else: + print("an error occured. restart. Exit Code:", next) + next = 0 + exit = 0 + gameoverpossible() + if exit == 1: + abspann() + +main() \ No newline at end of file diff --git a/TextAdventure/CRASH EINER B737MAX 8.docx b/TextAdventure/CRASH EINER B737MAX 8.docx new file mode 100755 index 0000000..a3c0d43 Binary files /dev/null and b/TextAdventure/CRASH EINER B737MAX 8.docx differ diff --git a/TextAdventure/FightDay TA.py b/TextAdventure/FightDay TA.py new file mode 100755 index 0000000..e861441 --- /dev/null +++ b/TextAdventure/FightDay TA.py @@ -0,0 +1,612 @@ +import time +import datetime +from random import * +from math import * +from threading import Thread +from turtle import * + +Zahl = randint(1,4) +if Zahl == 4: + Objekt = "Kupferleitung" +elif Zahl == 3: + Objekt = "Metallplatte" +elif Zahl == 2: + Objekt = "Schwarzpulver" +elif Zahl == 1: + Objekt = "rote Lampe" + + + +def cover(): + print("\n \ + ______ _ _ _ _____ \n \ + | ___|(_) | | | | | __ \ \n \ + | |__ _ __ _| |__ | |_ | | | | __ _ _ _ \n \ + | __| | |/ _` | '_ \| __| | | | |/ _` | | | |\n \ + | | | | (_| | | | | |_ | |__| | (_| | |_| |\n \ + |_| |_|\__, |_| |_|\__| |_____/ \__,_|\__, |\n \ + __/ | __/ |\n \ + |___/ |___/ ") + time.sleep(3) + +def einfuehrung(): + print("\n \n Es ist kurz nach Mittag.\n Du bist Teckniker beim Militär und mit deinen Kollegen in einem kompakten \ +Flugzeughangar des Militärs.\n \ +Plötzlich geht ein lauter Alarm los und du wirst von deinen Kollegen dazu aufgefordert, \n \ +ein Kampfflugzeug startklar zu machen.\n 'Geh und hole das Ersatzteil für den rechten Flügel!' \ +ruft dein Kollege.") + time.sleep(9) + +def grundriss(): + print ("\n Links von dir ist das Büro deines Vorgesetzten, \n rechts sind weitere Räume mit Materialien \ +für die Techniker, \n vor dir steht das Kampfflugzeug.\n Du kannst die vier Himmelsrichtungen (Norden, Osten, \ +Süden, Westen) zur Steuerung verwenden.") + time.sleep(7) + print("Los gehts!") + time.sleep(1) + showHelp() + time.sleep(5) + + +def Hangar(): + print("\n Du befindest dich am hinteren Ende des Hangars.") + time.sleep(1) + action = getUserAction() + if action == 'o': + return 2 + elif action == 'w': + return 3 + elif action == 'egal': + print("\n Mir auch egal. Lass uns eingach sagen, dass du es geschafft hast.") + time.sleep(3) + elif action == 'n': + return 4 + else: + handleStandardAction(action) + return 1 + + + +def Objektraum(): + print("\n Willkommen im Raum der Ersatzteile.") + time.sleep(1) + print("\n Du kannst nun einen von acht Gegenständen mitnehmen. \ +\n \t-Metallrohr \n \t-Kupferleitung \n \t-Metallplatte \n \t-Kupferrohr \n \t-Gewehrlauf \n \t-Schwarzpulver \ +\n \t-rote Lampe \n \t-blaue Lampe") + time.sleep(3) + objekt = input("Welches Objekt willst du mitnehmen? ") + + if objekt == Objekt: + print("Gut...") + inventory.append(Objekt) + action = getUserAction() + while action != 'w': + handleStandardAction(action) + action = getUserAction() + return 1,1 + + elif objekt != 'Metallrohr' and objekt != 'Kupferleitung' and objekt != 'Metallplatte' and objekt != 'Kupferrohr' and objekt != 'Gewehrlauf' and objekt != 'Schwarzpulver' and objekt != 'rote Lampe' and objekt != 'blaue Lampe': + handleStandardAction(objekt) + + print("\n Dies ist leider nicht das korrekte Objekt, versuch es noch einmal.") + Tipp = input("Willst du einen Tipp für das korrekte Objekt? ").lower() + if Tipp == 'ja': + print("\n Begebe dich in das Büro um Unterlagen zu den Ersatzteilen zu bekommen.") + time.sleep(2) + + + action = getUserAction() + while action != 'w': + handleStandardAction(action) + action = getUserAction() + return 1,0 + + else: + print("Okay") + + action = getUserAction() + while action != 'w': + handleStandardAction(action) + action = getUserAction() + return 1,0 + + +def Büro(): + print("\nWillkommen im Büro des Kommandanten.") + time.sleep(1) + print("Vor dir liegen 3 Dokumente: \n \t- 1.Ersatzteile F-16 Tiger\ +\n \t- 2. Ersatzteile F/A-18 Hornet \n \t- 3.Ersatzteile Saab Gripen \n Mehr Informationen über den \ +richtigen Flugzeugtypen kriegst du beim Flugzeug.") + time.sleep(2) + dokument = (input("\n Welches Dokument willst du anschauen?(Nr. des Dokumentes eingeben) ")) + + if (randint(1,3) > 2): + print("\n\nDeine Basis wurde von einer feindlichen Luft-Boden Rakete getroffen!!!") + time.sleep(2) + print("Der Raum füllt sich schnell mit Rauch.") + time.sleep(2) + print("Du musst schnellstmöglich in den \ +Hangar zum Feuerlöscher kommen.") + time.sleep(2) + print("Du hast nur noch 3 sekunden um aus dem Raum zu kommen!") + time.sleep(2) + + now = datetime . datetime . now () + midnight = now . replace ( hour =0 , minute =0 , second =0 , microsecond =0) + seconds1 = ( now - midnight ) . seconds + + action = getUserAction() + + while action != 'o': + now = datetime . datetime . now () + midnight = now . replace ( hour =0 , minute =0 , second =0 , microsecond =0) + seconds2 = ( now - midnight ) . seconds + if ((seconds2 - seconds1)>3): + print("\nDu kannst dich nicht mehr retten und das Feuer verschlingt dich!") + time.sleep(1) + verloren() + + else: + handleStandardAction(action) + action = getUserAction() + + now = datetime . datetime . now () + midnight = now . replace ( hour =0 , minute =0 , second =0 , microsecond =0) + seconds2 = ( now - midnight ) . seconds + if ((seconds2 - seconds1)>3): + verloren() + else: + print("\nDu schaffst es gerade noch aus dem Raum hinauszurennen.") + time.sleep(2) + print("Du packst den Feuerlöscher\n\ +und kannst das Büro rechtzeitig von den Flammen befreien.") + time.sleep(4) + return 1 + + + while dokument != "1" and dokument != "2" and dokument != "3": + handleStandardAction(dokument) + print("Achte darauf, dass du nur die Zahl des Dokumentes eingibst.") + dokument = (input("\n Welches Dokument willst du anschauen?(Nr. des Dokumentes eingeben) ")) + + + if dokument == '1': + print("\n Ersatzteile: rechter Flügel => Kupferleitung, linker Flügel => rote Lampe") + elif dokument == '2': + print("Ersatzteile: rechter Flügel => ",end="") + print(Objekt,end=", ") + print("linker Flügel => blaue Lampe") + elif dokument == '3': + print("\n Ersatzteile: rechter Flügel => rote Lampe, linker Flügel => Metallröhre") + + action = getUserAction() + + while action != 'o': + handleStandardAction(action) + action = getUserAction() + return 1 + +def Kampfflugzeug(o): + print("\n Du befindest dich nun beim Kampfflugzeug F/A-18.") + time.sleep(1) + if o == 0 or o == 1: + action = input("Hast du das korrekte Ersatzteil dabei und willst es einbauen? ").lower() + if action == 'ja' and o == 1: + time.sleep(1.5) + inventory.remove(Objekt) + print("\nSuper, du hast das Flugzeug repariert!") + time.sleep(1) + print("Nun musst den Kampfjet zum Starten auf die Startbahn bringen.\nÖffne zuerst das Tor vor dir und \ +hole anschliessend den Pushback, welcher hinter dem Tor steht.") + time.sleep(2) + d = getUserAction() + while d != 'n' and d != 's' and d != 'o' and d != 'w': + handleStandardAction(d) + d = getUserAction() + if d == 'n': + return 5,2 + elif d == 's': + return 1,2 + elif action == 'o': + return 2,2 + elif action == 'w': + return 3,2 + + elif action != 'ja' and action != 'nein': + handleStandardAction(action) + + if o == 0: + print("\n Du hast das richtige Ersatzteil leider nicht dabei.\n Hol zuerst das richtige Ersatzteil im \ +Raum der Techniker.") + else: + Kampfflugzeug(o) + time.sleep(1) + action = getUserAction() + + if action == 'o': + return 2,0 + elif action == 'w': + return 3,0 + elif action == 'egal': + print("\n Mir auch egal, lass uns einfach sagen du hast es geschafft.") + time.sleep(4) + elif action == 's': + return 1,0 + else: + handleStandardAction(action) + return 4,0 + else: + time.sleep(1) + action = getUserAction() + if action == 'o': + return 2,2 + elif action == 'w': + return 3,2 + elif action == 'egal': + print("\n Mir auch egal, lass uns einfach sagen, dass du es geschafft hast.") + time.sleep(4) + elif action == 's': + return 1,2 + elif action == "n": + return 5,2 + else: + handleStandardAction(action) + return 4,2 + +def Tor(): + print("\nDu befindest dich beim Tor. Gib den korrekten Code ein um es zu öffnen.\n \ +Den Code findest du in deinem Inventar") + time.sleep(1) + Code = input("Code:").lower() + + if Code == '4934': + print("Sehr gut, das Tor öffnet sich.") + d = getUserAction() + while d != 's' and d != 'n': + handleStandardAction(d) + d = getUserAction() + if d == 's': + return 4 + if d == 'n': + return 6 + elif Code == "9768" or Code == "1234" or Code == "1482": + print("Dies ist leider nicht der korrekte Code.") + tipp = input("Willst du einen Tipp für den korrekten Code?") + if tipp == "ja": + print("Die erste Nummer des Codes ist die zweite Nachkommastelle von Pi") + time.sleep(3) + return 5 + else: + return 5 + else: + handleStandardAction(Code) + return 5 + + +def draussen(): + print("\nDu stehst draussen vor dem Hangar.\n Du musst den Flieger nur noch mit dem Pushback auf die Startbahn bringen.") + time.sleep(1) + print("Geh nach Norden und anschliessen nach Westen um den Pushback zu holen und ihn an den Jet anzuschliessen.\n") + D = getUserAction() + while D != "n": + handleStandardAction(D) + D = getUserAction() + + print("Gut") + time.sleep(0.5) + + D = getUserAction() + while D != "w": + handleStandardAction(D) + D = getUserAction() + + time.sleep(1) + return 7 + +def Pushback(): + print("\nDu bist beim Pushback angekommen und schliesst ihn an das Kampfflugzeug an.") + time.sleep(2) + print("Du steigst in den Pushback ein und musst ihn mit dem Flieger zum Anfang der Piste fahren.") + time.sleep(3) + print("Dein Zielort wird auf der Piste mit vier kleinen orangen Vierecken gekennzeichnet sein.") + time.sleep(5) + print("\nJetzt musst du mit den Rechts- Linkspfeilen deiner Tastatur den Pushback steuern.") + print("Wenn du den rechten Pfeil einmal drückst macht der Pushback eine Rechtskurve und umgekehrt.") + time.sleep(6) + print("Wenn sich kein neues Fenster automatisch öffnet,\n\ +musst du noch manuell unten in deiner Leiste auf das neue Programm draufklicken.") + time.sleep(3) + d = input("Bist du bereit?") + while d != "ja": + handleStandardAction(d) + d = input("Bist du bereit?") + onkey(golt,"Left") + onkey(gort,"Right") + listen() + ht() + pu() + speed(0) + width(3) + tracer(0) + sc=Screen() + sc.setup(1200,600) + + a = -500 + b = -300 + c = True + f = 1 + corx2 = 576 + cory2 = 260 + + while c: + clear() + Startpunkt() + Piste() + Ende() + setpos(a,b) + pd() + drawCart() + pu() + fd(1.5) + rt(90) + a = xcor() + b = ycor() + if ((a > 566) and (a < 587)) and ((b > 250) and (b < 270)): + lt(90) + for i in range(130): + clear() + Startpunkt() + Piste() + setpos(corx2,cory2) + pd() + Jet() + pu() + lt(180) + setheading(towards(620,260)) + backward(f) + f = f + 0.2 + corx2 = xcor() + cory2 = ycor() + update() + time.sleep(1) + clear() + setpos(0,0) + if __name__ == '__main__': + Thread(target = abspann).start() + for i in range(10000): + a = random() + b = random() + c = random() + bgcolor(a, b, c) + color("Black") + write("\tNice \nDu hast es geschafft!!!",align = "center", font=("Castellar", 20, "normal")) + c = False + update() + +def Startpunkt(): + color("black") + setpos(-500,-300) + fd(16) + lt(90) + fd(16) + for i in range(4): + pd() + begin_fill() + for i in range(4): + fd(6) + rt(90) + end_fill() + pu() + lt(90) + fd(32) + +def Ende(): + width(1) + color("black","orange") + pu() + setpos(576,260) + fd(10) + lt(90) + fd(10) + for i in range(4): + pd() + begin_fill() + for i in range(4): + fd(5) + rt(90) + end_fill() + pu() + lt(90) + fd(20) + rt(90) + width(3) + + +def drawCart(): + rt(90) + color("black","gold") + begin_fill() + fd(12) + left(90) + fd(15) + left(90) + fd(8) + rt(90) + fd(5) + lt(90) + fd(8) + lt(90) + fd(5) + rt(90) + fd(8) + lt(90) + fd(15) + lt(90) + fd(12) + lt(90) + end_fill() + rt(90) + width(2) + color("black","silver") + begin_fill() + rt(60) + fd(17) + rt(120) + fd(5) + lt(120) + fd(30) + rt(120) + fd(15) + lt(90) + fd(3) + rt(90) + fd(6) + rt(90) + fd(3) + lt(90) + fd(15) + rt(120) + fd(30) + lt(120) + fd(6) + rt(120) + fd(17) + rt(60) + end_fill() + lt(90) + +def Jet(): + width(2) + color("black","silver") + begin_fill() + rt(60) + fd(17) + rt(120) + fd(5) + lt(120) + fd(30) + rt(120) + fd(15) + lt(90) + fd(3) + rt(90) + fd(6) + rt(90) + fd(3) + lt(90) + fd(15) + rt(120) + fd(30) + lt(120) + fd(6) + rt(120) + fd(17) + rt(60) + end_fill() + lt(90) + +def Piste(): + setpos(0,790) + width(10) + color("dimgray","gray") + begin_fill() + fd(600) + lt(90) + pd() + fd(600) + for i in range(3): + lt(90) + fd(1200) + lt(90) + fd(600) + rt(90) + pu() + backward(600) + end_fill() + width(3) + + +def gort(): + right(90) + +def golt(): + left(90) + + +def abspannturtle(): + for i in range(10000): + a = random() + b = random() + c = random() + bgcolor(a, b, c) + color("Black") + write("\tNice \nDu hast es geschafft!!!",align = "center", font=("Castellar", 20, "normal")) + +def abspann(): + print("\n \n \t Gratuliere!!! \n \t Du hast es geschafft, das Flugzeug korrekt zu reparieren\ +\n \t und auf die Startbahn zu bringen.\n \t THE END") + time.sleep(30) + +def verloren(): + print("\n\n\t Du hast es leider nicht geschafft und bist gestorben. \n\t Versuch es nochmal!\n") + time.sleep(999) + +def showInventory(): + time.sleep(0.5) + a = 0 + for i in range(len(inventory)): + print("-",inventory[a]) + a = a + 1 + +def showHelp(): + print("""\nnorden = n \tsüden = s +osten = o \twesten = w +show help = h \tshow inventory = i""") + +def getUserAction(): + action = input("Wohin willst du gehen?").lower() + return action + +def handleStandardAction(action): + if action == 'i': + #inventar anzeigen: + showInventory() + elif action == 'h': + showHelp() + elif action in ['n','s','o','w']: + print("Da kannst du leider nicht lang") + else: + print("\nDas verstehe ich leider nicht") + +inventory = ["Code Tor Nr. 1: 9768","Code Tor Nr. 2: 1234","Code Tor Nr. 3: 4934", "Code Tor Nr. 4: 1482","Schraubenzieher","Messlatte"] + +def main(): + cover() + einfuehrung() + grundriss() + next = 1 + objekt = 0 + while next != 0: + if next == 1: + next = Hangar() + elif next == 2: + next1 = Objektraum() + next = next1[0] + objekt = next1[1] + elif next == 3: + next = Büro() + elif next == 4: + next2 = Kampfflugzeug(objekt) + next = next2[0] + objekt = next2[1] + elif next == 5: + next = Tor() + elif next == 6: + next = draussen() + elif next == 7: + next = Pushback() + elif next == 10: + abspann() + +main() + diff --git a/TextAdventure/Mousechaser.py b/TextAdventure/Mousechaser.py new file mode 100755 index 0000000..ead5981 --- /dev/null +++ b/TextAdventure/Mousechaser.py @@ -0,0 +1,18 @@ +import turtle +class Main(): + def __init__(self): + wn = turtle.Screen() + wn.setup(600, 600) + screen = wn.getcanvas() + self.t = turtle.Turtle() + self.x = 300 + self.y = 300 + screen.bind('', self.set_coords) + self.run() + def set_coords(self, event): + self.x = event.x + self.y = event.y + def run(self): + while True: + self.t.setposition(self.x-300, (self.y*-1)+300) +m = Main() \ No newline at end of file diff --git a/TextAdventure/Other Chaser.py b/TextAdventure/Other Chaser.py new file mode 100755 index 0000000..7c2a2a9 --- /dev/null +++ b/TextAdventure/Other Chaser.py @@ -0,0 +1,9 @@ +import turtle + +screen = turtle.Screen() + +def goto_loc(x, y): + turtle.goto(x, y) + + +screen.onscreenclick(goto_loc,1) \ No newline at end of file diff --git a/TextAdventure/Spiel Schiff.py b/TextAdventure/Spiel Schiff.py new file mode 100755 index 0000000..0f816c0 --- /dev/null +++ b/TextAdventure/Spiel Schiff.py @@ -0,0 +1,47 @@ +import turtle +#import math +import time + +screen = turtle.Screen() + +screen.setup(1280,720) + +turtle.speed(0) +s1_t = turtle.Turtle() +s1_main = turtle.Turtle() +mouseaim = turtle.Turtle() + + +s1_t.ht() +s1_main.ht() +mouseaim.pu() +mouseaim.speed(0) + + +#turtle.tracer(0) + +def turret(): + screen.clear() + s1_t.dot(15) + s1_t.width(3) + s1_t.fd(20) + screen.update() + s1_t.home() + screen.onscreenclick(goto_loc,1) + +def body(): + print("ok") + + +def ship(): + print("ok") + +def goto_loc(x, y): + mouseaim.goto(x, y) + s1_t.setheading(s1_t.towards(x, y)) + turret() + + +screen.onscreenclick(goto_loc,1) + + diff --git a/TextAdventure/Text Adventure.py b/TextAdventure/Text Adventure.py new file mode 100755 index 0000000..6646ac9 --- /dev/null +++ b/TextAdventure/Text Adventure.py @@ -0,0 +1,295 @@ +import time + +global bbs +bbs = 0 +global location + +def cover(): + print(""" + + + + + + + + + + + + + + + + + + ______ ______ ______ ______ _______ _______ _____ +( ___ \ / ___ \ / ___ \ / ___ \ ( )( ___ )|\ /| / ___ \ +| ( ) )\/ ) )\/ \ \\/ ) )| () () || ( ) |( \ / ) ( (___) ) +| (__/ / / / ___) / / / | || || || (___) | \ (_) / \ / +| __ ( / / (___ ( / / | |(_)| || ___ | ) _ ( / ___ \ +| ( \ \ / / ) \ / / | | | || ( ) | / ( ) \ ( ( ) ) +| )___) ) / / /\___/ / / / | ) ( || ) ( |( / \ ) ( (___) ) +|/ \___/ \_/ \______/ \_/ |/ \||/ \||/ \| \_____/ + + _______ _______ _______ _______ +( ____ \( ____ )( ___ )( ____ \|\ /| +| ( \/| ( )|| ( ) || ( \/| ) ( | +| | | (____)|| (___) || (_____ | (___) | +| | | __)| ___ |(_____ )| ___ | +| | | (\ ( | ( ) | ) || ( ) | +| (____/\| ) \ \__| ) ( |/\____) || ) ( | +(_______/|/ \__/|/ \|\_______)|/ \| + + + + + + +""") + time.sleep(2) + +def einfuehrung(): + print("Es ist der 10. März 2019. Ein warmer Wind weht über den Ort.\n\n Es ist genau 8 Uhr 44 Ortszeit. \n\n Plötzlich hörst du ein Heulen, ein Krachen, eine Explosion. \n Du rennst hin und siehst ein abgestürztes Flugzeug. ") + time.sleep(4) + +def grundriss(): + print ("""Die Absturzstelle: + _________________________________ + | | + | | + | Cockpit | + | | + | | + | Flügel + Trubinen | + | | + | | + | Heck mit Blackboxen | + | | + | | + | | + |_________________________________| + | | + | | + | Ermittlerbüro | + | | + | | + |_________________| + + + Deine Aufgabe ist es nun, herauszufinden, weshalb dies + Flugzeug abgestürzt ist und alle 157 Menschen an Board + von Ethiopian Airlines Flug 302 gestorben sind. + Ein wenig Hintergrund: Etwa 5 Monate zuvor, am 29. Oktober + 2018 ist eine Maschine desselben Typs in Indonesien nahezu + senkrecht abgestürzt und hat alle Menschen an Board in den + Tod gerissen. Anhand dessen, was du bereits aus der + Absturzstelle schliessen konntest, ist dasselbe auch hier + geschehen, das Flugzeug ist wie ein Stein vom Himmel gefallen. + (Für Hilfe schreibe ein "?" als Antwort auf die Fragen wohin) +""") + +def abspann(): + print(""" +Du machst dich, nachdem du all dies herausgefunden hast daran, einen Abschlussbericht zu schreiben. +Diesen veröffentlichst du sobald du fertig bist. Boeing bessert das MCAS nach. +Du bist stolz auf dich und gehst zufrieden nach Hause. +""") + print("THE END") + +def eb_start(): + print("""Willkommen im Ermittlerbüro. +Entscheide dich jetzt, ob du hier etwas untersuchen willst, +oder lieber das Gelände untersuchst.""") + a = input("Bleiben (b) oder weggehen (w)? ").lower() + if a == "b": + return 51 + elif a == "w": + d = input("Wohin willst du gehen? (Heck (h), Flügel (f), Cockpit (c) ").lower() + if d == "h": + return 21 + elif d == "f": + return 31 + elif d == "c": + return 41 + elif d == "?": + return 99 + else: + print("unbekannt") + +def eb_inside(): + global bbs + if bbs == 0: + print("""Hier im Ermittlerbüro kannst du Dinge, wie die Blackboxes untersuchen. +Dafür musst du sie jedoch erst finden und bergen. +Gehe dazu hinaus auf die Absturzstelle. +Sie könnten wichtige Informationen enthalten. +""") + d = input("Wohin willst du gehen? (Heck (h), Flügel (f), Cockpit (c) ").lower() + if d == "h": + return 25 + elif d == "f": + return 35 + elif d == "c": + return 45 + elif d == "?": + return 99 + else: + print("unbekannt") + + elif bbs == 1: + print(""" +Du hälst die Blackboxes in den Händen, aber sie werden dir langsam zu schwer. +Deshalb stellst du sie ab um deine Hände auszuruhen. +Um die darin enthaltenen Flugdaten zu erhalten, musst du +den Flugdatenschreiber und Stimmenrekorder aufschrauben. +Also machst du dich daran. +""") + time.sleep(8) + print("""Perfekt, der Datenschreiber ist offen. Er sieht ok aus, du gehst davon aus, +dass du die Daten selber auswerten kannst. Um aber nicht warten zu müssen, falls der +Stimmenrekoder schlechter aussieht, öffnest du auch ihn. +""") + time.sleep(8) + print(""" +Du konntest die Schrauben nur schwerlich entfernen, da der Stimmenrekorder +ziemlich stark beschädigt ist. Wie es aussieht muss er eingesendet werden, in ein +Labor des NTSB (National Transport Safety Board) in Washington DC. Dies dauert +eine Weile, aber zum Glück ist es einem deiner Mitarbeiter gelungen, folgende Daten +aus dem Flugdatenschreiber zu bergen: + +Das Flugzeug konnte nach dem Start nicht stabil fliegen. +Die Höhe schwankte ziemlich stark, die Stickinputs waren +enorm. Es sieht danach aus, als kämpften die Piloten gegen etwas. +Auch die Fluggeschwindigkeit schwankte extrem. +Beide Anstellwinkelsensoren der Boeing lieferten andere Werte. + +Du bist verwirrt. Eigentlich sollten Flugzeuge nicht nur zwei Sensoren haben sondern 3. +Du wirst hellhörig. + +""") + time.sleep(10) + print(""" +Mittlerweile sind die Daten aus Washington eingetroffen. Wie man das bereits in den +Flugdaten erahnen konnte, kämpften die Piloten gegen etwas. Jetzt wird klar, das sie gegen +ein System kämpften. Aber gegen welches. +""") + d = input("Was willst du jetzt tun? Selber nachforschen (s) oder ein Flugzeug anschauen (f)? ").lower() + if d == "s": + print("Du versuchst es selber. Nach längerem überlegen fällt dir auf, dass es doch eine bessere Idee gewesen wäre, \n ein Flugzeug anzuschauen und tust dies auch") + return 100 + elif d == "f": + return 100 + elif d == "?": + return 99 + else: + print("unbekannt") + + + +def flugzeug_see(): + print(""" +Du kommst bei Southwest airlines an. Denn diese Airline ist eine der grössten Betreiberinnnen +der Boeing 737MAX 8. + """) + + +def he_eb(): + print("Willkommen in Raum 2") + d = input("Wohin?").lower() + if d == 'sueden': + return 3 + elif d == 'westen': + return 1 + else: + print("Da kannst Du leider nicht lang.") + return 2 + +def co_eb(): + print(""" + +Du läufst am Heck und den Flügeln vorbei, denn du willst ins Cockpit. +Dort angekommen erlebst du eine grosse Entteuschung. +Nichts nützliches ist vorhanden, alles ist verbrannt. +""") + d = input("Wohin willst du jetzt gehen? (Heck (h), Flügel (f), Zurück (b) ").lower() + if d == "h": + return 2 + elif d == "f": + return 3 + elif d == "b": + return 1 + elif d == "?": + return 99 + else: + print("unbekannt") + +def he_ebi(): + print(""" +Du läufst aus dem Ermittlerbüro zum Heck des Flugzeugs. +""") + global bbs + if bbs == 0: + print(""" +Da du auf der Suche nach den Blackboxes bist, beginnst du damit, Metallstücke umherzuschieben, +dass du sie möglicherweise finden kannst. +""") + time.sleep(10) + bbses() + bbs = 1 + else: + print(""" +Du hast diesen Bereich bereits untersucht und gehst zurück. +""") + return 12 + +def bbses(): + print(""" +Plötzlich siehst du ein bischen Orange unter einem grossen Stück des Seitenleitwerkes +hervorblitzen. Du rufst jemanden dazu. Ihr verschiebt das Stück und tatsächlich: Es +ist der Flugdatenschreiber. + +ERFOLG FREIGESCHALTET: DER SCHREIBER + +Ihr sucht weiter, denn der Rekorder kann nicht weit sein. Und das ist er auch nicht. +Du drehst ein weiteres Stück Metall, diesmal wahrscheinlich vom Seitenruder, um und da ist er. + +ERFOLG FREIGESCHALTET: DER REKORDER + +ERFOLG FREIGESCHALTET: BLACKBOX + +""") + + +def main(): + cover() + einfuehrung() + grundriss() + next = 10 + while next != 0: + if next == 10: + next = eb_start() + elif next == 12: + next = he_done() + elif next == 21: + next = he_eb() + elif next == 25: + next = he_ebi() + elif next == 31: + next = fl_eb() + elif next == 35: + next = fl_ebi() + elif next == 41: + next = co_eb() + elif next == 45: + next = co_ebi() + elif next == 51: + next = eb_inside() + elif next == 99: + next = help() + elif next == 100: + next = flugzeug_see + location = next + abspann() + +main() \ No newline at end of file diff --git a/TextAdventure/The House.py b/TextAdventure/The House.py new file mode 100755 index 0000000..9cd0419 --- /dev/null +++ b/TextAdventure/The House.py @@ -0,0 +1,754 @@ +import time +global inventory +inventory = [] +global besucht +besucht = [] +global ausgeloest +ausgeloest = [] + + +def cover(): + print(""" + +▄▄▄█████▓ ██░ ██ ▓█████ ██░ ██ ▒█████ █ ██ ██████ ▓█████ +▓ ██▒ ▓▒▓██░ ██▒▓█ ▀ ▓██░ ██▒▒██▒ ██▒ ██ ▓██▒▒██ ▒ ▓█ ▀ +▒ ▓██░ ▒░▒██▀▀██░▒███ ▒██▀▀██░▒██░ ██▒▓██ ▒██░░ ▓██▄ ▒███ +░ ▓██▓ ░ ░▓█ ░██ ▒▓█ ▄ ░▓█ ░██ ▒██ ██░▓▓█ ░██░ ▒ ██▒▒▓█ ▄ + ▒██▒ ░ ░▓█▒░██▓░▒████▒ ░▓█▒░██▓░ ████▓▒░▒▒█████▓ ▒██████▒▒░▒████▒ + ▒ ░░ ▒ ░░▒░▒░░ ▒░ ░ ▒ ░░▒░▒░ ▒░▒░▒░ ░▒▓▒ ▒ ▒ ▒ ▒▓▒ ▒ ░░░ ▒░ ░ + ░ ▒ ░▒░ ░ ░ ░ ░ ▒ ░▒░ ░ ░ ▒ ▒░ ░░▒░ ░ ░ ░ ░▒ ░ ░ ░ ░ ░ + ░ ░ ░░ ░ ░ ░ ░░ ░░ ░ ░ ▒ ░░░ ░ ░ ░ ░ ░ ░ + ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ + + + +--------------------------------------------------------------------- + + """) + time.sleep(3) + +def uinput(question): + return input(question).lower() + +def error(): + print("Dieser Befehl ist mir leider nicht bekannt :/\n" + "Bitte erneut versuchen\n") + +def gameover(): + print(""" + + + ▄████ ▄▄▄ ███▄ ▄███▓▓█████ ▒█████ ██▒ █▓▓█████ ██▀███ + ██▒ ▀█▒▒████▄ ▓██▒▀█▀ ██▒▓█ ▀ ▒██▒ ██▒▓██░ █▒▓█ ▀ ▓██ ▒ ██▒ +▒██░▄▄▄░▒██ ▀█▄ ▓██ ▓██░▒███ ▒██░ ██▒ ▓██ █▒░▒███ ▓██ ░▄█ ▒ +░▓█ ██▓░██▄▄▄▄██ ▒██ ▒██ ▒▓█ ▄ ▒██ ██░ ▒██ █░░▒▓█ ▄ ▒██▀▀█▄ +░▒▓███▀▒ ▓█ ▓██▒▒██▒ ░██▒░▒████▒ ░ ████▓▒░ ▒▀█░ ░▒████▒░██▓ ▒██▒ + ░▒ ▒ ▒▒ ▓▒█░░ ▒░ ░ ░░░ ▒░ ░ ░ ▒░▒░▒░ ░ ▐░ ░░ ▒░ ░░ ▒▓ ░▒▓░ + ░ ░ ▒ ▒▒ ░░ ░ ░ ░ ░ ░ ░ ▒ ▒░ ░ ░░ ░ ░ ░ ░▒ ░ ▒░ +░ ░ ░ ░ ▒ ░ ░ ░ ░ ░ ░ ▒ ░░ ░ ░░ ░ + ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ + ░ + + +------------------------------------------------------------------------- +""") + +def regeln(): + print("Bevor wir starten, ein paar Anmerkungen.\n" + "Bitte alles was du schreibst IMMER in Kleibuchstaben verfassen.\n" + "Es wird immer MAXIMAL ein Wort benötigt.\n" + "Du hast einen Rucksack dabei, in dem du Dinge mitnehmen kannst.\n") + + time.sleep(2) + +def visited(ort): + besucht.append(ort) + +def einfuehrung(): + print("Es ist Freitag Nacht...\n" + + + "Du hast dich verlaufen und bist auf der Suche nach einer Unterkunft\n" + "für die kommende Nacht.\n" + "Du bist ganz auf dich alleine gestellt.\n" + "Wenn du nicht aufpasst, wirst du sterben.\n" + "Sei vorsichtig und überlege dir jede Entscheidung gut.\n" + "Es gibt kein Zurück!!\n" + + "Du bist ganz alleine an einer abgelegenen Strasse.\n" + "Es stürmt und ist eiskalt.\n" + "Plötzlich kommst du zu einem alten Haus.\n" + "Es sieht unheimlich aus.\n") + time.sleep(5) + +def grundriss(): + print (""" + DU BIST HIER + | + __________ ____|______ _______ ____ + | | | | | | + |Wohnzimmer|____| Flur |____|Schlafzimmer| + | | | | | | + |__ _____ _| |__ ______ _| |___ ___ ____| + | | + | | + | | + ____|____ ________ __ ______|_____ + | | | | | | + | Küche |____| Flur |____| Badezimmer | + | | | | | | + |__ _____ _| |__ ________| |_ __________| + | + | + | + _____|_ ____ + | | + | Keller | + | | + |_________ __| + + + +""") + time.sleep(3) + + +def lageplan(): + print(""" + + _______ ___________ _______ ____ + | | | | | | + |Wohnzimmer|____| Flur |____|Schlafzimmer| + | | | | | | + |__ _____ _| |__ ______ _| |___ ___ ____| + | | + | | + | | + ____|____ ________ __ ______|_____ + | | | | | | + | Küche |____| Flur |____|Badezimmer | + | | | | | | + |__ _____ _| |__ ________| |_ __________| + | + | + | + _____|______ + | | + | Keller | + | | + |____________| + + + """) + +def abspann(): + print(""" + + +▄▄▄█████▓ ██░ ██ ▓█████ ▓█████ ███▄ █ ▓█████▄ +▓ ██▒ ▓▒▓██░ ██▒▓█ ▀ ▓█ ▀ ██ ▀█ █ ▒██▀ ██▌ +▒ ▓██░ ▒░▒██▀▀██░▒███ ▒███ ▓██ ▀█ ██▒░██ █▌ +░ ▓██▓ ░ ░▓█ ░██ ▒▓█ ▄ ▒▓█ ▄ ▓██▒ ▐▌██▒░▓█▄ ▌ + ▒██▒ ░ ░▓█▒░██▓░▒████▒ ░▒████▒▒██░ ▓██░░▒████▓ + ▒ ░░ ▒ ░░▒░▒░░ ▒░ ░ ░░ ▒░ ░░ ▒░ ▒ ▒ ▒▒▓ ▒ + ░ ▒ ░▒░ ░ ░ ░ ░ ░ ░ ░░ ░░ ░ ▒░ ░ ▒ ▒ + ░ ░ ░░ ░ ░ ░ ░ ░ ░ ░ ░ ░ + ░ ░ ░ ░ ░ ░ ░ ░ ░ + ░ +----------------------------------------------------- + + +""") + +def eintreten(): + aktion = uinput('Willst Du eintreten oder weglaufen?') + if aktion == 'eintreten': + return 1 + + elif aktion == 'weglaufen': + print("\n" + "Du läufst davon voller Angst... \n" + "Doch schon nach kurzer Zeit wird dir bewusst...\n" + "Du musst zurück wenn du diese Nacht überleben willst.\n") + time.sleep(3) + eintreten() + + else: + error() + time.sleep(2) + eintreten() + +def flur_1(): + if "lampe" in inventory: + print("Du bist nun auf dem Flur.\n") + lageplan() + f = uinput("Wohin willst du?") + if f == "schlafzimmer": + return 4 + elif f == "wohnzimmer": + return 3 + else: + print("Du kannst diesen Raum nicht direkt betreten.\n") + return 1 + else: + inventory.append("lampe") + print("\n" + "(Du findest eine Lampe und steckst sie in dein Inventar)\n" + "Du stehst auf einem Flur.\n" + "Das Haus sieht alt und verlassen aus.\n" + "Doch plötzlich hörst du etwas...\n" + "Schritte vielleicht?\n") + d = input("Willst du im Schlafzimmer oder im Wohnzimmer nachsehen?").lower() + if d == "schlafzimmer": + return 4 + elif d == "wohnzimmer": + return 3 + else: + error() + time.sleep(2) + inventory.remove("lampe") + return 1 + +def flur_2(): + if "flur2" in besucht: + print("Du bist nun auf dem Flur.\n") + if "schlüssel" in inventory: + if "tür" not in besucht: + q = uinput("Willst du die Türe öffnen?") + if q == "ja": + if "schlüssel" in inventory: + return 7 + else: + print("Du brauchst einen Schlüssel um diese Türe zu öffnen.\n") + elif q == "nein": + time.sleep(3) + lageplan() + f = uinput("Wohin willst du?") + if f == "badezimmer": + return 6 + elif f == "küche": + return 5 + else: + print("Du kannst diesen Raum nicht direkt betreten.\n") + return 2 + else: + besucht.remove("tür") + lageplan() + f = uinput("Wohin willst du?") + if f == "badezimmer": + return 6 + elif f == "küche": + return 5 + else: + print("Du kannst diesen Raum nicht direkt betreten.\n") + return 2 + else: + lageplan() + f = uinput("Wohin willst du?") + if f == "badezimmer": + return 6 + elif f == "küche": + return 5 + else: + print("Du kannst diesen Raum nicht direkt betreten.\n") + return 2 + else: + print("Du stehst erneut auf einem Flur...\n" + "Er sieht aber anderst aus als der beim Hauseingang.\n" + "Deutlich düsterer... und eine Tür die in einen anderen Raum führt.\n" + "In den Keller vielleicht?\n") + i = uinput("Willst du die Türe öffnen?") + if i == "nein": + visited("flur2") + visited("tür") + return 2 + elif i == "ja": + if "schlüssel" in inventory: + inventory.remove("schlüssel") + return 7 + else: + print("Die Türe scheint verschlossen zu sein.\n" + "Du brauchst einen Schlüssel um diesen Raum zu betreten.\n") + time.sleep(3) + lageplan() + j = uinput("Wohin willst du?") + if j == "badezimmer": + return 6 + visited("flur2") + elif j == "küche": + return 5 + visited("flur2") + else: + error() + time.sleep(2) + return 2 + else: + error() + return 2 + +def wohnzimmer(): + if "wohnzimmer" in besucht: + print("Du bist nun im Wohnzimmer.\n") + f = input("Wohin willst du?").lower() + lageplan() + if f == "flur": + return 1 + elif f == "küche": + return 5 + else: + print("Du kannst diesen Raum nicht direkt betreten.\n") + return 3 + else: + print("\n" + "Du gehst aufmerksam ins Wohnzimmer.\n" + "Du blickst umher.\n" + "Da links! Eine schwarze Gestalt steht im nächsten Zimmer!\n" + "Geschockt bleibst du stehen und planst dein weiteres Vorgehen.\n") + b = input("Willst du die Situation beobachten oder flüchten?").lower() + if b == "flüchten": + return 12 + if b == "beobachten": + visited("wohnzimmer") + visited("schlafzimmer") + print("\n" + "Schockiert erkennst du, dass die schwarze Gestalt ein Messer hat.\n" + "Sie lacht auf eine psychopathische Art und Weise und läuft umher.\n" + "Sucht sie etwas? Oder jemanden?\n" + "Mich vielleicht?\n" + "Es sieht so aus als würde sie im nächsten Raum verschwinden.\n") + time.sleep(5) + lageplan() + c = uinput("Wohin willst du?") + if c == "flur": + return 1 + elif c == "küche": + return 5 + else: + print("Du kannst diesen Raum nicht direkt betreten.\n") + return 3 + else: + error() + time.sleep(2) + return 3 + +def schlafzimmer(): + if "schlafzimmer" in besucht: + print("Du bist nun im Schlafzimmer.\n") + lageplan() + e = uinput("Wohin willst du?") + if e == "badezimmer": + return 6 + elif e == "flur": + return 1 + else: + print("Du kannst diesen Raum nicht direkt betreten.\n") + return 4 + else: + print("\n" + "Du öffnest die Schlafzimmertüre langsam.\n" + "Die Türe aber knirscht und lässt sich nur schwer öffnen.\n" + "Nun betrittst du das alte und verlassene SChlafzimmer.\n" + "Du siehst dich etwas um.\n" + "Am Boden hinter dem Bett siehst du etwas.\n" + "Flecken viellei... HILFE!!!!!\n" + "Jemand schrie um Hilfe? Und die Flecken - es ist Blut!!\n") + a = uinput("Willst du flüchten oder dem Hilferuf folgen?") + if a == "flüchten": + print("\n" + "Du entschliesst dich zu flüchten.\n" + "Du hast Todesangst\n") + return 12 + elif a == "folgen": + besucht.append("schlafzimmer") + return 3 + else: + error() + time.sleep(2) + return 4 + +def kueche(): + if "küche" in besucht: + print("Du bist nun in der Küche.\n") + if "messer" not in inventory: + print("Das Messer, welches du vorhin entdeckt hast liegt noch immer da.\n") + p = uinput("Willst du das Messer aufheben? Es könnte sich später noch als Nützlich erweisen.") + if p == "ja": + inventory.append("messer") + print("Du steckst das Messer in dein Inventar") + elif p == "nein": + print("ok") + else: + error() + return 5 + else: + time.sleep(0.1) + else: + visited("küche") + print("Du bist nun in der Küche.\n" + "Von der schwarzen Gestalt ist nichts zu sehen.\n" + "Auf der Ablage liegt ein Messer.\n") + time.sleep(2) + p = uinput("Willst du das Messer aufheben? Es könnte sich später noch als Nützlich erweisen.") + if p == "ja": + inventory.append("messer") + print("Du steckst das Messer in dein Inventar") + elif p == "nein": + print("ok") + else: + error() + return 5 + time.sleep(2) + lageplan() + x = uinput("Wohin willst du?") + if x == "flur": + return 2 + if x == "wohnzimmer": + return 3 + else: + print("Du kannst diesen Raum nicht direkt betreten.\n") + return 5 + +def badezimmer(): + if "badezimmer" in besucht: + print("Du bist nun im Badezimmer.\n") + if "badevorhang" in besucht: + if "schlüssel" not in besucht: + if "schlüssel" not in inventory: + w = uinput("Willst du den Schlüssel aufheben?") + if w == "ja": + inventory.append("schlüssel") + else: + print("ok") + else: + besucht.remove("schlüssel") + else: + w = uinput("Willst du den Duschvorhang öffnen?") + visited("badevorhang") + if w == "ja": + return 14 + elif w == "nein": + print("ok") + else: + error() + return 6 + else: + print("Du öffnest die Türe zum Bad ganz leise.\n" + "Du hoffst, dass die schwarze Gestalt nichts gehört hat.\n" + "Etwas ängstlich betrittst du nun das Badezimmer.\n" + "Viel gibt es nicht zu sehen in diesem Badezimmer\n" + "Eine Toilette, ein Spiegel und eine Badewanne\n" + "Der Duschvorhang der Badewanne ist zu\n") + g = uinput("Willst du ihn öffnen?") + if g == "ja": + visited("badezimmer") + visited("badevorhang") + return 14 + if g == "nein": + visited("badezimmer") + print("ok") + else: + error() + return 6 + lageplan() + e = uinput("Wohin willst du?") + if e == "flur": + return 2 + if e == "schlafzimmer": + return 4 + else: + print("Du kannst diesen Raum nicht direkt betreten.\n") + return 6 + +def treppe(): + print("Du öffnest die Türe möglichst leise.\n" + "Zu deiner Erleichterung öffnet sich die Türe ruhig.\n" + "Vor dir siehst du eine Treppe.\n" + "Sie führt nach unten... in den Keller wahrscheinlich.\n") + k = uinput("Willst du den Keller betreten?") + if k == "ja": + return 8 + elif k == "nein": +# schlüssel = 1 + return 2 + else: + error() + return 7 + +def keller(): + print("Schleichend gehst du die dunkle, alte Treppe hinunter\n" + "Zu deinem Pech knirscht das alte Holz unter deinen Füssen\n" + "Unten angekommen siehst du dich etwas um.\n" + "Ein Schrank, ein altes Bett und viele alte Schachteln stehen herum.\n" + "Ein komischer Geruch kommt dir in die Nase...\n" + "...woher der wohl kommen mag?\n" + "Aus dem Schranz läuft etwas heraus...\n" + "...wegen der Dunkelheit erkennst du nicht wases ist.\n") + l = uinput("Willst du im Schrank nachschauen?") + if l == "ja": + return 9 + elif l == "nein": + global origin + origin = 1 + return 10 + else: + error() + return 8 + +def schrank(): + print("Du öffnest den Schrank.\n" + "AHHHHHH!! Eine Leiche!! Und Blut! Überall Blut!!\n" + "Als wäre das nicht schon genug, hörst du plötzlich ein Lachen\n" + "Die schwarze Gestalt!!!\n" + "Und du hast keine Möglichkeit zu flüchten!\n" + "Das knirschen der Treppen wird immer lauter.\n" + "Du musst dich verstecken. Schnell!!!\n") + time.sleep(3) + global origin + origin = 2 + return 10 + + + +def verstecken(): +#v1------------------ + global origin + global end_origin + if origin == 1: + print( + "Du hörst plötzlich ein Lachen.\n" + "Die schwarze Gestalt!!!\n" + "Und du hast keine Möglichkeit zu flüchten!\n" + "Das knirschen der Treppen wird immer lauter.\n" + "Du musst dich verstecken. Schnell!!!\n") + time.sleep(3) + o = uinput("Wo willst du dich verstecken?\n" + "Hinter den Schachteln oder unter dem Bett?") + if o == "bett": + end_origin = 2 + return 11 + elif o == "schachteln": + end_origin = 3 + return 11 + else: + print("Diese Möglichkeit steht nicht zur Auswahl.\n" + "Bitte überprüfe deine Antwort nochmals.\n") + return 10 + +#v2--------------------- + elif origin == 2: + m = input("Wo willst du dich verstecken?\n" + "Im Schrank, hinter den Schachteln oder unter dem Bett?\n").lower() + if m == "schrank": + end_origin = 1 + return 11 + elif m == "bett": + end_origin = 2 + return 11 + elif m == "schachteln": + end_origin = 3 + return 11 + else: + print("Diese Möglichkeit steht nicht zur Auswahl.\n" + "Bitte überprüfe deine Antwort nochmals.\n") + return 10 + else: + return 100 + + +def ende(): + global end_origin + if end_origin == 1: + print("Du hast entschieden dich im Schrank zu verstecken.\n" + "In dem Schrank in dem auch die Leiche ist.\n" + "Ob das wohl die richtige Entscheidung war?\n") + time.sleep(5) + print("Du drückst dich an den Schrank und bist so leise wie nur möglich.\n" + "Du hörst wie die schwarze Gestalt immer und immer näher kommt.\n" + "Sie lacht laut und sucht dich überall.\n" + "Sie kommt näher zum Schrank mit dem Messer voran.\n" + "Dann bleibt sie stehen.\n" + "Langsam öffnet sie die Schranktür.\n" + "Du blickst ihr direkt in die Augen.\n" + "Du schreist aber sie zeigt keine Gnade und ersticht dich kaltblütig.\n") + gameover() + return 0 + elif end_origin == 2: + print("Du hast dich für das Bett entschieden\n" + "Unter dem Bett liegt ein Teppich\n" + "Ob da wohl etwas darunter ist, dass versteckt werden muss?\n") + print("Die schwarze Gestalt ist im Keller.\n" + "Du hast Todesangst. Sie sucht dich überall.\n") + if "messer" in inventory: + print("Du erinnerst dich an das Messer welches du im Badezimmer gefunden hast.\n") + n = uinput("Willst du mit dem Messer den Teppich aufschneiden?") + if n == "ja": + inventory.remove("messer") + return 13 + if n == "nein": + print("Du hast keine andere wahl. Schneide den Teppich auf!!!") + return 11 + else: + error() + return 11 + else: + return 15 + elif end_origin == 3: + print("Du hast dich für die Schachteln entschieden\n" + "Du machst dich so klein wie möglich und hoffst nicht entdeckt zu werden\n" + "Durch einen Spalt bei den Schachteln siehst du auf das Bett\n" + "Darunter fällt dir ein Teppich auf.\n" + "Es sieht aus als wäre darunter etwas versteckt.\n") + print("Du hörst wie die schwarze Gestalt den Keller betretet.\n" + "Voller Angst überlegst du wie du flüchten könntest.\n" + "Die schwarze Gestalt sucht dich überall.\n" + "Sie kommt langsam aber stetig immer näher zu den Schachteln.\n" + "Als die schwarze Gestalt einen kurzen Moment weg schaut,\n" + "läufst du so schnell du kannst zum Bett und versteckst dich dort\n") + if "messer" in inventory: + print("Du erinnerst dich an das Messer welches du im Badezimmer gefunden hast.\n") + n = uinput("Willst du mit dem Messer den Teppich aufschneiden?") + if n == "ja": + inventory.remove("messer") + return 13 + if n == "nein": + print("Du hast keine andere wahl. Schneide den Teppich auf!!!") + return 2 + else: + error() + return 11 + else: + return 15 + else: + return 99 + +def mord(): + print("\n" + "Du rennst so schnell du kannst zum Flur. \n" + "Du willst die Türe aufreissen und weglaufen.\n" + "Doch die Türe ist verschlossen!\n" + "Plötzlich spürst du das jemand hinter dir steht... \n" + "...du drehst langsam deinen Kopf\n" + "Die schwarze Gestalt steht hinter dir!\n" + "Sie ist voller Blut und lacht laut und bevor du reagieren kannst...\n" + "...sticht sie dir ein Messer kaltblütig in die Brust!\n") + time.sleep(5) + gameover() + return 0 + +def flucht(): + print("Unter dem Teppich ist tatsächlich etwas.\n" + "Eine geheime Öffnung im Boden!! Vielleicht ein Weg der hier weg führt?\n" + "Du Öffnest die Falltüre und springst nach unten.\n" + "Tatsächlich! Es sieht aus wie ein langer Gang\n" + "Das Problem ist nur... es ist stock dunkel.\n") + o = uinput("Nimm deine Lampe und zünde sie an! (lampe nehmen)\n") + if o == "lampe nehmen": + inventory.remove("lampe") + print("Du siehst nun genug für deine Flucht!\n") + print("Hinter dir hörst du schonwieder das Lachen der schwarzen Gestalt.\n" + "Du rennst so schnell du kannst!\n" + "Es ist kalt und nass in diesem Tunnel aber dir bleibt nichts anderes übrig.\n" + "Hier! Eine Leiter!\n" + "Du steigst die Leiter nach oben und öffnest die Falltüre.\n" + "Die schwarze Gestalt kommt immer näher!\n" + "Du kletterst hinaus und schliesst die Türe wieder.\n") + return 0 + else: + error() + return 13 + +def schock(): + print("Du öffnest neugierig den Duschvorhang.\n" + "Die Badewanne.. sie.. sie ist.. voller Blut!\n" + "Du schreist und hast Angst. Du willst nur noch weg hier!\n" + "Doch nach kurzer Zeit fällt dir neben der Wanne etwas auf...\n" + "...ist das ein Schlüssel?") + h = uinput('Schlüssel aufheben oder liegen lassen?') + if h == "aufheben": + inventory.append("schlüssel") + print("Du hebst den Schlüssel auf.") + return 6 + if h == "lassen": + visited("schlüssel") + return 6 + else: + print("Dieser Befehl ist mir leider nicht bekannt :/\n" + "Bitte erneut versuchen.\n") + time.sleep(2) + return 14 + +def mord_2(): + print("Du hast kein Messer in deinem Rucksack.\n" + "Da du das Messer ohne Erfolg gesucht hast,\n" + "wurde die schwarze Gestalt auf dich aufmerksam.\n" + "Sie kommt immer näher in Richtung Bett und du hast\n" + "keine Möglichkeit mehr dich zu verstecken.\n" + "Die schwarze Gestalt zieht das Bett weg und sieht dir tief in die Augen.\n" + "Du schaust sie hilfeschreiend an aber das ist ihr egal.\n" + "Sie lacht laut los und sticht dir langsam mit dem Messer in die Brust.\n" + "Du verlierst das Bewusstsein und das letzte was du noch hörst,\n" + "ist das psychopathische Lachen.\n") + gameover() + return 0 + +def glückwunsch(): + print("Gratuliere!!! Du hast die Nacht überlebt und einen Ausweg aus dem Haus gefunden!\n" + "Du bist nun in einem Wald.\n" + "Nach langem umherirren hast du ein Dorf gefunden.\n" + "Die Leute dort waren sehr freundlich und haben dich zurück zu deinem Haus gebracht.\n" + "Zuhause hast du alles der Polizei erzählt.\n" + "Als die Polizei ankam war das Haus nicht mehr dort.\n" + "Ein Berg aus SChutt und Asche ist übrig geblieben.\n" + "Die schwarze Gestalt wurde bis heute nicht gefunden.\n") + +def main(): + cover() + regeln() + einfuehrung() + grundriss() + eintreten() + next = 1 + exit = 1 + while next != 0: + if next == 1: + next = flur_1() + elif next == 2: + next = flur_2() + elif next == 3: + next = wohnzimmer() + elif next == 4: + next = schlafzimmer() + elif next == 5: + next = kueche() + elif next == 6: + next = badezimmer() + elif next == 7: + next = treppe() + elif next == 8: + next = keller() + elif next == 9: + next = schrank() + elif next == 10: + next = verstecken() + elif next == 11: + next = ende() + elif next == 12: + next = mord() + exit = 0 + elif next == 13: + next = flucht() + elif next == 14: + next = schock() + elif next == 15: + next = mord_2() + exit = 0 + else: + print("Es ist ein Fehler aufgetreten. Bitte Spiel neustarten. Exit code:", next) + next = 0 + exit = 0 + if exit == 1: + glückwunsch() + time.sleep(7) + abspann() + +main() \ No newline at end of file