def zahlenraten(): print("Du möchtest also, das wir eine Runde Zahlenraten spielen ...") print("Na schön ...") spieler_rät = ask_ok("Willst du raten (ja/nein)? ") standardzahlen = ask_ok("Spielen wir mit den Zahlen zwischen 1 und 1000 (ja/nein)? ") if not standardzahlen: minimum = 0 maximum = 0 while not minimum < maximum: print("Kleinste Zahl:", minimum) print("Größte Zahl:", maximum) print("So können wir natürlich nicht spielen.") minimum = get_int("Wie also lautet die kleinste von dir gewünschte Zahl? ") maximum = get_int("Und wie die größte Zahl? ") else: minimum = 1 maximum = 1000 print("Dann lass uns anfangen!") if spieler_rät: print("Viel Glück!") rate_meine_zahl(minimum, maximum) else: print("Wünsch mir Glück!") if randint(1, 5) == 1: print("... und wehe du pfuschst! Sowas bemerke ich!!!") rate_deine_zahl(minimum, maximum)
def rate_deine_zahl(minimum_zahl = 1, maximum_zahl = 1000): print("Also gut, dann errate ich deine Zahl!") gelöst = False while not gelöst: if minimum_zahl == maximum_zahl: print("Ich denke ich hab's! Es ist die ", minimum_zahl, "!", sep='', end='') geraten = minimum_zahl else: geraten = (minimum_zahl + maximum_zahl) // 2 print("Ist es die", geraten, end='') gelöst = ask_ok(" (Ja/Nein)? ") if not gelöst: if randint(1,3) == 1: print("Mist! ", end='') antwort = ask_ok("War meine Zahl kleiner oder größer als deine (kleiner/größer)?", positiv="kleiner", negativ="größer") if antwort == True and (geraten - 1) >= minimum_zahl: maximum_zahl = geraten - 1 elif antwort == False and (geraten +1) <= maximum_zahl: minimum_zahl = geraten + 1 else: print("Verarschen kann ich mich auch selber ... *grummel*") else: print("Echt? Die", geraten, "war's ? Perfekt!") else: if randint(1,4) == 1: print("Ich war gut, nicht wahr?")
def datensätze_eingeben(): """ Die Funktion enthält eine bedingte Schleife zur bequemen Eingabe mehrerer Datensätze """ weiter = True while weiter: datensatz_hinzufügen() weiter = ask_ok("Einen weiteren Datensatz hinzufügen (ja/nein)? ")
print("Du sollst einen Buchstaben, den du rätst eingeben, oder ...") print("die gesamte Lösung um aufzulösen und das Spiel zu gewinnen.") print("Du rätst: ", tip[0].upper()) rate_menge.add(tip[0].upper()) print("Deine bisher geratenen Buchstaben:") print(rate_menge) # Der Spieler hat alle Buchstaben erraten - aber nicht selber aufgelöst else: print(satz) print("Ohne es zu bemerken hast du alle Buchstaben ergänzt!") print("Das fühlt sich jetzt nicht wirklich wie ein Sieg an, oder?") return False # Automatischer Start, falls dies ein Skript ist if __name__ == '__main__': if stdin.isatty(): weiter = True if ask_ok("Wollen wir eine Runde spielen (ja/nein)"): intro() while weiter: satz, hinweis = datensatz_abrufen() spiele_satz(satz.strip(), hinweis.strip()) weiter = ask_ok("Noch eine Runde (ja/nein)? ") elif ask_ok("Willst du Datensätze zum Spiel hinzufügen (ja/nein)? "): while weiter: datensatz_hinzufügen() weiter = ask_ok("Einen weiteren Datensatz hinzufügen (ja/nein)? ")