Seite 1 von 1

Problem mit Rechenspiel

Verfasst: Donnerstag 28. November 2013, 19:35
von Dexter1997
Es handelt sich um mein unfertiges Rechenspiel, welches ich entwickel um meine Python-Kentnisse zu festigen.
Wenn man nun "Addition" auswählt und eine Aufgabe richtig lößt, so wird trotzdem "Falsch" auf der Konsole ausgegeben.
Es handelt sich offenbar um einen logischen Fehler, ich finde ihn nicht und wäre sehr dankbar wenn jemand den Fehler für mich findet!

Code: Alles auswählen

import random as r, time as t

Intelligenz = 0
Erfahrung = 0
Erfahrung_benoetigt = 20
Stufe = "Faules Kind"
Fortschritt = 0
Fortschritt_benoetigt = 20
Reichsmark = 0

Rechenmeister = 1
Goldschmiede = 1
Klares_Denken = 1

Zurueck1 = 1

def rechnen_einfach(zahlen, rechenzeichen ,loesung):
    Versuch = raw_input(str(zahlen[0]) + rechenzeichen + str(zahlen[1]) + " = ")
    if Versuch == loesung: Ueberpruefung = "ja"
    else: Ueberpruefung = "nein"
    return Ueberpruefung
    

while True:
    print "[1] Profil"
    print "[2] Rechnen "
    print "[3] Buecher "
    print "----------------------------------------"
    Aktion = raw_input("Aktion: ")
    print

    if Aktion == "1":
        print "Intelligenz  : " + str(Intelligenz) + "     Erfahrung   : " + str(Erfahrung) + "/" + str(Erfahrung_benoetigt)
        print "Stufe: " + str(Stufe) + "   Fortschritt : " + str(Fortschritt) + "/" + str(Fortschritt_benoetigt)
        print "Reichsmark   : " + str(Reichsmark)
        print
        t.sleep(3)

    if Aktion == "2":
        Rechnen = 0
        
        while Rechnen != Zurueck1:
            if Rechenmeister == 1: print "[1] Addition"
            if Rechenmeister == 2: print "[2] Subtraktion"
            if Rechenmeister == 3: print "[3] Multiplikation"
            print "----------------------------------------"
            Rechnen = raw_input("Verfahren: (Zurueck = " + str(Zurueck1) + ")")
            print

            if Rechnen == "1" and Rechenmeister == 1:
                Zahlen = [r.randint(3, 20), r.randint(3, 20)]
                Ja_Nein = rechnen_einfach(Zahlen, " + ", Zahlen[0] + Zahlen[1])
                if Ja_Nein == "ja": print "Richtig"
                else: print "Falsch"

Re: Problem mit Rechenspiel

Verfasst: Donnerstag 28. November 2013, 20:03
von Sirius3
@Dexter1997: da mußt Du wohl debuggen. Wie sieht die Bedingung aus, dass "Richtig" ausgegeben wird? Ist in jedem Schritt von der Eingabe der Versuche bis zur Ausgabe die Werte in den Variablen, die Du erwartest? Wo ist das nicht mehr der Fall und was statt dessen?

Re: Problem mit Rechenspiel

Verfasst: Donnerstag 28. November 2013, 20:26
von Dexter1997
Ich hab immer noch keine Ahnung und bin ziemlich ratlos. Was heißt eig. debuggen?
hast du selbst den fehler schon erkannt? ich seh ihn einfach nicht

Re: Problem mit Rechenspiel

Verfasst: Donnerstag 28. November 2013, 20:35
von Sirius3
es geht nicht ums sehen, sondern ums suchen. Fehler muß man eingrenzen, so lange bis man die Ursache gefunden hat. Das wichtigste am Programmierenlernen ist das Lernen, wie man Fehler findet. Das heißt, das Programm in so kleine Teile teilen, die man Überblicken kann und sicher sein kann, dass darin der Fehler nicht ist.

Re: Problem mit Rechenspiel

Verfasst: Donnerstag 28. November 2013, 21:10
von Dexter1997
So Problem gelöst, der vom benutzer erhaltende String wird jetzt automatisch in eine Zahl umgewandelt
danke für deine Hilfe!