124 lines
3.7 KiB
Python
124 lines
3.7 KiB
Python
|
import time
|
||
|
from colors import MAGENTA, BLUE, RESET
|
||
|
|
||
|
from Texte import *
|
||
|
|
||
|
""""
|
||
|
Hier finden Sie Funktionen, die Sie für Ihr eigenes Abenteuer nutzen können.
|
||
|
Die Funktionen sind auch auf OneNote dokumentiert.
|
||
|
"""
|
||
|
|
||
|
import random
|
||
|
|
||
|
|
||
|
def randomInRange(untergrenze, obergrenze):
|
||
|
"""Generiert einen zufälligen Wert innerhalb vorgegebener Grenzen"""
|
||
|
return random.randint(untergrenze, obergrenze)
|
||
|
|
||
|
|
||
|
def testeObInListe(liste, ding):
|
||
|
"""Überprüft, ob ein Element in einer Liste vorhanden ist und gibt entsprechend Rückmeldung"""
|
||
|
if ding in liste:
|
||
|
return True
|
||
|
else:
|
||
|
print("Leider existiert", ding, "nicht - jedenfalls nicht hier...")
|
||
|
return False
|
||
|
|
||
|
|
||
|
def zeigeListe(listeDerOptionen):
|
||
|
"""Zeigt eine Liste von Optionen nummeriert an."""
|
||
|
for i, element in enumerate(listeDerOptionen):
|
||
|
print(f"{i + 1}. {element}")
|
||
|
|
||
|
|
||
|
def wähleAusListe(listeDerOptionen):
|
||
|
"""Lässt Benutzer*innen eine Option aus einer Liste auswählen und gibt die gewählte Option zurück."""
|
||
|
zeigeListe(listeDerOptionen)
|
||
|
|
||
|
# Eingabe der gewünschten Option durch den Nutzer
|
||
|
auswahl = int(input("Für welche Option entscheiden Sie sich?"))
|
||
|
|
||
|
# Überprüfung, ob die eingegebene Option wählbar ist
|
||
|
if auswahl < 1 or auswahl > len(listeDerOptionen):
|
||
|
print("Ungültige Auswahl. Bitte versuchen Sie es erneut.")
|
||
|
return wähleAusListe(listeDerOptionen)
|
||
|
else:
|
||
|
# return element not number
|
||
|
return listeDerOptionen[auswahl - 1]
|
||
|
|
||
|
|
||
|
def pressForward():
|
||
|
"""Hält das Ausführend des Programms an, bis der Benutzer eine Taste drückt."""
|
||
|
input("\n-----------Drücke eine beliebige Taste fürs Weiterfahren.-----------")
|
||
|
|
||
|
|
||
|
# Why Pascal case???
|
||
|
def AbenteuerAbbrechen():
|
||
|
"""Beendet das Abenteuer vorzeitig und bricht die Ausführung des Programms ab."""
|
||
|
print("Das Spiel ist leider zu Ende.")
|
||
|
exit()
|
||
|
|
||
|
|
||
|
def AbenteuerEnde():
|
||
|
"""Markiert das erfolgreiche Ende des Abenteuers."""
|
||
|
print("Nach zahlreichen Strapazen haben Sie es geschafft!")
|
||
|
pressForward()
|
||
|
print("Sie sind rechtzeitig in die heutige Informatik-Lektion gekommen!")
|
||
|
pressForward()
|
||
|
print("Mit einem seligen Lächeln geben Sie sich den spannenden Inhalten hin :-)")
|
||
|
pressForward()
|
||
|
print("::::::::::::::::THE END::::::::::::::::")
|
||
|
|
||
|
|
||
|
def blue(s):
|
||
|
return BLUE + s + RESET
|
||
|
|
||
|
|
||
|
def magenta(s):
|
||
|
return MAGENTA + s + RESET
|
||
|
|
||
|
|
||
|
def askUser(question):
|
||
|
while True:
|
||
|
answer = input(question + " ")
|
||
|
if answer != "":
|
||
|
return answer
|
||
|
|
||
|
|
||
|
def askUserInt(question):
|
||
|
while True:
|
||
|
try:
|
||
|
return int(askUser(question + " "))
|
||
|
except:
|
||
|
print(err_not_a_number)
|
||
|
|
||
|
|
||
|
class RomanticInterest():
|
||
|
def __init__(self, gender):
|
||
|
self.name = random.choice(names.get(gender, names[gender_other]))
|
||
|
self.gender = gender
|
||
|
self.rom_goals = 200
|
||
|
self.rom_points = 50
|
||
|
|
||
|
def introduce(self):
|
||
|
print(magenta("oh..."))
|
||
|
print(magenta("Hallo du!"))
|
||
|
time.sleep(0.7)
|
||
|
print(magenta("Mein name ist " + self.name + "."))
|
||
|
time.sleep(0.5)
|
||
|
|
||
|
## only print pronouns if nonbinary otherwise clear from name
|
||
|
if self.gender == gender_other:
|
||
|
print("Und BTW meine Pronomen sind: they/them.")
|
||
|
|
||
|
def react_to(self, action):
|
||
|
if action == action_ask_age:
|
||
|
print(magenta("Ich bin 17 jahre alt!"))
|
||
|
self.rom_points -= 20
|
||
|
elif action == action_throw_book:
|
||
|
print(magenta(situation_get_hurt_bad))
|
||
|
self.rom_points -= 100
|
||
|
elif action == action_introduce_self:
|
||
|
print(magenta("Hallo du"))
|
||
|
self.rom_points += 50
|