Ein User in einem Discord-Chanel meinte zu mir man könne ihn locker unter die Hälfte der Zeilen Code schreiben aber ich habe absolut keine Ahnung wie ich da jetzt noch was weglassen könnte... Evtl fällt euch ja noch was ein.

Ps: Es geht darum, dass der Spieler eine Zahl erraten muss, welche vom Computer vorgegeben wird.
Code: Alles auswählen
import random
def error_message():
print("Keine gültige Eingabe! Bitte versuche es erneut\n")
def add_player():
a = input("Bitte Namen des Spielers eingeben:\n")
return a
class Variables:
def __init__(self):
self.players = []
self.extra_player_count = 0
self.all_numbers = []
self.counter = 0
self.value_player = self.extra_player_count + 2
self.value_numbers = self.value_player * 10
self.total_trys = self.value_player * 3
self.run = True
self.zahl = 0
self.value_numbers = self.value_player * 10
self.pin = random.randint(1, self.value_numbers)
def false(self):
self.run = False
return self.run
user_options = Variables()
def player_options():
while True:
print("*** Willkommen zum Zahlenrätsel-Spiel! ***\nFür jeden Spieler werden die Zahlen um 10 erweitert.\n")
print("Spieler 1: "), user_options.players.append(add_player())
print("Spieler 2: "), user_options.players.append(add_player())
print(user_options.players)
add_more_players = input("Möchten Sie noch mehr Spieler hinzufügen?\nY/N:\n")
try:
add_more_players = str(add_more_players)
except ValueError:
error_message()
if add_more_players == "y" or add_more_players == "Y":
while True:
user_options.extra_player_count = input("Wie viele Spieler möchtest du hinzufügen?(max. 2)\n")
try:
user_options.extra_player_count = int(user_options.extra_player_count)
except ValueError:
error_message()
continue
if user_options.extra_player_count == 1 or user_options.extra_player_count == 2:
print("Spieler 3: "), user_options.players.append(add_player())
if user_options.extra_player_count == 2:
print("Spieler 4: "), user_options.players.append(add_player())
elif user_options.extra_player_count >= 3:
error_message()
elif add_more_players == "n" or add_more_players == "N":
break
else:
error_message()
def int_game():
user_options.extra_player_count = len(user_options.players)
print(user_options.pin)
print(len(user_options.players))
if user_options.counter == user_options.total_trys - len(user_options.players):
print("Achtung! Letzter Versuch für alle Spieler.")
elif user_options.counter == user_options.total_trys:
print("Keine Versuche mehr!")
user_options.false()
while user_options.run:
user_options.zahl = input("Spieler " + user_options.players[0] + " Eingabe:\n")
try:
user_options.zahl = int(user_options.zahl)
except ValueError:
error_message()
continue
if user_options.zahl in user_options.all_numbers:
error_message()
if user_options.zahl == user_options.pin:
print("Glückwunsch, Spieler " + user_options.players[0] + " hat gewonnen!")
user_options.false()
elif user_options.zahl < user_options.pin:
print("zu klein")
elif user_options.zahl > user_options.pin:
print("zu groß")
else:
error_message()
user_options.all_numbers.append(user_options.zahl)
user_options.players.append(user_options.players.pop(0))
user_options.counter += 1
def main():
player_options()
while user_options.run:
int_game()
main()