Ich schreibe ein kleines Spiel in Python, in dem bestimmte Ereignisse passieren und Variablen beeinflussen, die in bestimmten Parametern bleiben müssen. Ich habe die Hauptdatei und dann eine andere Datei, in der alle Ereignisse enthalten sind. Einige der Werte werden in der Funktion verändert dann die Gesamtwerte in Haupt ändern soll (Sorry, wenn das tut Sinn machen)Variablen ändern sich nicht, nachdem sie eine Funktion durchlaufen haben
Hier ist der Teil in Haupt:
while (army > -100 and army < 100 and people > -100 and people < 100 and church > -100 and church < 100 and affairs > -100 and money < 100 and money > -100):
os.system('clear')
#Top Bar. Should Stay throughout game.
print("[-]==[King: " + king + "]==[Years in power:" + str(years) +"]==[Army: " + str(army) + "]==[People: " + str(people) + "]==[Church: " + str(church) + "]==[Foreign Affairs: " + str(affairs) + "]==[Economy: " + str(money) +"]==[-]")
print(people)
event1(army, people, church, affairs, money, years)
, die bis einer der Parameter-Schleifen fällt unter 0 dann gibt es Verlustzustände
Im Moment gibt es nur ein Ereignis, und es ist nicht ganz fertig, aber ich brauche nur eine Sache, um zumindest eine Änderung der Werte zu sehen.
Hier, dass:
def event1(army, people, church, affairs, money, years):
#Feilds are Flooding
print("")
print("Sire! The Feilds in the eastern baronies are flooding! What should we do?")
print("")
print("Choices:")
print("1: The rain will pass, do nothing. (~Money, People)")
print("2: Have the Royal Builders build flood protection! (~Money, People)")
print("")
c=input("Your choice sire: ")
while True:
if c > 2:
print("")
print("Please chose a valid option")
print("Your choice sire: ")
continue
if c == 1:
time.sleep(2)
print("")
print("You do nothing, your people starve from flooded feilds (-People, +Money)")
money = money+20
people = people-20
years = years+1
raw_input("Press Enter to go to the next year")
return money
return years
return people
break
Nachdem die Veranstaltung die Werte Menschen läuft, Geld und Jahre werden alle ändern sollte, aber wenn es Schleifen, ändert sich nichts.
Jede Hilfe wird geschätzt! Vielen Dank!
müssen Sie Ihre zurückgegebene Anweisung zurück zuweisen. Und Sie können nicht mehr als einmal zurückkehren. –
Festhalten? Sie definieren eine Folge von return-Anweisungen? Ihr Code wird bei der ersten angehalten. –
Versuchen Sie 'Rückkehr Geld, Jahre, Leute' – thebjorn