74 lines
2.1 KiB
Python
74 lines
2.1 KiB
Python
"""This module handles most user inputs."""
|
|
|
|
__author__ = ""
|
|
__credits__ = ""
|
|
__email__ = ""
|
|
|
|
import sys
|
|
|
|
|
|
def io_str(message: str, options: list) -> str:
|
|
"""
|
|
This method checks if a user input fits the options.
|
|
It also handles 'r' for restarting and 'q' for quitting.
|
|
|
|
:param message: message needs to be a string that is printed for user instruction.
|
|
:param options: options is a list of viable inputs.
|
|
:return: Cleaned user input
|
|
"""
|
|
|
|
while True:
|
|
try:
|
|
i = str(input(message))
|
|
|
|
except (ValueError, NameError):
|
|
i = 0
|
|
print("Eingabe nicht gültig, bitte wiederhole deine Eingabe.")
|
|
|
|
if i in options:
|
|
return i
|
|
|
|
else:
|
|
if i == "q":
|
|
print(
|
|
"---------------------\nSpiel wird beendet...\n---------------------")
|
|
sys.exit()
|
|
elif i == "r":
|
|
print(
|
|
"---------------------\nSpiel wird neu gestartet...\n---------------------")
|
|
quartett.main()
|
|
else:
|
|
print('Noch nicht ganz richtig. Hast du deine Auswahl auch richtig geschrieben?')
|
|
|
|
|
|
def io_int(message: str) -> int:
|
|
"""
|
|
This method checks if a user input is an integer >1.
|
|
It also handles 'r' for restarting and 'q' for quitting.
|
|
|
|
:param message: message needs to be a string that is printed for user instruction
|
|
:return: Integer >1
|
|
"""
|
|
while True:
|
|
|
|
unfiltered_input = input(message)
|
|
|
|
if unfiltered_input == "q":
|
|
print("---------------------\nSpiel wird beendet...\n---------------------")
|
|
sys.exit()
|
|
elif unfiltered_input == "r":
|
|
print(
|
|
"---------------------\nSpiel wird neu gestartet...\n---------------------")
|
|
#quartett.main()
|
|
|
|
try:
|
|
i = int(unfiltered_input)
|
|
|
|
if i >= 1:
|
|
return i
|
|
else:
|
|
print('Bitte gib eine ganze Zahl größer als 0 ein. ')
|
|
|
|
except (ValueError, NameError):
|
|
print("Eingabe nicht gültig, bitte wiederhole deine Eingabe.")
|