Zahlen Rate Spiel

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
kRew
User
Beiträge: 9
Registriert: Mittwoch 17. November 2010, 18:40

So, ich bin zur finalen Lösung gekommen.

Code: Alles auswählen

import random
b=random.randint(1, 9)
gz = int(b)
print ("Hallo und herzlich Willkommen bei kRew's Zahlenspiel!")
print ("In dem Spiel geht es darum, eine zufällig generierte Zahl zu erraten")

def main():
    tipp=input("Geben sie eine Zahl zwischen 1-9 ein :")
    t = int(tipp)

    if t == gz:
        print ("Sie haben die richtige Zahl gefunden")
        input ("Drücken sie <any key> um das Programm zu schließen")
    elif t < 1:
        print("Die von ihnen eigebene Zahl ist unter 1")
        main()
    elif t < gz:
        print ("Ihre eingegebene Zahl ist zu klein")
        print ("Versuchen sie es nochmal")
        main()
    elif t > 9:
        print ("Die von ihnen eigebene Zahl ist über 9")
        print ("Versuchen sie es nochmal")
        main()
    elif t > gz:
        print ("Ihre eingegebene Zahl ist zu groß")
        print ("Versuchen sie es nochmal")
        main()
main()  
funktioniert alles wunderbar :)
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Hui... ungewollte Rekursion :twisted:

Btw: Es gibt spezielle Python-Code-Tags!

Wozu brauchst Du hier die main()-Funktion, wo Du doch noch Code auf Modulebene hast?

Dies hier...

Code: Alles auswählen

b=random.randint(1, 9)
gz = int(b)
ist wieder total überflüssig!

Code: Alles auswählen

In [16]: value = random.randint(1, 9)

In [17]: type(value)
Out[17]: <type 'int'>
Das Leerzeichen zwischen einer Funktion und der öffnenden Klammer solltest Du doch weglassen (bei print ist es immer noch so)

Code: Alles auswählen

    tipp=input("Geben sie eine Zahl zwischen 1-9 ein :")
    t = int(tipp)
"tipp" ist ein guter Name, "t" weniger. Wieso nicht gleich so:

Code: Alles auswählen

    tipp = int(input("Geben sie eine Zahl zwischen 1-9 ein :"))
(man beachte hier die Leerzeichen um den Zuweisungsoperator "="; liest sich schöner)

Du willst eine while-Schleife anstelle von main() (bzw. innerhalb der main-Funktion) benutzen.

Code: Alles auswählen

while True:
    # hier die Eingabe des Tipps und die Vergleiche
    # falls man richtig geraten hat:
    if irgendwas:
        break
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Antworten