16-is-dead/clean_input.py

74 lines
2.1 KiB
Python

"""This module handles most user inputs."""
__author__ = ""
__credits__ = ""
__email__ = ""
import sys
import game
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---------------------")
game.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---------------------")
game.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.")