There really is no hope of making this code even half-way decent without
spending the time to rewrite them all properly. Don't want to do any of
that
This commit is contained in:
2025-11-03 17:08:35 +01:00
parent 21a17e33fa
commit ede0ee318b
48 changed files with 1219 additions and 582 deletions

View File

@@ -1,5 +1,6 @@
import time
import random
global stepscount
stepscount = 0
inventory = []
@@ -9,10 +10,9 @@ global goahead
goahead = 0
def cover():
print("""
print(
"""
@@ -48,15 +48,18 @@ def cover():
""")
"""
)
time.sleep(2)
print("""
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:
@@ -67,7 +70,6 @@ AUFGABE UND WIRD HIER AUF EIN MÖGLICHST ÜBERSCHAUBARES MASS GEKÜRZT.
print("wrong, retry")
global start
start = time.time()
def gameoverpossible():
@@ -84,31 +86,36 @@ def gameoverpossible():
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:
if random.randint(0, 10) == 1:
gameover()
else:
current = time.time()
def gameover3():
if random.randint(0,3) == 1:
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("""
print(
"""
NEW YORK TIMES
DIE KATASTROPHE
@@ -125,34 +132,41 @@ Flugverbot für die 737 MAX ausgesprochen hatte.
Oh weh.
Das wird einige Konsequenzen für dich nach sich ziehen.
""")
"""
)
time.sleep(4)
print("""
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
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("""
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("""
print(
"""
NEW YORK TIMES
NTSB ERMITTLER VERHÄNGT FLUGVERBOT FÜR UNGLÜCKSFLIEGER
@@ -163,22 +177,27 @@ zu verhängen. Dies ist auf massive Proteste seitens der Fluggesellschaften und
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("""
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("""
print(
"""
_________________________________________________________________________________________________________
@@ -188,9 +207,11 @@ braucht sie, um das Flugzeug zu verbessern. Der Zeitdruck ist aber geringer, da
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("""
print(
"""
_________________________________________________________________________________________________________
@@ -199,33 +220,39 @@ 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("""
print(
"""
DU HAST ES GESCHAFFT!
GLÜCKWUNSCH!
""")
"""
)
global start
global stepscount
times = time.time() - start
points = times*2 + stepscount**2 - 110
points = times * 2 + stepscount**2 - 110
if points < 0:
print("Deine Zeit: ",times)
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("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:""")
print(
"""
DEINE BEWERTUNG:"""
)
if punkte <= 0:
print(""" GOD """)
if punkte < 20:
@@ -240,76 +267,97 @@ def bewertung(punkte):
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.
""")
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,
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.""")
deiner Spezialisten die Daten retten kann."""
)
time.sleep(7)
print("""Dein Spezialist hat es geschafft! Die Daten konten wiederhergestellt werden!
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.""")
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,
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, """)
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!""")
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
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.
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.""")
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
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.""")
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
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
@@ -328,32 +376,41 @@ gewährleisten. Dies hatte dazu geführt, dass bei dem schon sehr alten Flugzeug
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".""")
fallen würde"."""
)
time.sleep(10)
if "grounding" in done:
stepscount -= 2
print("""
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("""
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,
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)? ")
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":
@@ -362,15 +419,16 @@ Auch da könnten sich wichtige Hinweise verstecken.""")
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)? ")
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":
@@ -382,20 +440,24 @@ def fl():
else:
print("wrong, retry")
return 2
else:
print("""
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.""")
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':
if i == "y":
return 1
elif i == 'n':
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)? ")
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":
@@ -405,15 +467,16 @@ in dein Büro gehen oder weitersuchen.""")
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)? ")
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":
@@ -426,19 +489,23 @@ def hk():
print("wrong, retry")
return 3
else:
print("""
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. """)
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':
if i == "y":
return 1
elif i == 'n':
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)? ")
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":
@@ -448,15 +515,16 @@ Die Blackbox. Du hebst sie auf und lässt sie in dein Büro bringen. """)
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)? ")
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":
@@ -469,7 +537,8 @@ def zg():
print("wrong, retry")
return 5
else:
print("""
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?
@@ -481,16 +550,19 @@ den Absturz gesehen hat.
- 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. """)
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':
if i == "y":
return 1
elif i == 'n':
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)? ")
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":
@@ -500,15 +572,16 @@ den Absturz gesehen hat.
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)? ")
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":
@@ -521,19 +594,23 @@ def co():
print("wrong, retry")
return 4
else:
print("""
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.""")
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':
if i == "y":
return 1
elif i == 'n':
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)? ")
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":
@@ -543,8 +620,6 @@ Du kannst zurück gehen und ihn untersuchen oder weitersuchen.""")
else:
print("wrong, retry")
return 4
def main():
@@ -574,4 +649,5 @@ def main():
if exit == 1:
abspann()
main()
main()