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.