Aug-19-2024, 03:18 PM
i have a working little number guessing game but there is one long repetitiv section that i dont know how to shorten (the section is beneth the line "if durchschnitt2"(line 118) (the hole code is in german if thats a problen i will translate it))
the section is to calculate the average of how many trys it took you to find the number.
import random
werte = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
durchschnitt2 = False
def deutsch():
runig = True
while runig:
while True:
while True:
try:
runden = int(input("wie viele runden wilst du speilen?:"))
except ValueError:
print ("ungültiger wert. versuche es noch einmal")
print ("----------------------------------")
else:
break
if runden > 15:
print ("maximal 15 runden")
else:
break
for runde in range (runden):
runde = runde + 1
print ("----------------------------------")
print (f"runde {runde}")
while True:
while True:
while True:
try:
low = int(input("was soll das minimum sein?:"))
except ValueError:
print ("ungültiger wert. versuche es noch einmal")
print ("----------------------------------")
else:
break
if low < -500000:
print ("minimal -500,000")
else:
break
print ("----------------------------------")
while True:
while True:
try:
high = int(input("was soll das maximum sein?:"))
except ValueError:
print ("ungültiger wert. versuche es noch einmal")
print ("----------------------------------")
else:
break
if high > 500000:
print ("maximal 500,000")
else:
break
if low > high:
print ("----------------------------------")
print("das minimum kann nicht mehr als das maximum sein")
print ("----------------------------------")
else:
break
print ("----------------------------------")
number = random.randint(low,high)
if not durchschnitt2:
guesses = 0
while True:
while True:
try:
guessesnuber = int(input("wie viele versuch wilst du haben?:"))
except ValueError:
print ("ungültiger wert. versuche es noch einmal")
print ("----------------------------------")
else:
break
if guessesnuber > 100:
print("maximal 100 versuche")
else:
break
print ("----------------------------------")
print (f"du hast {guessesnuber} versuche")
else:
guesses = 0
guessesnuber = 9999999999999999999999999999
print ("----------------------------------")
print (f"du hast {guessesnuber} versuche")
while True:
while True:
try:
guess = int(input(f"nummer zwischen ({low} - {high}):"))
except ValueError:
print ("ungültiger wert. versuche es noch einmal")
print ("----------------------------------")
else:
break
guesses = guesses+1
if guess > high:
print (f"das ist mehr als {high}")
elif guess < low:
print(f"das ist weniger als {low}")
elif guess > number:
print (f"{guess} ist zu viel")
elif guess < number:
print (f"{guess} ist zu wenig")
else:
print (f"{guess} ist richtig!")
break
if guesses == guessesnuber:
print (f"du hast zu viele versuche gebraucht")
break
else:
print (f"du hast noch {guessesnuber-guesses} versuche")
if guess < number and not guess < low:
low = guess
elif guess > number and not guess > high:
high = guess
print ("----------------------------------")
if guess == number:
print (f"du hast {guesses} versuche gebraucht")
if durchschnitt2:
if runde == 1:
werte[0] = guesses
durchschnitt1 = werte[0]
elif runde == 2:
werte[1] = guesses
durchschnitt1 = durchschnitt1+werte[1]
elif runde == 3:
werte[2] = guesses
durchschnitt1 = durchschnitt1+werte[2]
elif runde == 4:
werte[3] = guesses
durchschnitt1 = durchschnitt1+werte[3]
elif runde == 5:
werte[4] = guesses
durchschnitt1 = durchschnitt1+werte[4]
elif runde == 6:
werte[5] = guesses
durchschnitt1 = durchschnitt1+werte[5]
elif runde == 7:
werte[6] = guesses
durchschnitt1 = durchschnitt1+werte[6]
elif runde == 8:
werte[7] = guesses
durchschnitt1 = durchschnitt1+werte[7]
elif runde == 9:
werte[8] = guesses
durchschnitt1 = durchschnitt1+werte[8]
elif runde == 10:
werte[9] = guesses
durchschnitt1 = durchschnitt1+werte[9]
elif runde == 11:
werte[10] = guesses
durchschnitt1 = durchschnitt1+werte[10]
elif runde == 12:
werte[11] = guesses
durchschnitt1 = durchschnitt1+werte[11]
elif runde == 13:
werte[12] = guesses
durchschnitt1 = durchschnitt1+werte[12]
elif runde == 14:
werte[13] = guesses
durchschnitt1 = durchschnitt1+werte[13]
elif runde == 15:
werte[14] = guesses
durchschnitt1 = durchschnitt1+werte[14]
elif guesses == guessesnuber:
print (f"du hast es nicht eraten die numer war {number}")
if durchschnitt2:
durchschnitt = durchschnitt1/runden
print (f"dein durchschnitt ist {durchschnitt}")
if not input ("nochmal spielen? (ja/nein):").lower() == "ja":
runig = False
else:
print ("----------------------------------")(sorry for the long code.)the section is to calculate the average of how many trys it took you to find the number.
