Ratespiel mit Python porgrammieren?
Guten Tag, ich frage mich wie diese Aufgabe geht. Die website ist webtigerjython.ethz.ch
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!!')
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")
im webtigerjython.ethz.ch-Python-Interpreter können keine f-Strings verwendet werden