working version
This commit is contained in:
parent
b2305b1e4c
commit
f4f7535887
2
.gitignore
vendored
2
.gitignore
vendored
@ -5,7 +5,7 @@ __pycache__/
|
|||||||
|
|
||||||
# C extensions
|
# C extensions
|
||||||
*.so
|
*.so
|
||||||
|
.idea
|
||||||
# Distribution / packaging
|
# Distribution / packaging
|
||||||
.Python
|
.Python
|
||||||
build/
|
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 @@
|
|||||||
#####################
|
import Texte as t
|
||||||
# Autor:in: Taina Sophia Kreuzer
|
import Toolbox as tb
|
||||||
#####################
|
import BetterUtils as u
|
||||||
|
|
||||||
from Toolbox import *
|
print(t.welcome_message)
|
||||||
from Texte import *
|
|
||||||
|
|
||||||
print()
|
# setup Characters
|
||||||
print()
|
user = u.User()
|
||||||
print()
|
interest = u.RomanticInterest(user.preference, u.generateAge(user.age))
|
||||||
print(disclaimer)
|
|
||||||
print ()
|
|
||||||
print(einstieg)
|
|
||||||
|
|
||||||
name= input(fragename)
|
# meet interest
|
||||||
spieler = Wesen(name)
|
t.meet_cute()
|
||||||
ausrüstung= [akten, handy]
|
tb.pressForward()
|
||||||
print (inventar1+name+inventar2)
|
interest.introduce()
|
||||||
zeigeListe(ausrüstung)
|
tb.pressForward()
|
||||||
print(ziel1)
|
print(t.situation_head_over_heels)
|
||||||
answer=input(frage1)
|
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):
|
user.do_action(action)
|
||||||
print(aufzählunggrid)
|
tb.pressForward()
|
||||||
elif (answer== nein):
|
interest.react_to(action)
|
||||||
print(gut)
|
|
||||||
print()
|
|
||||||
print(start)
|
|
||||||
print(indiz1)
|
|
||||||
|
|
||||||
pressForward()
|
|
||||||
|
|
||||||
verdächtigter1=input(vorraussetungantwort1)
|
## Second choice
|
||||||
if(verdächtigter1==lösungv1):
|
print(t.ask_what_you_do)
|
||||||
print(anfang)
|
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:
|
else:
|
||||||
print (DNN)
|
print(t.loose_message)
|
||||||
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)
|
|
||||||
|
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))
|
80
Texte.py
80
Texte.py
@ -3,14 +3,19 @@ Hier können Sie Ihre Texte aufschreiben.
|
|||||||
Das hat den Vorteil, dass der Code Ihres Abenteuers übersichtlicher wird.
|
Das hat den Vorteil, dass der Code Ihres Abenteuers übersichtlicher wird.
|
||||||
Verwenden Sie selbsterklärende Variablennamen.
|
Verwenden Sie selbsterklärende Variablennamen.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import time
|
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():
|
def meet_cute():
|
||||||
print("""
|
print("""
|
||||||
@ -20,22 +25,74 @@ also siehst du die Person die dir entgegen kommt nicht.
|
|||||||
time.sleep(1.5)
|
time.sleep(1.5)
|
||||||
print("WUUUUMMMMMMSSS")
|
print("WUUUUMMMMMMSSS")
|
||||||
|
|
||||||
situation_head_over_heels="""
|
|
||||||
|
situation_head_over_heels = """
|
||||||
Dir fehlen die Worte. Noch nie ist dir eine solch atemberaubende Person ins
|
Dir fehlen die Worte. Noch nie ist dir eine solch atemberaubende Person ins
|
||||||
Leben getreten. Schnell, deine Traumperson wartet auf eine Antwort!
|
Leben getreten. Schnell, deine Traumperson wartet auf eine Antwort!
|
||||||
"""
|
"""
|
||||||
|
|
||||||
situation_throw_book = """
|
situation_throw_book = """
|
||||||
Du wirfst dein Buch!!!
|
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_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_throw_book = "Werfe dein buch nach der Person."
|
||||||
action_introduce_self = "Stelle dich selbst vor."
|
action_introduce_self = "Stelle dich selbst vor."
|
||||||
action_ask_age = "Wie alt bist du?"
|
action_ask_age = "Wie alt bist du?"
|
||||||
|
|
||||||
gender_male="Mänlich"
|
action_dance = "Führe einen lustigen tanz auf."
|
||||||
gender_female="Weiblich"
|
action_ask_for_number = "Frage nach der Telefon nummer."
|
||||||
gender_other="Nonbinär"
|
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 = {
|
names = {
|
||||||
gender_male: ["Hans", "Peter", "Mika", "Ueli"],
|
gender_male: ["Hans", "Peter", "Mika", "Ueli"],
|
||||||
@ -43,4 +100,5 @@ names = {
|
|||||||
gender_other: ["Kim", "Sky", "Raven"],
|
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.
|
Hier finden Sie Funktionen, die Sie für Ihr eigenes Abenteuer nutzen können.
|
||||||
Die Funktionen sind auch auf OneNote dokumentiert.
|
Die Funktionen sind auch auf OneNote dokumentiert.
|
||||||
@ -10,26 +5,27 @@ Die Funktionen sind auch auf OneNote dokumentiert.
|
|||||||
|
|
||||||
import random
|
import random
|
||||||
|
|
||||||
|
def randomInRange (untergrenze,obergrenze):
|
||||||
def randomInRange(untergrenze, obergrenze):
|
|
||||||
"""Generiert einen zufälligen Wert innerhalb vorgegebener Grenzen"""
|
"""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"""
|
"""Überprüft, ob ein Element in einer Liste vorhanden ist und gibt entsprechend Rückmeldung"""
|
||||||
if ding in liste:
|
if ding in liste:
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
print("Leider existiert", ding, "nicht - jedenfalls nicht hier...")
|
print("Leider existiert",ding,"nicht - jedenfalls nicht hier...")
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
def zeigeListe (listeDerOptionen):
|
||||||
def zeigeListe(listeDerOptionen):
|
|
||||||
"""Zeigt eine Liste von Optionen nummeriert an."""
|
"""Zeigt eine Liste von Optionen nummeriert an."""
|
||||||
for i, element in enumerate(listeDerOptionen):
|
for i, element in enumerate(listeDerOptionen):
|
||||||
print(f"{i + 1}. {element}")
|
print(f"{i+1}. {element}")
|
||||||
|
|
||||||
|
|
||||||
def wähleAusListe(listeDerOptionen):
|
def wähleAusListe(listeDerOptionen):
|
||||||
"""Lässt Benutzer*innen eine Option aus einer Liste auswählen und gibt die gewählte Option zurück."""
|
"""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.")
|
print("Ungültige Auswahl. Bitte versuchen Sie es erneut.")
|
||||||
return wähleAusListe(listeDerOptionen)
|
return wähleAusListe(listeDerOptionen)
|
||||||
else:
|
else:
|
||||||
# return element not number
|
return auswahl
|
||||||
return listeDerOptionen[auswahl - 1]
|
|
||||||
|
|
||||||
|
|
||||||
def pressForward():
|
def pressForward():
|
||||||
"""Hält das Ausführend des Programms an, bis der Benutzer eine Taste drückt."""
|
"""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():
|
def AbenteuerAbbrechen():
|
||||||
"""Beendet das Abenteuer vorzeitig und bricht die Ausführung des Programms ab."""
|
"""Beendet das Abenteuer vorzeitig und bricht die Ausführung des Programms ab."""
|
||||||
print("Das Spiel ist leider zu Ende.")
|
print("Das Spiel ist leider zu Ende.")
|
||||||
exit()
|
exit()
|
||||||
|
|
||||||
|
|
||||||
def AbenteuerEnde():
|
def AbenteuerEnde():
|
||||||
"""Markiert das erfolgreiche Ende des Abenteuers."""
|
"""Markiert das erfolgreiche Ende des Abenteuers."""
|
||||||
print("Nach zahlreichen Strapazen haben Sie es geschafft!")
|
print("Nach zahlreichen Strapazen haben Sie es geschafft!")
|
||||||
@ -70,54 +61,74 @@ def AbenteuerEnde():
|
|||||||
print("::::::::::::::::THE END::::::::::::::::")
|
print("::::::::::::::::THE END::::::::::::::::")
|
||||||
|
|
||||||
|
|
||||||
def blue(s):
|
class Wesen ():
|
||||||
return BLUE + s + RESET
|
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):
|
def bekommtEtwas (self, beschreibung):
|
||||||
return MAGENTA + s + RESET
|
"""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):
|
def kämpftMit (self, anderesWesen, anzahlRunden):
|
||||||
while True:
|
"""Lässt zwei Wesen über eine bestimmte Anzahl von Runden miteinander kämpfen."""
|
||||||
answer = input(question + " ")
|
print("\n",self.name,"und",anderesWesen.name,"kämpfen!")
|
||||||
if answer != "":
|
|
||||||
return answer
|
|
||||||
|
|
||||||
|
# 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):
|
def statusbericht (wesen):
|
||||||
while True:
|
print("Lebenspunkte von",wesen.name,":\t",wesen.lebenspunkte)
|
||||||
try:
|
|
||||||
return int(askUser(question + " "))
|
|
||||||
except:
|
|
||||||
print(err_not_a_number)
|
|
||||||
|
|
||||||
|
def kampfBeenden(self):
|
||||||
|
print("\nDer Kampf zwischen",self.name,"und",anderesWesen.name,"ist zu Ende.")
|
||||||
|
|
||||||
class RomanticInterest():
|
if self.lebenspunkte > anderesWesen.lebenspunkte:
|
||||||
def __init__(self, gender):
|
print(self.name,"hat gewonnen!")
|
||||||
self.name = random.choice(names.get(gender, names[gender_other]))
|
else:
|
||||||
self.gender = gender
|
print(self.name,"hat verloren.")
|
||||||
self.rom_goals = 200
|
|
||||||
self.rom_points = 50
|
|
||||||
|
|
||||||
def introduce(self):
|
def testeObBeideLeben(self, anderesWesen):
|
||||||
print(magenta("oh..."))
|
if self.lebenspunkte > 0 and anderesWesen.lebenspunkte > 0:
|
||||||
print(magenta("Hallo du!"))
|
return True
|
||||||
time.sleep(0.7)
|
|
||||||
print(magenta("Mein name ist " + self.name + "."))
|
|
||||||
time.sleep(0.5)
|
|
||||||
|
|
||||||
## only print pronouns if nonbinary otherwise clear from name
|
# Es folgt nun in den nächsten Zeilen der eigentliche Kampf.
|
||||||
if self.gender == gender_other:
|
# Durch die Verwendung von Funktionen wird es sehr übersichtlich!
|
||||||
print("Und BTW meine Pronomen sind: they/them.")
|
statusbericht(self)
|
||||||
|
statusbericht(anderesWesen)
|
||||||
def react_to(self, action):
|
rundenZähler = 1
|
||||||
if action == action_ask_age:
|
anzahlRunden +=1
|
||||||
print(magenta("Ich bin 17 jahre alt!"))
|
while (rundenZähler<anzahlRunden and testeObBeideLeben(self, anderesWesen)):
|
||||||
self.rom_points -= 20
|
print("\nRunde",(rundenZähler),":")
|
||||||
elif action == action_throw_book:
|
kämpfen(self, anderesWesen)
|
||||||
print(magenta(situation_get_hurt_bad))
|
kämpfen(anderesWesen, self)
|
||||||
self.rom_points -= 100
|
rundenZähler+=1
|
||||||
elif action == action_introduce_self:
|
pressForward()
|
||||||
print(magenta("Hallo du"))
|
kampfBeenden(self)
|
||||||
self.rom_points += 50
|
|
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