working version
This commit is contained in:
parent
b2305b1e4c
commit
f4f7535887
2
.gitignore
vendored
2
.gitignore
vendored
@ -5,7 +5,7 @@ __pycache__/
|
||||
|
||||
# C extensions
|
||||
*.so
|
||||
|
||||
.idea
|
||||
# Distribution / packaging
|
||||
.Python
|
||||
build/
|
||||
|
3
.idea/.gitignore
vendored
3
.idea/.gitignore
vendored
@ -1,3 +0,0 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
@ -1,6 +0,0 @@
|
||||
<component name="InspectionProjectProfileManager">
|
||||
<settings>
|
||||
<option name="USE_PROJECT_PROFILE" value="false" />
|
||||
<version value="1.0" />
|
||||
</settings>
|
||||
</component>
|
@ -1,15 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="PYTHON_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
<component name="PyDocumentationSettings">
|
||||
<option name="format" value="PLAIN" />
|
||||
<option name="myDocStringFormat" value="Plain" />
|
||||
</component>
|
||||
<component name="TestRunnerService">
|
||||
<option name="PROJECT_TEST_RUNNER" value="py.test" />
|
||||
</component>
|
||||
</module>
|
@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Black">
|
||||
<option name="sdkName" value="Python 3.12 (lous-thing)" />
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.12 (lous-thing)" project-jdk-type="Python SDK" />
|
||||
</project>
|
@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/lous-thing.iml" filepath="$PROJECT_DIR$/.idea/lous-thing.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
3
.timer.toml
Normal file
3
.timer.toml
Normal file
@ -0,0 +1,3 @@
|
||||
## dates and their corresponding seconds been here :)
|
||||
[24-12-11]
|
||||
u80864958_at_u80864958 = 8231
|
153
Abenteuer.py
153
Abenteuer.py
@ -1,110 +1,59 @@
|
||||
#####################
|
||||
# Autor:in: Taina Sophia Kreuzer
|
||||
#####################
|
||||
import Texte as t
|
||||
import Toolbox as tb
|
||||
import BetterUtils as u
|
||||
|
||||
from Toolbox import *
|
||||
from Texte import *
|
||||
print(t.welcome_message)
|
||||
|
||||
print()
|
||||
print()
|
||||
print()
|
||||
print(disclaimer)
|
||||
print ()
|
||||
print(einstieg)
|
||||
# setup Characters
|
||||
user = u.User()
|
||||
interest = u.RomanticInterest(user.preference, u.generateAge(user.age))
|
||||
|
||||
name= input(fragename)
|
||||
spieler = Wesen(name)
|
||||
ausrüstung= [akten, handy]
|
||||
print (inventar1+name+inventar2)
|
||||
zeigeListe(ausrüstung)
|
||||
print(ziel1)
|
||||
answer=input(frage1)
|
||||
# meet interest
|
||||
t.meet_cute()
|
||||
tb.pressForward()
|
||||
interest.introduce()
|
||||
tb.pressForward()
|
||||
print(t.situation_head_over_heels)
|
||||
tb.pressForward()
|
||||
|
||||
pressForward()
|
||||
# First choice
|
||||
print(t.ask_what_you_do)
|
||||
action = u.wähleAusListe([
|
||||
t.action_throw_book,
|
||||
t.action_introduce_self,
|
||||
t.action_ask_age,
|
||||
])
|
||||
|
||||
if (answer==ja):
|
||||
print(aufzählunggrid)
|
||||
elif (answer== nein):
|
||||
print(gut)
|
||||
print()
|
||||
print(start)
|
||||
print(indiz1)
|
||||
user.do_action(action)
|
||||
tb.pressForward()
|
||||
interest.react_to(action)
|
||||
|
||||
pressForward()
|
||||
|
||||
verdächtigter1=input(vorraussetungantwort1)
|
||||
if(verdächtigter1==lösungv1):
|
||||
print(anfang)
|
||||
## Second choice
|
||||
print(t.ask_what_you_do)
|
||||
action = u.wähleAusListe([
|
||||
t.action_dance,
|
||||
t.action_ask_for_number,
|
||||
t.action_tell_compliment,
|
||||
])
|
||||
user.do_action(action)
|
||||
tb.pressForward()
|
||||
interest.react_to(action)
|
||||
|
||||
# Third Choice
|
||||
print(t.ask_what_you_do)
|
||||
action = u.wähleAusListe([
|
||||
t.action_invite_to_date,
|
||||
t.action_hug_out_of_blue,
|
||||
t.action_send_dickpic,
|
||||
])
|
||||
|
||||
user.do_action(action)
|
||||
tb.pressForward()
|
||||
interest.react_to(action)
|
||||
|
||||
u.showStats(interest)
|
||||
if interest.is_won():
|
||||
print(t.won_message)
|
||||
else:
|
||||
print (DNN)
|
||||
verdächtigter1=input(vorraussetungantwort1)
|
||||
if(verdächtigter1==lösungv1):
|
||||
print(gut)
|
||||
else:
|
||||
print (DNN)
|
||||
verdächtigter1=input(vorraussetungantwort1)
|
||||
if(verdächtigter1==lösungv1):
|
||||
print(endlich)
|
||||
else:
|
||||
print (DNN)
|
||||
verdächtigter1=input(vorraussetungantwort1)
|
||||
if (verdächtigter1==lösungv1):
|
||||
print (wurdezeit)
|
||||
else:
|
||||
print(nötigertipp)
|
||||
antworttipp1=input(nochmal2)
|
||||
if(antworttipp1==lösungv1):
|
||||
print(gedauert)
|
||||
else:
|
||||
AbenteuerAbbrechen()
|
||||
|
||||
pressForward()
|
||||
|
||||
print(texträtsel1)
|
||||
print(rätsel1)
|
||||
antwort1= input(WBI)
|
||||
wiederholung= 1
|
||||
while (antwort1!=lösung1):
|
||||
print (falsch)
|
||||
if (wiederholung==2):
|
||||
print(rätsel1tipp1)
|
||||
if (wiederholung==4):
|
||||
print(rätsel1tipp2)
|
||||
antwort1= input(WBI)
|
||||
wiederholung= wiederholung +1
|
||||
print (klopfen)
|
||||
print (totobüro)
|
||||
|
||||
pressForward()
|
||||
|
||||
print(texträtsel2)
|
||||
print(rätsel2)
|
||||
antwort2= input(WBI)
|
||||
while (antwort2!=lösung2):
|
||||
print (falsch)
|
||||
antwort1= input(WBI)
|
||||
print(vasseurtext)
|
||||
|
||||
pressForward()
|
||||
|
||||
print(nächsterlead)
|
||||
guess= input(letzteverdächtigte)
|
||||
while (guess!=lösung3):
|
||||
print (nöperson)
|
||||
antwort1= input(guess)
|
||||
print(belohung)
|
||||
|
||||
pressForward()
|
||||
|
||||
print (rätsel3)
|
||||
antwort3= input(WBI)
|
||||
while (antwort3!=lösung4):
|
||||
print (nochmal)
|
||||
antwort1= input(WBI)
|
||||
print(ende)
|
||||
|
||||
pressForward()
|
||||
|
||||
print(theend)
|
||||
print(theend2)
|
||||
print(theend3)
|
||||
print(t.loose_message)
|
||||
|
173
BetterUtils.py
Normal file
173
BetterUtils.py
Normal file
@ -0,0 +1,173 @@
|
||||
import time
|
||||
import random
|
||||
import math
|
||||
import Toolbox as tb
|
||||
import Texte as t
|
||||
|
||||
# Colorize, made with help from Niklas
|
||||
MAGENTA = "\033[35m"
|
||||
BLUE = "\033[34m"
|
||||
RESET = "\033[0m" # called to return to standard terminal text color
|
||||
|
||||
|
||||
def blue(s):
|
||||
return BLUE + s + RESET
|
||||
|
||||
|
||||
def magenta(s):
|
||||
return MAGENTA + s + RESET
|
||||
|
||||
|
||||
def wähleAusListe(listeDerOptionen):
|
||||
"""Lässt Benutzer*innen eine Option aus einer Liste auswählen und gibt die gewählte Option zurück."""
|
||||
auswahl = tb.wähleAusListe(listeDerOptionen)
|
||||
return listeDerOptionen[auswahl - 1]
|
||||
|
||||
|
||||
def askUser(question):
|
||||
while True:
|
||||
answer = input(question + " ")
|
||||
if answer != "":
|
||||
return answer
|
||||
|
||||
|
||||
# generate Age using Wää formula
|
||||
def askUserInt(question):
|
||||
while True:
|
||||
try:
|
||||
return int(askUser(question + " "))
|
||||
except:
|
||||
print(t.err_not_a_number)
|
||||
|
||||
|
||||
def generateAge(interest_age):
|
||||
min = int((interest_age / 2) + 7)
|
||||
max = int((interest_age - 7) * 2)
|
||||
print(min)
|
||||
print(max)
|
||||
return tb.randomInRange(min, max)
|
||||
|
||||
|
||||
def showStats(intrest):
|
||||
print("You got " + str(intrest.rom_points) + " of "+str(intrest.rom_goals)+" rom points")
|
||||
|
||||
|
||||
class RomanticInterest:
|
||||
def __init__(self, gender, age):
|
||||
self.name = random.choice(t.names.get(gender, t.names[t.gender_other]))
|
||||
self.gender = gender
|
||||
self.age = age
|
||||
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 == t.gender_other:
|
||||
print("Und BTW meine Pronomen sind: they/them.")
|
||||
|
||||
def react_to(self, action):
|
||||
"""
|
||||
call this function to react to a action defined in texte
|
||||
"""
|
||||
# first choice
|
||||
if action == t.action_ask_age:
|
||||
print(magenta("Ich bin " + str(self.age) + " jahre alt!"))
|
||||
self.rom_points -= 20
|
||||
elif action == t.action_throw_book:
|
||||
print(magenta(t.situation_get_hurt_bad))
|
||||
self.rom_points -= 100
|
||||
elif action == t.action_introduce_self:
|
||||
print(magenta("Hallo du"))
|
||||
self.rom_points += 50
|
||||
# second choice
|
||||
elif action == t.action_dance:
|
||||
print(magenta(t.situation_wierd_cute))
|
||||
self.rom_points += 50
|
||||
elif action == t.action_ask_for_number:
|
||||
## It depends on achieved rompoints
|
||||
if self.rom_points > 100:
|
||||
print(magenta(t.situation_accept))
|
||||
self.rom_points += 50
|
||||
elif self.rom_points > 0:
|
||||
print(magenta(t.situation_decline_friendly))
|
||||
else:
|
||||
print(magenta(t.situation_decline_agressive))
|
||||
self.rom_points -= 100
|
||||
elif action == t.action_tell_compliment:
|
||||
print(magenta(t.situation_recieve_compliment))
|
||||
self.rom_points += 100
|
||||
# third choice
|
||||
elif action == t.action_invite_to_date:
|
||||
## It depends on achieved rompoints
|
||||
if self.rom_points > 150:
|
||||
print(magenta(t.situation_accept))
|
||||
self.rom_points += 100
|
||||
elif self.rom_points > 50:
|
||||
print(magenta(t.situation_decline_friendly))
|
||||
else:
|
||||
print(magenta(t.situation_decline_agressive))
|
||||
self.rom_points -= 100
|
||||
elif action == t.action_hug_out_of_blue:
|
||||
## It depends on achieved rompoints
|
||||
if self.rom_points > 100:
|
||||
print(magenta(t.situation_hug_back))
|
||||
self.rom_points += 100
|
||||
elif self.rom_points > 50:
|
||||
print(magenta(t.situation_stand_akward))
|
||||
self.rom_points -= 20
|
||||
else:
|
||||
print(magenta(t.situation_react_to_inapropriate))
|
||||
self.rom_points -= 100
|
||||
|
||||
self.rom_points -= 10000
|
||||
print(magenta(t.situation_react_to_inapropriate))
|
||||
elif action == t.action_send_dickpic:
|
||||
self.rom_points -= 10000
|
||||
print(magenta(t.situation_react_to_inapropriate))
|
||||
|
||||
def is_won(self):
|
||||
return self.rom_points > self.rom_goals
|
||||
|
||||
|
||||
class User:
|
||||
def __init__(self):
|
||||
self.name = askUser(t.ask_name)
|
||||
self.age = askUserInt(t.ask_age)
|
||||
print(t.ask_sexual_preference)
|
||||
self.preference = wähleAusListe([
|
||||
t.gender_male,
|
||||
t.gender_female,
|
||||
t.gender_other,
|
||||
])
|
||||
|
||||
def __str__(self):
|
||||
return self.name + str(self.age) + self.preference
|
||||
|
||||
def do_action(self, action):
|
||||
# first choice
|
||||
if action == t.action_ask_age:
|
||||
print(blue(t.ask_age))
|
||||
elif action == t.action_throw_book:
|
||||
print(blue(t.situation_throw_book))
|
||||
elif action == t.action_introduce_self:
|
||||
print(blue("Hallo"))
|
||||
# Second Choice
|
||||
elif action == t.action_dance:
|
||||
print(blue(t.situation_dance))
|
||||
elif action == t.action_ask_for_number:
|
||||
print(blue(t.situation_ask_for_number))
|
||||
elif action == t.action_tell_compliment:
|
||||
print(blue(t.situation_tell_compliment))
|
||||
# Third choice
|
||||
elif action == t.action_invite_to_date:
|
||||
print(blue(t.situation_ask_for_date))
|
||||
elif action == t.action_hug_out_of_blue:
|
||||
print(blue(t.situation_hug))
|
||||
elif action == t.action_send_dickpic:
|
||||
print(blue(t.situation_send_dickpic))
|
86
Texte.py
86
Texte.py
@ -3,39 +3,96 @@ Hier können Sie Ihre Texte aufschreiben.
|
||||
Das hat den Vorteil, dass der Code Ihres Abenteuers übersichtlicher wird.
|
||||
Verwenden Sie selbsterklärende Variablennamen.
|
||||
"""
|
||||
|
||||
import time
|
||||
|
||||
welcome_message="Willkommen in Delulu-World!!\nDie virtuelle Welt der Wahnhaften."
|
||||
welcome_message = "Willkommen in Deloulou-World!!\nDie virtuelle Welt der Wahnhaften."
|
||||
won_message = "Du hast es geschafft"
|
||||
loose_message = "Du hast leider verloren"
|
||||
|
||||
ask_name = "Was ist dein Name?"
|
||||
ask_age = "Wie alt bist du?"
|
||||
ask_sexual_preference = "Was ist deine Preferenza?"
|
||||
ask_what_you_do = "Was machst du?"
|
||||
ask_for_date = "Willst du vielleicht mit mir, naja mal was machen?"
|
||||
|
||||
ask_name="Was ist dein Name?"
|
||||
ask_age="Was alter?"
|
||||
ask_sexual_preference="was du bums?"
|
||||
ask_what_you_do="Was mchst du?"
|
||||
|
||||
def meet_cute():
|
||||
print("""
|
||||
print("""
|
||||
Du bist in einer öffentlichen Bibliothek. Du hast einen Haufen Bücher, den dir deine Sicht verdeckt,
|
||||
also siehst du die Person die dir entgegen kommt nicht.
|
||||
""")
|
||||
time.sleep(1.5)
|
||||
print("WUUUUMMMMMMSSS")
|
||||
time.sleep(1.5)
|
||||
print("WUUUUMMMMMMSSS")
|
||||
|
||||
situation_head_over_heels="""
|
||||
|
||||
situation_head_over_heels = """
|
||||
Dir fehlen die Worte. Noch nie ist dir eine solch atemberaubende Person ins
|
||||
Leben getreten. Schnell, deine Traumperson wartet auf eine Antwort!
|
||||
"""
|
||||
|
||||
situation_throw_book = """
|
||||
Du wirfst dein Buch!!!
|
||||
"""
|
||||
situation_dance = """
|
||||
Du kramst aus deiner Tasche dein Telefon und Stellst musik an:
|
||||
"I like to move it move it"
|
||||
"I like to move it move it..."
|
||||
|
||||
Zu diesen wundersamen Klängen bewegst du dich selbst schwungvoll.
|
||||
"""
|
||||
situation_send_dickpic = """
|
||||
Du begiebst dich auf die Toilete und Klick! Schon hast du das Photo gemacht
|
||||
und Schwups, schon gesendet.
|
||||
"""
|
||||
situation_tell_compliment = """
|
||||
Du liest "Rosenkranz und Güldenstern"?
|
||||
Da hat ja mal jemand Geschmack!
|
||||
"""
|
||||
situation_ask_for_number = """
|
||||
Darf ich fragen was deine Telefon nummer ist?
|
||||
"""
|
||||
situation_ask_for_date = """
|
||||
Mochtest du vielleicht, naja mal eventuell was mit mir unternehmen?"
|
||||
"""
|
||||
|
||||
situation_wierd_cute = """
|
||||
Hehe, Okey? Das hat noch nie jemand für mich gemacht, aber somewhat cute.
|
||||
"""
|
||||
situation_hug = """
|
||||
*Du setzt einen Fuss nach vorne und umarmst dein Gegenüber.*
|
||||
"""
|
||||
situation_hug_back = """
|
||||
Aww *Dein Gegenüber umarmt dich auch.
|
||||
"""
|
||||
|
||||
situation_stand_akward = """
|
||||
*Deinem Gegenüber ist es sichtlich unangenehm*
|
||||
"""
|
||||
|
||||
|
||||
situation_recieve_compliment = "Oh, *streicht sich durch's haar * Merci <3"
|
||||
situation_get_hurt_bad = "Aua, was soll das!?!"
|
||||
situation_react_to_inapropriate = "WTF, DU SCHWEIN, VERZIEHDICH!!!!!"
|
||||
situation_decline_agressive = "Nein, damit hättest du auch noch warten können!"
|
||||
situation_decline_friendly = "Lieber nicht."
|
||||
situation_accept = "Ou ja, das würde mich freuen."
|
||||
|
||||
action_throw_book = "Werfe dein buch nach der Person."
|
||||
action_introduce_self = "Stelle dich selbst vor."
|
||||
action_ask_age = "Wie alt bist du?"
|
||||
|
||||
gender_male="Mänlich"
|
||||
gender_female="Weiblich"
|
||||
gender_other="Nonbinär"
|
||||
action_dance = "Führe einen lustigen tanz auf."
|
||||
action_ask_for_number = "Frage nach der Telefon nummer."
|
||||
action_tell_compliment = "Mache ein Kompliment"
|
||||
|
||||
action_invite_to_date = "Frage die Person, ob sie etwas mit dir unternehmen möchte."
|
||||
action_hug_out_of_blue = "Umarme dein Gegenüber."
|
||||
action_send_dickpic = "Schicke ein unanständiges bild ;)"
|
||||
|
||||
|
||||
gender_male = "Mänlich"
|
||||
gender_female = "Weiblich"
|
||||
gender_other = "Nonbinär"
|
||||
|
||||
names = {
|
||||
gender_male: ["Hans", "Peter", "Mika", "Ueli"],
|
||||
@ -43,4 +100,5 @@ names = {
|
||||
gender_other: ["Kim", "Sky", "Raven"],
|
||||
}
|
||||
|
||||
err_not_a_number="Bitte gib nummere"
|
||||
err_not_a_number = "Bitte eine nummer eingeben."
|
||||
|
||||
|
135
Toolbox.py
135
Toolbox.py
@ -1,8 +1,3 @@
|
||||
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.
|
||||
@ -10,26 +5,27 @@ Die Funktionen sind auch auf OneNote dokumentiert.
|
||||
|
||||
import random
|
||||
|
||||
|
||||
def randomInRange(untergrenze, obergrenze):
|
||||
def randomInRange (untergrenze,obergrenze):
|
||||
"""Generiert einen zufälligen Wert innerhalb vorgegebener Grenzen"""
|
||||
return random.randint(untergrenze, obergrenze)
|
||||
return random.randint(untergrenze,obergrenze)
|
||||
|
||||
def randomItem ():
|
||||
"""Wählt einen zufälligen Gegenstand aus einer vordefinierten Liste aus."""
|
||||
möglicheGegenstände = ["holzpflocksichere Weste","Anti-Knoblauch-Spray","Noten-Booster","Nachsitz-Stellvertreter*in","Gummibärli mit veganer Gelatine","Hausaufgaben-Weg!-Zauber","Sportunterricht-Schwänz-Ausreden-Generator","Dauer-Abo für Programmier-Lern-Videos","nasse-Schwämme-Kanone, unsichtbar für Lehrsonen","vom-Bett-direkt-ins-Schulzimmer-Beamer","Hausaufgaben-Butler","langweilige Informatik-Lektion (äusserst selten!!!)","Monster-Lexikon","Friedens-Panzer","privater Mensa-Tisch mit unendlich Dessert","ewige Jugend","Mute-Schalter für Erwachsene","Thermo-Mix","Lösungen für alle Prüfungen ever","1 Tonne Kaugummi mit Salat-Geschmack","solarbetriebenes Karton-Uboot","Übersetzungsgerät Katzen->Menschen","Hausstaub","Ersatz-Schuebändel","sehr effizientes Reinigungsmittel","Buch 1001 lustige Mathe-Rätsel","10-bändige Enzyklopädie des schweizerdeutschen Humors","3-zinkige Gabel","Löffel mit eingebautem Lautsprecher","Staubsauger, der dich versteht","personalisierbares WC-Papier","Velo mit Gartenschlauch-Anschluss","Laserschwert-Schärfer","Pickel-Erzeugungs-Crème","elegante Wanderschuhe","interstellare Raumfähre für Würmer","Bücherwurm-Komposter","nimmermüdes Murmeltier","Regenbogen produzierende Sonnenbrille","Sichtbarmachende Unsichtbarkeitsbrille","Pflanzenwachstums-Beschleunigungs-Spray","Gedankenlesende Haarbürste","Selbstreinigendes Geschirr","Automatischer Unterrichts-Versteher","Unzerbrechliche Seifenblase","Universale Fernbedienung für alles","Portabler Schwarzes Loch Müllschlucker"]
|
||||
return random.choice(möglicheGegenstände)
|
||||
|
||||
def testeObInListe(liste, ding):
|
||||
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...")
|
||||
print("Leider existiert",ding,"nicht - jedenfalls nicht hier...")
|
||||
return False
|
||||
|
||||
|
||||
def zeigeListe(listeDerOptionen):
|
||||
def zeigeListe (listeDerOptionen):
|
||||
"""Zeigt eine Liste von Optionen nummeriert an."""
|
||||
for i, element in enumerate(listeDerOptionen):
|
||||
print(f"{i + 1}. {element}")
|
||||
|
||||
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."""
|
||||
@ -43,22 +39,17 @@ def wähleAusListe(listeDerOptionen):
|
||||
print("Ungültige Auswahl. Bitte versuchen Sie es erneut.")
|
||||
return wähleAusListe(listeDerOptionen)
|
||||
else:
|
||||
# return element not number
|
||||
return listeDerOptionen[auswahl - 1]
|
||||
|
||||
return auswahl
|
||||
|
||||
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.-----------")
|
||||
input("\n-----------Drücken Sie 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!")
|
||||
@ -70,54 +61,74 @@ def AbenteuerEnde():
|
||||
print("::::::::::::::::THE END::::::::::::::::")
|
||||
|
||||
|
||||
def blue(s):
|
||||
return BLUE + s + RESET
|
||||
class Wesen ():
|
||||
def __init__(self, name):
|
||||
self.name = name
|
||||
self.lebenspunkte = 100
|
||||
self.kraft = randomInRange(3,6) # randomisierte Kraft zur Instanziierung, um Spielablauf weniger berechenbar zu gestalten
|
||||
self.besitz = self.besitz = [randomItem()]
|
||||
|
||||
def stelltSichVor(self):
|
||||
"""Stellt das Wesen vor und zeigt dessen Besitz."""
|
||||
print("Name:\t\t",self.name)
|
||||
print("Folgendes ist im Besitz von ",self.name,":")
|
||||
zeigeListe(self.besitz) # Aufruf einer weiteren Funktion (zeigeListe)
|
||||
pressForward()
|
||||
|
||||
def magenta(s):
|
||||
return MAGENTA + s + RESET
|
||||
def bekommtEtwas (self, beschreibung):
|
||||
"""Fügt der Besitzliste des Wesens ein neues Item hinzu."""
|
||||
self.besitz.append(beschreibung)
|
||||
print(self.name,"besitzt jetzt",beschreibung)
|
||||
|
||||
def gibtEtwasAn (self, nehmer, beschreibung):
|
||||
"""Ermöglicht die Übergabe von Gegenständen zwischen zwei Wesen."""
|
||||
print(self.name,"gibt",beschreibung,"an",nehmer.name)
|
||||
if testeObInListe (self.besitz,beschreibung)==False:
|
||||
print("\nOh",self.name,"hat gar kein",beschreibung,":-(")
|
||||
else:
|
||||
nehmer.bekommtEtwas(beschreibung)
|
||||
self.besitz.remove(beschreibung)
|
||||
pressForward()
|
||||
|
||||
def askUser(question):
|
||||
while True:
|
||||
answer = input(question + " ")
|
||||
if answer != "":
|
||||
return answer
|
||||
def kämpftMit (self, anderesWesen, anzahlRunden):
|
||||
"""Lässt zwei Wesen über eine bestimmte Anzahl von Runden miteinander kämpfen."""
|
||||
print("\n",self.name,"und",anderesWesen.name,"kämpfen!")
|
||||
|
||||
# Hier werden 4 Funktionen innerhalb einer Funktion definiert.
|
||||
# Das ist dann sinnvoll, wenn diese Funktion nirgends sonst verwendet werden.
|
||||
# Falls später z.B. der Verlierer dem Gewinner einen Gegenstand gibt, kann das unkompliziert ergänzt werden - ohne den übrigen Code zu verändern.
|
||||
def kämpfen (fig1, fig2): # fig1=verteidiger, fig2= angreifer
|
||||
if testeObBeideLeben(self, anderesWesen):
|
||||
angriffsstärke = randomInRange(1,10) * fig2.kraft
|
||||
print(fig2.name,"greift",fig1.name,"mit",angriffsstärke,"an.")
|
||||
fig1.lebenspunkte=fig1.lebenspunkte-angriffsstärke
|
||||
statusbericht(fig1)
|
||||
|
||||
def askUserInt(question):
|
||||
while True:
|
||||
try:
|
||||
return int(askUser(question + " "))
|
||||
except:
|
||||
print(err_not_a_number)
|
||||
def statusbericht (wesen):
|
||||
print("Lebenspunkte von",wesen.name,":\t",wesen.lebenspunkte)
|
||||
|
||||
def kampfBeenden(self):
|
||||
print("\nDer Kampf zwischen",self.name,"und",anderesWesen.name,"ist zu Ende.")
|
||||
|
||||
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
|
||||
if self.lebenspunkte > anderesWesen.lebenspunkte:
|
||||
print(self.name,"hat gewonnen!")
|
||||
else:
|
||||
print(self.name,"hat verloren.")
|
||||
|
||||
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)
|
||||
def testeObBeideLeben(self, anderesWesen):
|
||||
if self.lebenspunkte > 0 and anderesWesen.lebenspunkte > 0:
|
||||
return True
|
||||
|
||||
## 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
|
||||
# Es folgt nun in den nächsten Zeilen der eigentliche Kampf.
|
||||
# Durch die Verwendung von Funktionen wird es sehr übersichtlich!
|
||||
statusbericht(self)
|
||||
statusbericht(anderesWesen)
|
||||
rundenZähler = 1
|
||||
anzahlRunden +=1
|
||||
while (rundenZähler<anzahlRunden and testeObBeideLeben(self, anderesWesen)):
|
||||
print("\nRunde",(rundenZähler),":")
|
||||
kämpfen(self, anderesWesen)
|
||||
kämpfen(anderesWesen, self)
|
||||
rundenZähler+=1
|
||||
pressForward()
|
||||
kampfBeenden(self)
|
18
colors.py
18
colors.py
@ -1,18 +0,0 @@
|
||||
BLACK = '\033[30m'
|
||||
RED = '\033[31m'
|
||||
GREEN = '\033[32m'
|
||||
YELLOW = '\033[33m' # orange on some systems
|
||||
BLUE = '\033[34m'
|
||||
MAGENTA = '\033[35m'
|
||||
CYAN = '\033[36m'
|
||||
LIGHT_GRAY = '\033[37m'
|
||||
DARK_GRAY = '\033[90m'
|
||||
BRIGHT_RED = '\033[91m'
|
||||
BRIGHT_GREEN = '\033[92m'
|
||||
BRIGHT_YELLOW = '\033[93m'
|
||||
BRIGHT_BLUE = '\033[94m'
|
||||
BRIGHT_MAGENTA = '\033[95m'
|
||||
BRIGHT_CYAN = '\033[96m'
|
||||
WHITE = '\033[97m'
|
||||
|
||||
RESET = '\033[0m' # called to return to standard terminal text color
|
29
main.py
29
main.py
@ -1,29 +0,0 @@
|
||||
from Texte import *
|
||||
from Toolbox import *
|
||||
from user import User
|
||||
|
||||
print(welcome_message)
|
||||
|
||||
user = User()
|
||||
|
||||
interest = RomanticInterest(user.preference)
|
||||
|
||||
meet_cute()
|
||||
pressForward()
|
||||
|
||||
interest.introduce()
|
||||
|
||||
pressForward()
|
||||
|
||||
print(situation_head_over_heels)
|
||||
|
||||
pressForward()
|
||||
|
||||
print(ask_what_you_do)
|
||||
action = wähleAusListe([action_throw_book, action_introduce_self, action_ask_age])
|
||||
|
||||
user.do_action(action)
|
||||
|
||||
pressForward()
|
||||
|
||||
interest.react_to(action)
|
@ -1,5 +0,0 @@
|
||||
home = /usr/bin
|
||||
include-system-site-packages = false
|
||||
version = 3.12.7
|
||||
executable = /usr/bin/python3.12
|
||||
command = /usr/bin/python3 -m venv /home/schreifuchs/dev/lous-thing
|
21
user.py
21
user.py
@ -1,21 +0,0 @@
|
||||
from Toolbox import *
|
||||
from Texte import *
|
||||
|
||||
|
||||
class User:
|
||||
def __init__(self):
|
||||
self.name = askUser(ask_name)
|
||||
self.age = askUserInt(ask_age)
|
||||
print(ask_sexual_preference)
|
||||
self.preference = wähleAusListe([gender_male, gender_female, gender_other])
|
||||
|
||||
def __str__(self):
|
||||
return self.name + str(self.age) + self.preference
|
||||
|
||||
def do_action(self, action):
|
||||
if action == action_ask_age:
|
||||
print(blue(ask_age))
|
||||
elif action == action_throw_book:
|
||||
print(blue(situation_throw_book))
|
||||
elif action == action_introduce_self:
|
||||
print(blue("Hallo"))
|
Loading…
Reference in New Issue
Block a user