Seite 1 von 1

Kleines Minispiel

Verfasst: Montag 3. Dezember 2012, 21:28
von Dexter1997
Dieses Programm stellt ein kleines Spiel dar, indem man rechnen kann. Man kann sich Goldmuenzen erwirtschaften durch Rechnen und Zahlenraten.
Das ist mein aller erstes, von mir geschriebenes Programm.
Es wurde in Python 2.6.1 geschrieben.
Falls ihr Verbesserungsvorschläge zur Komprimierung des Codes habt oder ähnliches, lasst es mich wissen!

Code: Alles auswählen

import random

rechnen = "rechnen"
zahlenraten = "zahlenraten"
ja = "ja"
gold = 0


spiel = raw_input ("Moechtest du ein neues Spiel beginnen? Tippe ja.")
while spiel == ja:
    abfrage = raw_input ("Moechtest du rechnen? Tippe rechnen. Zahlenraten? Tippe zahlenraten.")
    if abfrage == rechnen:
        aufgaben = 0
        while aufgaben != 10:
            aufgaben = aufgaben + 1
            zahl_a = random.randint (10, 30)
            zahl_b = random.randint (10, 30)
            zahl_c = zahl_a + zahl_b
            erwartetes_ergebnis = int (raw_input (str (zahl_a) + "+" + str (zahl_b) + "=") )
            if erwartetes_ergebnis == zahl_c:
                gold = gold + random.randint (80, 120)
            elif erwartetes_ergebnis != zahl_c:
                gold = gold - 100
        if aufgaben == 10:
            print "Du hast", gold, "Goldmuenzen erwirtschaftet."
            aufgaben = aufgaben - 10
    if abfrage == zahlenraten:
        print "Du musst eine Zahl zwischen 1 und 99 erraten und hast 6 Versuche."
        einsatz = int (raw_input ("Wie hoch ist dein Einsatz?") )
        if einsatz <= gold and gold > 0:
            geheimzahl = random.randint (1, 99)
            raten = 0
            versuche = 0
            gold = gold - einsatz

            while versuche != 6 and raten != geheimzahl:
                raten = int (raw_input ("Was raetst du?") )
                versuche = versuche + 1
                if geheimzahl < raten:
                    print "Die gesuchte Zahl ist kleiner!"
                elif geheimzahl > raten:
                    print "Die gesuchte Zahl ist groesser!"
            if raten == geheimzahl:
                print "Du hast die Zahl erraten!"
                gold = gold + einsatz * 2
                print "Du hast jetzt", gold, "Goldmuenzen."
                
            else:
                print "Alle Versuche verbraucht! Mehr Glueck beim naechsten Mal!"
                print "Du hast jetzt", gold, "Goldmuenzen."
        else:
            print "Entweder war der angegebene Wetteinsatz zu gering oder du hast nicht genug Geld!"


Re: Kleines Minispiel

Verfasst: Montag 3. Dezember 2012, 21:43
von jbs
Die Abfrage am Anfang macht keinen Sinn. Außerdem kannst du an der Stelle explizit auf den String "ja" vergleichen.

Code: Alles auswählen

if abfrage == rechnen:
    ...
if abfrage == zahlenraten:
    ...
An dieser Stelle willst du eigentlich ein `elif` verwenden.

Deine while ``aufgaben != 10`` implementieren eine klassische for-Schleife. Dafür gibt es in Python das Idiom ``for i in range(10)`` Im Anschluss vergleichst du aufgaben auf 10, was eigentlich immer der Fall sein sollte. Diese Abfrage ist also nutzlos. Du kannst entweder else an dieser Stelle verwenden, oder es wie gesagt weglassen, da es ja in jedem Fall ausgeführt werden soll.

Code: Alles auswählen

if einsatz <= gold and gold > 0:
#besser
if 0 < einsatz <= gold:
Generell solltest du auf das Setzen der Klammern achten (PEP 8).


Als nächste Übung könntest du dein Programm in verschiedene Funktionen auslagern.

Re: Kleines Minispiel

Verfasst: Montag 3. Dezember 2012, 22:07
von Dexter1997
Danke für die Verbesserungsvorschläge, ich werde sie umsetzen. Die Idee mit den Funktionen werde ich auch als nächstes einbauen, ich steh kurz davor Funktionen zu lernen. im moment weiss ich nicht was funktionen sind :D vielleicht lassen die sich mit den geplanten erweiterungen kombinieren: auswahl der anzahl der aufgaben und alle 4 rechenarten. aber jetzt geh ich ersma pennen :D

Re: Kleines Minispiel

Verfasst: Montag 3. Dezember 2012, 22:12
von jbs
Löblich, so früh ins Bett zu gehen. Achja, wie die Zeit vergeht.

Wie kommt es eigentlich, dass so viele (junge) Schüler hier unterwegs sind?

Re: Kleines Minispiel

Verfasst: Donnerstag 6. Dezember 2012, 08:58
von mutetella
jbs hat geschrieben:Wie kommt es eigentlich, dass so viele (junge) Schüler hier unterwegs sind?
Weil wir älter werden? Meine Frau ist auch regelmäßig darüber erstaunt, wie früh man inzwischen schon den Führerschein haben kann, waren die Kinder hinter dem Steuer doch noch kürzlich bei ihr in der Kindergartengruppe... :mrgreen:

Re: Kleines Minispiel

Verfasst: Dienstag 22. Januar 2013, 11:27
von Timtlio
mutetella hat geschrieben:
jbs hat geschrieben:Wie kommt es eigentlich, dass so viele (junge) Schüler hier unterwegs sind?
Weil wir älter werden? Meine Frau ist auch regelmäßig darüber erstaunt, wie früh man inzwischen schon den Führerschein haben kann, waren die Kinder hinter dem Steuer doch noch kürzlich bei ihr in der Kindergartengruppe... :mrgreen:
So geht es wohl den meisten! Wie die Jahre verfliegen! Ich gehe eine xxxxx Livewette ein, dass man je älter man wird, einem die Zeit noch schneller vergeht!
Um mal on topic zu sein, danke für die gute Aufschlüsselung. Ich hab das mit Interesse gelesen und werde mich da auch mal dran setzen was ähnliches zu programmieren. Danke.

Re: Kleines Minispiel

Verfasst: Dienstag 22. Januar 2013, 11:44
von EyDu
Timtlio hat geschrieben:So geht es wohl den meisten! Wie die Jahre verfliegen! Ich gehe eine mybet Livewette ein, dass man je älter man wird, einem die Zeit noch schneller vergeht!
Das wurde bereits nachgewiesen.