Python :: Aufgabe #15 :: Lösung #7
7 Lösungen

#15
Zahlen Raten - Fortgeschrittener
Fortgeschrittener - Python
von zayc_
- 28.12.2012 um 14:00 Uhr
Das zu programmierende Programm soll eine Zufallszahl (integer, der User soll nach dem Bereich gefragt werden) generieren.
Der User soll diese erraten. Nach jedem Versuch soll der User darüber informiert werden, der wie vielte Versuch es war, ob er richtig oder falsch liegt, und wenn er falsch liegt ob die gesuchte Zahl grösser oder kleiner als die vom User eingegebene ist.
Zusatz für Fortgeschrittene:
Bei Falscheingaben (Buchstaben, Sonderzeichen, etz.) soll der User darüber informiert werden.
Bei den Versuchen >10 soll eine führende Null mit ausgegeben werden (also statt 1,2,3 soll 01, 02 ,03 ausgegeben werden.)
Bei der wiederholten Eingabe einer Zahl soll der User darüber informiert werden.
Der User soll den Bereich in dem die Zufallszahl liegen soll, selbst definieren.
Der User soll informiert werden, wenn sein Versuch ausserhalb des definierten Bereichs liegt.
Beispiel einer Konsolenausgabe:
Der User soll diese erraten. Nach jedem Versuch soll der User darüber informiert werden, der wie vielte Versuch es war, ob er richtig oder falsch liegt, und wenn er falsch liegt ob die gesuchte Zahl grösser oder kleiner als die vom User eingegebene ist.
Zusatz für Fortgeschrittene:
Bei Falscheingaben (Buchstaben, Sonderzeichen, etz.) soll der User darüber informiert werden.
Bei den Versuchen >10 soll eine führende Null mit ausgegeben werden (also statt 1,2,3 soll 01, 02 ,03 ausgegeben werden.)
Bei der wiederholten Eingabe einer Zahl soll der User darüber informiert werden.
Der User soll den Bereich in dem die Zufallszahl liegen soll, selbst definieren.
Der User soll informiert werden, wenn sein Versuch ausserhalb des definierten Bereichs liegt.
Beispiel einer Konsolenausgabe:
Konsolenausgabe:
Bitte die Untergränze wählen: 20
Bitte die Obergränze wählen: 60
Bitte erraten sie die gesuchte Zahl, sie befindet sich zwischen 20 und 60.
Ihr 01. Versuch: 5
Die eingegebene Zahl befindet sich ausserhalb des von ihnen definierten Bereich.
Ihr 02. Versuch: halloooo
Bitte nur Z A H L E N eingeben.
Ihr 03. Versuch: 55
Die gesuchte Zahl ist kleiner.
Ihr 04. Versuch: 25
Die gesuchte Zahl ist grösser.
Ihr 05. Versuch: 55
Mit dieser Zahl haben Sie es schon einmal versucht!
Ihr 06. Versuch: 40
Glückwunsch die von Ihnen eingegebene Zahl ( 40 ) stimmt mit der gesuchten Zahl überein.
#7

von PythonLui (400 Punkte)
- 08.04.2021 um 14:36 Uhr

import random def bereich_definieren(): """ Liest den Bereich zum spielen ein Überprüft die Eingabe :return: tuple(Untergrenze, Obergrenze) """ while True: try: untergrenze = int(input("Bitte die Untergrenze wählen: ")) obergrenze = int(input("Bitte die Obergrenze wählen: ")) return untergrenze, obergrenze except ValueError: print("Bitte nur Z A H L E N eingeben!!!\n") def eingabe_versuch(anzahl_versuche): """ Liest den Versuch ein mit Überprüfung der Eingabe :param: int: anzahl_versuche :return: int: Versuch-Zahl """ while True: try: if anzahl_versuche < 10: versuch = int(input(f"Ihr 0{anzahl_versuche}. Versuch: ")) return versuch else: versuch = int(input(f"Ihr {anzahl_versuche}. Versuch: ")) return versuch except ValueError: print("Bitte nur Z A H L E N eingeben.\n") def spielen(user_bereich, zufall): """ Spieldurchlauf :param user_bereich: tuple(int, int) :param zufall: int :return: Program ende """ versuche = 0 benutze_zahlen = [] # Spielen solange bis erraten while True: # Variablen versuche += 1 zahl_raten = eingabe_versuch(versuche) # Überprüfen ob die Zahl schon mal benutzt wurde if zahl_raten in benutze_zahlen: print("Mit dieser Zahl haben Sie es schon einmal Versucht!\n") else: benutze_zahlen.append(zahl_raten) # Prüfen welcher Hinweis oder Spiel geschafft if benutze_zahlen[-1] < user_bereich[0] or user_bereich[1] < benutze_zahlen[-1]: print("Die eingegebene Zahl befindet sich außerhalb des von Ihnen definierten Bereich.\n") elif benutze_zahlen[-1] < zufall: print("Die gesuchte Zahl ist größer.\n") elif benutze_zahlen[-1] > zufall: print("Die gesuchte Zahl ist kleiner.\n") elif benutze_zahlen[-1] == zufall: print(f"Glückwunsch die von Ihnen eingegebene Zahl ( {benutze_zahlen[-1]} ) " f"stimmt mit der gesuchten Zahl überein.") break def main(): bereich = bereich_definieren() print(f"\nBitte erraten Sie die gesuchte Zahl, sie befindet sich zwischen {bereich[0]} und {bereich[1]}.\n") # Zufallszahl generieren im Ausgewählten Bereich zufall_zahl = random.randint(bereich[0], bereich[1]) spielen(bereich, zufall_zahl) if __name__ == '__main__': main()
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1