Ratespiel mit Python porgrammieren?

4 Antworten

from random import randint



zufallsZahl = randint(0,5000)
userZahl = -1
versuche = 0
nichtZuVieleVersuche = True
while userZahl != zufallsZahl:
    while True:
        try:
            userZahl = int(input('Zahl: '))
            if(userZahl < 0 or userZahl > 5000):
                print('Bitte geben Sie nur Zahlen von 0 bis 5000 ein.')
            else:
                break
        except ValueError:
            print('Bitte geben Sie nur positive Ganzzahlen ein!')
    if userZahl > zufallsZahl:
        print('Die Zahl ist zu groß.')
    elif userZahl < zufallsZahl:
        print('Die Zahl ist zu klein')
    versuche += 1
    if versuche == 10:
        print('Zu viele versuche')
        nichtZuVieleVersuche = False
        break
if nichtZuVieleVersuche:
    print('Sie haben die Zahl '+str(zufallsZahl)+' nach '+str(versuche)' Versuchen gefunden.')

else:
    print('Sie haben die Zahl nach 10 Versuchen nicht erraten! Schämen Sie sich!!')
Woher ich das weiß:Studium / Ausbildung – Informatikstudent

eragent  23.11.2021, 10:01

im webtigerjython.ethz.ch-Python-Interpreter können keine f-Strings verwendet werden

1

Hallo,

Ist ein in der Informatik bekanntes Verfahren, gerne auch "Löwe in der Wüste" genannt

Schau mal unter binäres Suchverfahren nach. Man kann einen Wert aus einer sortierten Zahlenmenge in wenigen Versuchen herausfinden, selbst wenn es sich um Millionen handelt indem man immer wieder die Zahlenmenge in der Suchrichtung halbiert.

lg

Harry

Was du brauchst ist folgendes.

Eine Zufallszahl. In Java gibt es da Math.random() in Python müsste es was ähnliches geben.

Eine Schleife die mit einem Boolean Wert prüft ob der Benutzer die Zahl erraten hat.

In der Schleife eine Abfrage die prüft ob die vom Benutzer eingegebene Zahl größer oder kleiner als die Zufallszahl ist.

Eigentlich kein Hexenwerk.

from random import randrange
print("Zahlen raten")
ziel = randrange(5000)

for i in range(1,11):
  eingabe = int(input(f"{i}. Versuch: "))
  if (eingabe == ziel):
    print("Gewonnen!")
    break
  print("gesuchte Zahl ist größer") if ziel > eingabe else print("gesuchte Zahl ist kleiner")