init
This commit is contained in:
commit
fe31c6d478
162
.gitignore
vendored
Normal file
162
.gitignore
vendored
Normal file
@ -0,0 +1,162 @@
|
|||||||
|
# Byte-compiled / optimized / DLL files
|
||||||
|
__pycache__/
|
||||||
|
*.py[cod]
|
||||||
|
*$py.class
|
||||||
|
|
||||||
|
# C extensions
|
||||||
|
*.so
|
||||||
|
|
||||||
|
# Distribution / packaging
|
||||||
|
.Python
|
||||||
|
build/
|
||||||
|
develop-eggs/
|
||||||
|
dist/
|
||||||
|
downloads/
|
||||||
|
eggs/
|
||||||
|
.eggs/
|
||||||
|
lib/
|
||||||
|
lib64/
|
||||||
|
parts/
|
||||||
|
sdist/
|
||||||
|
var/
|
||||||
|
wheels/
|
||||||
|
share/python-wheels/
|
||||||
|
*.egg-info/
|
||||||
|
.installed.cfg
|
||||||
|
*.egg
|
||||||
|
MANIFEST
|
||||||
|
|
||||||
|
# PyInstaller
|
||||||
|
# Usually these files are written by a python script from a template
|
||||||
|
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||||
|
*.manifest
|
||||||
|
*.spec
|
||||||
|
|
||||||
|
# Installer logs
|
||||||
|
pip-log.txt
|
||||||
|
pip-delete-this-directory.txt
|
||||||
|
|
||||||
|
# Unit test / coverage reports
|
||||||
|
htmlcov/
|
||||||
|
.tox/
|
||||||
|
.nox/
|
||||||
|
.coverage
|
||||||
|
.coverage.*
|
||||||
|
.cache
|
||||||
|
nosetests.xml
|
||||||
|
coverage.xml
|
||||||
|
*.cover
|
||||||
|
*.py,cover
|
||||||
|
.hypothesis/
|
||||||
|
.pytest_cache/
|
||||||
|
cover/
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
*.mo
|
||||||
|
*.pot
|
||||||
|
|
||||||
|
# Django stuff:
|
||||||
|
*.log
|
||||||
|
local_settings.py
|
||||||
|
db.sqlite3
|
||||||
|
db.sqlite3-journal
|
||||||
|
|
||||||
|
# Flask stuff:
|
||||||
|
instance/
|
||||||
|
.webassets-cache
|
||||||
|
|
||||||
|
# Scrapy stuff:
|
||||||
|
.scrapy
|
||||||
|
|
||||||
|
# Sphinx documentation
|
||||||
|
docs/_build/
|
||||||
|
|
||||||
|
# PyBuilder
|
||||||
|
.pybuilder/
|
||||||
|
target/
|
||||||
|
|
||||||
|
# Jupyter Notebook
|
||||||
|
.ipynb_checkpoints
|
||||||
|
|
||||||
|
# IPython
|
||||||
|
profile_default/
|
||||||
|
ipython_config.py
|
||||||
|
|
||||||
|
# pyenv
|
||||||
|
# For a library or package, you might want to ignore these files since the code is
|
||||||
|
# intended to run in multiple environments; otherwise, check them in:
|
||||||
|
# .python-version
|
||||||
|
|
||||||
|
# pipenv
|
||||||
|
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
||||||
|
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
||||||
|
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
||||||
|
# install all needed dependencies.
|
||||||
|
#Pipfile.lock
|
||||||
|
|
||||||
|
# poetry
|
||||||
|
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
||||||
|
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
||||||
|
# commonly ignored for libraries.
|
||||||
|
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
||||||
|
#poetry.lock
|
||||||
|
|
||||||
|
# pdm
|
||||||
|
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
||||||
|
#pdm.lock
|
||||||
|
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
||||||
|
# in version control.
|
||||||
|
# https://pdm.fming.dev/latest/usage/project/#working-with-version-control
|
||||||
|
.pdm.toml
|
||||||
|
.pdm-python
|
||||||
|
.pdm-build/
|
||||||
|
|
||||||
|
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
||||||
|
__pypackages__/
|
||||||
|
|
||||||
|
# Celery stuff
|
||||||
|
celerybeat-schedule
|
||||||
|
celerybeat.pid
|
||||||
|
|
||||||
|
# SageMath parsed files
|
||||||
|
*.sage.py
|
||||||
|
|
||||||
|
# Environments
|
||||||
|
.env
|
||||||
|
.venv
|
||||||
|
env/
|
||||||
|
venv/
|
||||||
|
ENV/
|
||||||
|
env.bak/
|
||||||
|
venv.bak/
|
||||||
|
|
||||||
|
# Spyder project settings
|
||||||
|
.spyderproject
|
||||||
|
.spyproject
|
||||||
|
|
||||||
|
# Rope project settings
|
||||||
|
.ropeproject
|
||||||
|
|
||||||
|
# mkdocs documentation
|
||||||
|
/site
|
||||||
|
|
||||||
|
# mypy
|
||||||
|
.mypy_cache/
|
||||||
|
.dmypy.json
|
||||||
|
dmypy.json
|
||||||
|
|
||||||
|
# Pyre type checker
|
||||||
|
.pyre/
|
||||||
|
|
||||||
|
# pytype static type analyzer
|
||||||
|
.pytype/
|
||||||
|
|
||||||
|
# Cython debug symbols
|
||||||
|
cython_debug/
|
||||||
|
|
||||||
|
# PyCharm
|
||||||
|
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
||||||
|
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
||||||
|
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
||||||
|
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
||||||
|
#.idea/
|
3
.idea/.gitignore
vendored
Normal file
3
.idea/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Default ignored files
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
6
.idea/inspectionProfiles/profiles_settings.xml
Normal file
6
.idea/inspectionProfiles/profiles_settings.xml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
<component name="InspectionProjectProfileManager">
|
||||||
|
<settings>
|
||||||
|
<option name="USE_PROJECT_PROFILE" value="false" />
|
||||||
|
<version value="1.0" />
|
||||||
|
</settings>
|
||||||
|
</component>
|
15
.idea/lous-thing.iml
Normal file
15
.idea/lous-thing.iml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
<?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>
|
7
.idea/misc.xml
Normal file
7
.idea/misc.xml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<?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>
|
8
.idea/modules.xml
Normal file
8
.idea/modules.xml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<?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-11-11]
|
||||||
|
schreifuchs_at_archlinux = 824
|
110
Abenteuer.py
Normal file
110
Abenteuer.py
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
#####################
|
||||||
|
# Autor:in: Taina Sophia Kreuzer
|
||||||
|
#####################
|
||||||
|
|
||||||
|
from Toolbox import *
|
||||||
|
from Texte import *
|
||||||
|
|
||||||
|
print()
|
||||||
|
print()
|
||||||
|
print()
|
||||||
|
print(disclaimer)
|
||||||
|
print ()
|
||||||
|
print(einstieg)
|
||||||
|
|
||||||
|
name= input(fragename)
|
||||||
|
spieler = Wesen(name)
|
||||||
|
ausrüstung= [akten, handy]
|
||||||
|
print (inventar1+name+inventar2)
|
||||||
|
zeigeListe(ausrüstung)
|
||||||
|
print(ziel1)
|
||||||
|
answer=input(frage1)
|
||||||
|
|
||||||
|
pressForward()
|
||||||
|
|
||||||
|
if (answer==ja):
|
||||||
|
print(aufzählunggrid)
|
||||||
|
elif (answer== nein):
|
||||||
|
print(gut)
|
||||||
|
print()
|
||||||
|
print(start)
|
||||||
|
print(indiz1)
|
||||||
|
|
||||||
|
pressForward()
|
||||||
|
|
||||||
|
verdächtigter1=input(vorraussetungantwort1)
|
||||||
|
if(verdächtigter1==lösungv1):
|
||||||
|
print(anfang)
|
||||||
|
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)
|
36
Ordner_Test.py
Normal file
36
Ordner_Test.py
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
# Diese Datei ist nur dazu da, zu testen, ob alle nötigen Dateien im gleichen Verzeichnis sind.
|
||||||
|
print("Start des Tests")
|
||||||
|
|
||||||
|
print("Start des Tests")
|
||||||
|
try:
|
||||||
|
from Toolbox import *
|
||||||
|
print ("Die Datei 'Toolbox.py' wurde gefunden.")
|
||||||
|
except ImportError:
|
||||||
|
print("Fehler: Die Datei 'Toolbox.py' wurde nicht gefunden. "
|
||||||
|
"\nBitte stellen Sie sicher, dass sie im gleichen Verzeichnis wie diese Datei liegt.")
|
||||||
|
try:
|
||||||
|
import Texte
|
||||||
|
print ("Die Datei 'Texte.py' wurde gefunden.")
|
||||||
|
except ImportError:
|
||||||
|
print("Fehler: Die Datei 'Texte.py' wurde nicht gefunden. "
|
||||||
|
"\nBitte stellen Sie sicher, dass sie im gleichen Verzeichnis wie diese Datei liegt.")
|
||||||
|
try:
|
||||||
|
import Abenteuer
|
||||||
|
print ("Die Datei 'Abenteuer.py' wurde gefunden.")
|
||||||
|
except ImportError:
|
||||||
|
print("Fehler: Die Datei 'Abenteuer.py' wurde nicht gefunden. "
|
||||||
|
"\nBitte stellen Sie sicher, dass sie im gleichen Verzeichnis wie diese Datei liegt.")
|
||||||
|
|
||||||
|
try:
|
||||||
|
print(Texte.test)
|
||||||
|
print ("Der Text 'test' wurde gefunden.")
|
||||||
|
except (NameError, AttributeError):
|
||||||
|
print("Fehler: Der Text 'test' wurde in 'Texte.py' nicht gefunden. "
|
||||||
|
"\nBitte überprüfen Sie, ob sie korrekt definiert ist.")
|
||||||
|
try:
|
||||||
|
AbenteuerEnde()
|
||||||
|
print ("Die Funktion 'AbenteuerEnde' wurde gefunden.")
|
||||||
|
except NameError:
|
||||||
|
print("Fehler: Die Funktion 'AbenteuerEnde' wurde in 'Toolbox.py' nicht gefunden. "
|
||||||
|
"\nBitte überprüfen Sie, ob sie korrekt definiert ist.")
|
||||||
|
print("Ende des Tests"+"\n" * 2)
|
46
Texte.py
Normal file
46
Texte.py
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
"""
|
||||||
|
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."
|
||||||
|
|
||||||
|
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("""
|
||||||
|
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")
|
||||||
|
|
||||||
|
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_get_hurt_bad = "Aua, was soll das!?!"
|
||||||
|
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"
|
||||||
|
|
||||||
|
names = {
|
||||||
|
gender_male: ["Hans", "Peter", "Mika", "Ueli"],
|
||||||
|
gender_female: ["Liselotte", "Gretli", "Rebi"],
|
||||||
|
gender_other: ["Kim", "Sky", "Raven"],
|
||||||
|
}
|
||||||
|
|
||||||
|
err_not_a_number="Bitte gib nummere"
|
123
Toolbox.py
Normal file
123
Toolbox.py
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
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
|
247
bin/Activate.ps1
Normal file
247
bin/Activate.ps1
Normal file
@ -0,0 +1,247 @@
|
|||||||
|
<#
|
||||||
|
.Synopsis
|
||||||
|
Activate a Python virtual environment for the current PowerShell session.
|
||||||
|
|
||||||
|
.Description
|
||||||
|
Pushes the python executable for a virtual environment to the front of the
|
||||||
|
$Env:PATH environment variable and sets the prompt to signify that you are
|
||||||
|
in a Python virtual environment. Makes use of the command line switches as
|
||||||
|
well as the `pyvenv.cfg` file values present in the virtual environment.
|
||||||
|
|
||||||
|
.Parameter VenvDir
|
||||||
|
Path to the directory that contains the virtual environment to activate. The
|
||||||
|
default value for this is the parent of the directory that the Activate.ps1
|
||||||
|
script is located within.
|
||||||
|
|
||||||
|
.Parameter Prompt
|
||||||
|
The prompt prefix to display when this virtual environment is activated. By
|
||||||
|
default, this prompt is the name of the virtual environment folder (VenvDir)
|
||||||
|
surrounded by parentheses and followed by a single space (ie. '(.venv) ').
|
||||||
|
|
||||||
|
.Example
|
||||||
|
Activate.ps1
|
||||||
|
Activates the Python virtual environment that contains the Activate.ps1 script.
|
||||||
|
|
||||||
|
.Example
|
||||||
|
Activate.ps1 -Verbose
|
||||||
|
Activates the Python virtual environment that contains the Activate.ps1 script,
|
||||||
|
and shows extra information about the activation as it executes.
|
||||||
|
|
||||||
|
.Example
|
||||||
|
Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv
|
||||||
|
Activates the Python virtual environment located in the specified location.
|
||||||
|
|
||||||
|
.Example
|
||||||
|
Activate.ps1 -Prompt "MyPython"
|
||||||
|
Activates the Python virtual environment that contains the Activate.ps1 script,
|
||||||
|
and prefixes the current prompt with the specified string (surrounded in
|
||||||
|
parentheses) while the virtual environment is active.
|
||||||
|
|
||||||
|
.Notes
|
||||||
|
On Windows, it may be required to enable this Activate.ps1 script by setting the
|
||||||
|
execution policy for the user. You can do this by issuing the following PowerShell
|
||||||
|
command:
|
||||||
|
|
||||||
|
PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
|
||||||
|
|
||||||
|
For more information on Execution Policies:
|
||||||
|
https://go.microsoft.com/fwlink/?LinkID=135170
|
||||||
|
|
||||||
|
#>
|
||||||
|
Param(
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[String]
|
||||||
|
$VenvDir,
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
[String]
|
||||||
|
$Prompt
|
||||||
|
)
|
||||||
|
|
||||||
|
<# Function declarations --------------------------------------------------- #>
|
||||||
|
|
||||||
|
<#
|
||||||
|
.Synopsis
|
||||||
|
Remove all shell session elements added by the Activate script, including the
|
||||||
|
addition of the virtual environment's Python executable from the beginning of
|
||||||
|
the PATH variable.
|
||||||
|
|
||||||
|
.Parameter NonDestructive
|
||||||
|
If present, do not remove this function from the global namespace for the
|
||||||
|
session.
|
||||||
|
|
||||||
|
#>
|
||||||
|
function global:deactivate ([switch]$NonDestructive) {
|
||||||
|
# Revert to original values
|
||||||
|
|
||||||
|
# The prior prompt:
|
||||||
|
if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) {
|
||||||
|
Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt
|
||||||
|
Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT
|
||||||
|
}
|
||||||
|
|
||||||
|
# The prior PYTHONHOME:
|
||||||
|
if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) {
|
||||||
|
Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME
|
||||||
|
Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME
|
||||||
|
}
|
||||||
|
|
||||||
|
# The prior PATH:
|
||||||
|
if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) {
|
||||||
|
Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH
|
||||||
|
Remove-Item -Path Env:_OLD_VIRTUAL_PATH
|
||||||
|
}
|
||||||
|
|
||||||
|
# Just remove the VIRTUAL_ENV altogether:
|
||||||
|
if (Test-Path -Path Env:VIRTUAL_ENV) {
|
||||||
|
Remove-Item -Path env:VIRTUAL_ENV
|
||||||
|
}
|
||||||
|
|
||||||
|
# Just remove VIRTUAL_ENV_PROMPT altogether.
|
||||||
|
if (Test-Path -Path Env:VIRTUAL_ENV_PROMPT) {
|
||||||
|
Remove-Item -Path env:VIRTUAL_ENV_PROMPT
|
||||||
|
}
|
||||||
|
|
||||||
|
# Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether:
|
||||||
|
if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) {
|
||||||
|
Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force
|
||||||
|
}
|
||||||
|
|
||||||
|
# Leave deactivate function in the global namespace if requested:
|
||||||
|
if (-not $NonDestructive) {
|
||||||
|
Remove-Item -Path function:deactivate
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
<#
|
||||||
|
.Description
|
||||||
|
Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the
|
||||||
|
given folder, and returns them in a map.
|
||||||
|
|
||||||
|
For each line in the pyvenv.cfg file, if that line can be parsed into exactly
|
||||||
|
two strings separated by `=` (with any amount of whitespace surrounding the =)
|
||||||
|
then it is considered a `key = value` line. The left hand string is the key,
|
||||||
|
the right hand is the value.
|
||||||
|
|
||||||
|
If the value starts with a `'` or a `"` then the first and last character is
|
||||||
|
stripped from the value before being captured.
|
||||||
|
|
||||||
|
.Parameter ConfigDir
|
||||||
|
Path to the directory that contains the `pyvenv.cfg` file.
|
||||||
|
#>
|
||||||
|
function Get-PyVenvConfig(
|
||||||
|
[String]
|
||||||
|
$ConfigDir
|
||||||
|
) {
|
||||||
|
Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg"
|
||||||
|
|
||||||
|
# Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue).
|
||||||
|
$pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue
|
||||||
|
|
||||||
|
# An empty map will be returned if no config file is found.
|
||||||
|
$pyvenvConfig = @{ }
|
||||||
|
|
||||||
|
if ($pyvenvConfigPath) {
|
||||||
|
|
||||||
|
Write-Verbose "File exists, parse `key = value` lines"
|
||||||
|
$pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath
|
||||||
|
|
||||||
|
$pyvenvConfigContent | ForEach-Object {
|
||||||
|
$keyval = $PSItem -split "\s*=\s*", 2
|
||||||
|
if ($keyval[0] -and $keyval[1]) {
|
||||||
|
$val = $keyval[1]
|
||||||
|
|
||||||
|
# Remove extraneous quotations around a string value.
|
||||||
|
if ("'""".Contains($val.Substring(0, 1))) {
|
||||||
|
$val = $val.Substring(1, $val.Length - 2)
|
||||||
|
}
|
||||||
|
|
||||||
|
$pyvenvConfig[$keyval[0]] = $val
|
||||||
|
Write-Verbose "Adding Key: '$($keyval[0])'='$val'"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $pyvenvConfig
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
<# Begin Activate script --------------------------------------------------- #>
|
||||||
|
|
||||||
|
# Determine the containing directory of this script
|
||||||
|
$VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition
|
||||||
|
$VenvExecDir = Get-Item -Path $VenvExecPath
|
||||||
|
|
||||||
|
Write-Verbose "Activation script is located in path: '$VenvExecPath'"
|
||||||
|
Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)"
|
||||||
|
Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)"
|
||||||
|
|
||||||
|
# Set values required in priority: CmdLine, ConfigFile, Default
|
||||||
|
# First, get the location of the virtual environment, it might not be
|
||||||
|
# VenvExecDir if specified on the command line.
|
||||||
|
if ($VenvDir) {
|
||||||
|
Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values"
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir."
|
||||||
|
$VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/")
|
||||||
|
Write-Verbose "VenvDir=$VenvDir"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Next, read the `pyvenv.cfg` file to determine any required value such
|
||||||
|
# as `prompt`.
|
||||||
|
$pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir
|
||||||
|
|
||||||
|
# Next, set the prompt from the command line, or the config file, or
|
||||||
|
# just use the name of the virtual environment folder.
|
||||||
|
if ($Prompt) {
|
||||||
|
Write-Verbose "Prompt specified as argument, using '$Prompt'"
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value"
|
||||||
|
if ($pyvenvCfg -and $pyvenvCfg['prompt']) {
|
||||||
|
Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'"
|
||||||
|
$Prompt = $pyvenvCfg['prompt'];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virtual environment)"
|
||||||
|
Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'"
|
||||||
|
$Prompt = Split-Path -Path $venvDir -Leaf
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Verbose "Prompt = '$Prompt'"
|
||||||
|
Write-Verbose "VenvDir='$VenvDir'"
|
||||||
|
|
||||||
|
# Deactivate any currently active virtual environment, but leave the
|
||||||
|
# deactivate function in place.
|
||||||
|
deactivate -nondestructive
|
||||||
|
|
||||||
|
# Now set the environment variable VIRTUAL_ENV, used by many tools to determine
|
||||||
|
# that there is an activated venv.
|
||||||
|
$env:VIRTUAL_ENV = $VenvDir
|
||||||
|
|
||||||
|
if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) {
|
||||||
|
|
||||||
|
Write-Verbose "Setting prompt to '$Prompt'"
|
||||||
|
|
||||||
|
# Set the prompt to include the env name
|
||||||
|
# Make sure _OLD_VIRTUAL_PROMPT is global
|
||||||
|
function global:_OLD_VIRTUAL_PROMPT { "" }
|
||||||
|
Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT
|
||||||
|
New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt
|
||||||
|
|
||||||
|
function global:prompt {
|
||||||
|
Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) "
|
||||||
|
_OLD_VIRTUAL_PROMPT
|
||||||
|
}
|
||||||
|
$env:VIRTUAL_ENV_PROMPT = $Prompt
|
||||||
|
}
|
||||||
|
|
||||||
|
# Clear PYTHONHOME
|
||||||
|
if (Test-Path -Path Env:PYTHONHOME) {
|
||||||
|
Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME
|
||||||
|
Remove-Item -Path Env:PYTHONHOME
|
||||||
|
}
|
||||||
|
|
||||||
|
# Add the venv to the PATH
|
||||||
|
Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH
|
||||||
|
$Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH"
|
70
bin/activate
Normal file
70
bin/activate
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
# This file must be used with "source bin/activate" *from bash*
|
||||||
|
# You cannot run it directly
|
||||||
|
|
||||||
|
deactivate () {
|
||||||
|
# reset old environment variables
|
||||||
|
if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then
|
||||||
|
PATH="${_OLD_VIRTUAL_PATH:-}"
|
||||||
|
export PATH
|
||||||
|
unset _OLD_VIRTUAL_PATH
|
||||||
|
fi
|
||||||
|
if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then
|
||||||
|
PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}"
|
||||||
|
export PYTHONHOME
|
||||||
|
unset _OLD_VIRTUAL_PYTHONHOME
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Call hash to forget past commands. Without forgetting
|
||||||
|
# past commands the $PATH changes we made may not be respected
|
||||||
|
hash -r 2> /dev/null
|
||||||
|
|
||||||
|
if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then
|
||||||
|
PS1="${_OLD_VIRTUAL_PS1:-}"
|
||||||
|
export PS1
|
||||||
|
unset _OLD_VIRTUAL_PS1
|
||||||
|
fi
|
||||||
|
|
||||||
|
unset VIRTUAL_ENV
|
||||||
|
unset VIRTUAL_ENV_PROMPT
|
||||||
|
if [ ! "${1:-}" = "nondestructive" ] ; then
|
||||||
|
# Self destruct!
|
||||||
|
unset -f deactivate
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# unset irrelevant variables
|
||||||
|
deactivate nondestructive
|
||||||
|
|
||||||
|
# on Windows, a path can contain colons and backslashes and has to be converted:
|
||||||
|
if [ "${OSTYPE:-}" = "cygwin" ] || [ "${OSTYPE:-}" = "msys" ] ; then
|
||||||
|
# transform D:\path\to\venv to /d/path/to/venv on MSYS
|
||||||
|
# and to /cygdrive/d/path/to/venv on Cygwin
|
||||||
|
export VIRTUAL_ENV=$(cygpath "/home/schreifuchs/dev/lous-thing")
|
||||||
|
else
|
||||||
|
# use the path as-is
|
||||||
|
export VIRTUAL_ENV="/home/schreifuchs/dev/lous-thing"
|
||||||
|
fi
|
||||||
|
|
||||||
|
_OLD_VIRTUAL_PATH="$PATH"
|
||||||
|
PATH="$VIRTUAL_ENV/bin:$PATH"
|
||||||
|
export PATH
|
||||||
|
|
||||||
|
# unset PYTHONHOME if set
|
||||||
|
# this will fail if PYTHONHOME is set to the empty string (which is bad anyway)
|
||||||
|
# could use `if (set -u; : $PYTHONHOME) ;` in bash
|
||||||
|
if [ -n "${PYTHONHOME:-}" ] ; then
|
||||||
|
_OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}"
|
||||||
|
unset PYTHONHOME
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then
|
||||||
|
_OLD_VIRTUAL_PS1="${PS1:-}"
|
||||||
|
PS1="(lous-thing) ${PS1:-}"
|
||||||
|
export PS1
|
||||||
|
VIRTUAL_ENV_PROMPT="(lous-thing) "
|
||||||
|
export VIRTUAL_ENV_PROMPT
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Call hash to forget past commands. Without forgetting
|
||||||
|
# past commands the $PATH changes we made may not be respected
|
||||||
|
hash -r 2> /dev/null
|
27
bin/activate.csh
Normal file
27
bin/activate.csh
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
# This file must be used with "source bin/activate.csh" *from csh*.
|
||||||
|
# You cannot run it directly.
|
||||||
|
|
||||||
|
# Created by Davide Di Blasi <davidedb@gmail.com>.
|
||||||
|
# Ported to Python 3.3 venv by Andrew Svetlov <andrew.svetlov@gmail.com>
|
||||||
|
|
||||||
|
alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; unsetenv VIRTUAL_ENV_PROMPT; test "\!:*" != "nondestructive" && unalias deactivate'
|
||||||
|
|
||||||
|
# Unset irrelevant variables.
|
||||||
|
deactivate nondestructive
|
||||||
|
|
||||||
|
setenv VIRTUAL_ENV "/home/schreifuchs/dev/lous-thing"
|
||||||
|
|
||||||
|
set _OLD_VIRTUAL_PATH="$PATH"
|
||||||
|
setenv PATH "$VIRTUAL_ENV/bin:$PATH"
|
||||||
|
|
||||||
|
|
||||||
|
set _OLD_VIRTUAL_PROMPT="$prompt"
|
||||||
|
|
||||||
|
if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then
|
||||||
|
set prompt = "(lous-thing) $prompt"
|
||||||
|
setenv VIRTUAL_ENV_PROMPT "(lous-thing) "
|
||||||
|
endif
|
||||||
|
|
||||||
|
alias pydoc python -m pydoc
|
||||||
|
|
||||||
|
rehash
|
69
bin/activate.fish
Normal file
69
bin/activate.fish
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
# This file must be used with "source <venv>/bin/activate.fish" *from fish*
|
||||||
|
# (https://fishshell.com/). You cannot run it directly.
|
||||||
|
|
||||||
|
function deactivate -d "Exit virtual environment and return to normal shell environment"
|
||||||
|
# reset old environment variables
|
||||||
|
if test -n "$_OLD_VIRTUAL_PATH"
|
||||||
|
set -gx PATH $_OLD_VIRTUAL_PATH
|
||||||
|
set -e _OLD_VIRTUAL_PATH
|
||||||
|
end
|
||||||
|
if test -n "$_OLD_VIRTUAL_PYTHONHOME"
|
||||||
|
set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME
|
||||||
|
set -e _OLD_VIRTUAL_PYTHONHOME
|
||||||
|
end
|
||||||
|
|
||||||
|
if test -n "$_OLD_FISH_PROMPT_OVERRIDE"
|
||||||
|
set -e _OLD_FISH_PROMPT_OVERRIDE
|
||||||
|
# prevents error when using nested fish instances (Issue #93858)
|
||||||
|
if functions -q _old_fish_prompt
|
||||||
|
functions -e fish_prompt
|
||||||
|
functions -c _old_fish_prompt fish_prompt
|
||||||
|
functions -e _old_fish_prompt
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
set -e VIRTUAL_ENV
|
||||||
|
set -e VIRTUAL_ENV_PROMPT
|
||||||
|
if test "$argv[1]" != "nondestructive"
|
||||||
|
# Self-destruct!
|
||||||
|
functions -e deactivate
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# Unset irrelevant variables.
|
||||||
|
deactivate nondestructive
|
||||||
|
|
||||||
|
set -gx VIRTUAL_ENV "/home/schreifuchs/dev/lous-thing"
|
||||||
|
|
||||||
|
set -gx _OLD_VIRTUAL_PATH $PATH
|
||||||
|
set -gx PATH "$VIRTUAL_ENV/bin" $PATH
|
||||||
|
|
||||||
|
# Unset PYTHONHOME if set.
|
||||||
|
if set -q PYTHONHOME
|
||||||
|
set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME
|
||||||
|
set -e PYTHONHOME
|
||||||
|
end
|
||||||
|
|
||||||
|
if test -z "$VIRTUAL_ENV_DISABLE_PROMPT"
|
||||||
|
# fish uses a function instead of an env var to generate the prompt.
|
||||||
|
|
||||||
|
# Save the current fish_prompt function as the function _old_fish_prompt.
|
||||||
|
functions -c fish_prompt _old_fish_prompt
|
||||||
|
|
||||||
|
# With the original prompt function renamed, we can override with our own.
|
||||||
|
function fish_prompt
|
||||||
|
# Save the return status of the last command.
|
||||||
|
set -l old_status $status
|
||||||
|
|
||||||
|
# Output the venv prompt; color taken from the blue of the Python logo.
|
||||||
|
printf "%s%s%s" (set_color 4B8BBE) "(lous-thing) " (set_color normal)
|
||||||
|
|
||||||
|
# Restore the return status of the previous command.
|
||||||
|
echo "exit $old_status" | .
|
||||||
|
# Output the original/"old" prompt.
|
||||||
|
_old_fish_prompt
|
||||||
|
end
|
||||||
|
|
||||||
|
set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV"
|
||||||
|
set -gx VIRTUAL_ENV_PROMPT "(lous-thing) "
|
||||||
|
end
|
8
bin/normalizer
Executable file
8
bin/normalizer
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#!/home/schreifuchs/dev/lous-thing/bin/python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
from charset_normalizer.cli import cli_detect
|
||||||
|
if __name__ == '__main__':
|
||||||
|
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||||
|
sys.exit(cli_detect())
|
8
bin/pip
Executable file
8
bin/pip
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#!/home/schreifuchs/dev/lous-thing/bin/python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
from pip._internal.cli.main import main
|
||||||
|
if __name__ == '__main__':
|
||||||
|
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||||
|
sys.exit(main())
|
8
bin/pip3
Executable file
8
bin/pip3
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#!/home/schreifuchs/dev/lous-thing/bin/python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
from pip._internal.cli.main import main
|
||||||
|
if __name__ == '__main__':
|
||||||
|
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||||
|
sys.exit(main())
|
8
bin/pip3.12
Executable file
8
bin/pip3.12
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#!/home/schreifuchs/dev/lous-thing/bin/python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
from pip._internal.cli.main import main
|
||||||
|
if __name__ == '__main__':
|
||||||
|
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||||
|
sys.exit(main())
|
1
bin/python
Symbolic link
1
bin/python
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
python3
|
1
bin/python3
Symbolic link
1
bin/python3
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
/usr/bin/python3
|
1
bin/python3.12
Symbolic link
1
bin/python3.12
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
python3
|
8
bin/tqdm
Executable file
8
bin/tqdm
Executable file
@ -0,0 +1,8 @@
|
|||||||
|
#!/home/schreifuchs/dev/lous-thing/bin/python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
import re
|
||||||
|
import sys
|
||||||
|
from tqdm.cli import main
|
||||||
|
if __name__ == '__main__':
|
||||||
|
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
|
||||||
|
sys.exit(main())
|
18
colors.py
Normal file
18
colors.py
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
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
Normal file
29
main.py
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
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)
|
5
pyvenv.cfg
Normal file
5
pyvenv.cfg
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
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
Normal file
21
user.py
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
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