Das Programm stellt eine Aufgabe. Wenn diese Aufgabe richtig beantwortet wird, werden die Werte des Charackters verbessert (eigentlich).
Doch der Code in der Spielschleife scheint nicht zu funktionieren. Der Computer verbessert die Werte nicht, gibt aber auch keine Fehlermeldung aus.
Könnt ihr mir sagen wo das Problem liegt?
Code: Alles auswählen
import random as r, time as t
Falsch_od_richtig = 0
class Spielmechanik:
def __init__(self):
# Charackterwerte
self.Level = 1
self.Score = 0
self.Rang = "Sonderschueler"
self.Erfahrung = 0
self.Geld = 0
# Vervesserungswerte
self.Geld_plus = 0.01
self.Score_plus = 0.1
self.Erfahrung_plus = 0.2
# Anderes
self.Forschungspunkt = 0
self.Erfahrung_benoetigt = 10
def __str__(self):
nachricht = "Level: " + str(self.Level) +"\nRang: " + str(self.Rang) + "\nScore: " + str(self.Score) + "\nGeld: " +\
str(self.Geld) + "\n"
return nachricht
def Aufgabe_richtig(self):
self.Score += self.Score_plus
self.Geld += self.Geld_plus
self.Score_plus += 0.01
self.Geld_plus += 0.01
Wert = r.randint (1, 25)
if Wert == 1:
self.Forschungspunkt += 1
print "Du hast einen Forschungspunkt erhalten!"
elif Wert == 2 or Wert == 3:
self.Erfahrung += self.Erfahrung_plus
elif Wert == 4:
self.Erfahrung += self.Erfahrung_plus * 2
def Aufgabe_falsch(self):
self.Score -= self.Score_plus
self.Geld -= self.Geld_plus
self.Erfahrung -= self.Erfahrung_plus
self.Score_plus -= 0.01
self.Geld_plus -= 0.01
def Aufgabe_stellen():
zahl1 = r.randint (5, 20)
zahl2 = r.randint (5, 20)
loesung = int(raw_input(str(zahl1) + " + " + str(zahl2) + " = "))
if loesung == zahl1 + zahl2:
return "richtig"
else:
return "falsch"
Spieler = Spielmechanik()
while True:
print "[1] Rechnen und Leveln"
print "[2] Charackter anzeigen\n"
Eingabe = int(raw_input("Was willst du tun?"))
print
if Eingabe == 1:
Anzahl_Aufgaben = r.randint(10, 25)
print "Du musst " + str(Anzahl_Aufgaben) + " Aufgaben loesen!"
for i in range(Anzahl_Aufgaben):
Falsch_od_richitg = Aufgabe_stellen()
if Falsch_od_richtig == "richtig":
Spieler.Aufgabe_richtig()
elif Falsch_od_richtig == "falsch":
Spieler.Aufgabe_falsch()
if Eingabe == 2:
print Spieler
t.sleep(3)
input()