Witam mam funkcję która oblicza ilość budowli i dodaje pieniądze oraz surowce zależnie od ilości budowli. Niestety po skończeniu liczenia wykonuje się inna funkcja niż zadeklarowana.
Oto kilka funkcji
Funkcja która liczy budowle:
def odbierz(self,login):
now = datetime.datetime.now()
teraz = now.strftime("%D")
f = open(login + "/wyplata.cfg","r")
ostatniaWyplata = f.readline()
f.close()
if teraz == ostatniaWyplata:
clear()
print("Już odebrałeś wypłatę :(")
CS.glowna(login)
else:
now = datetime.datetime.now()
#Miejsca pracy
f = open(login + "/praca.cfg","r")
praca = f.readline()
f.close()
f = open(login + "/kopalnie.cfg","r")
kopalnie = f.readline()
kopalnie = int(kopalnie)
f.close()
f = open(login + "/huty.cfg","r")
huty = f.readline()
huty = int(huty)
f.close()
f = open(login + "/tartaki.cfg","r")
tartaki = f.readline()
tartaki = int(tartaki)
f.close()
f = open(login + "wyplata.cfg","w+")
f.write(now.strftime("%D"))
f.close()
#Otwieranie money i surowcow
f = open(login + "/money.cfg","r")
money = f.readline()
money = int(money)
f.close()
f = open(login + "/surowce.cfg","r")
surowce = f.readline()
surowce = int(surowce)
f.close()
#Liczenie_Wyplaty
#Tartaki
while tartaki > 0:
money += 150
surowce += 200
tartaki -= 1
#Huty
while huty > 0:
money += 200
surowce += 250
huty -= 1
#Kopalnie
while kopalnie > 0:
money += 300
surowce += 500
kopalnie -= 1
CS.glowna(login)
Funkcja która się wykonuje:
def setup(self,login):
try:
f = open(login + "/imie.cfg","r")
CS.glowna(login)
except FileNotFoundError:
clear()
print("\nJak nazwiesz burmistrza?")
imie = input("--> ")
print("\nJak nazwiesz swoje miasto?")
miasto = input("--> ")
f = open(login + "/imie.cfg","w+")
f.write(imie)
f.close()
f = open(login + "/miasto.cfg","w+")
f.write(miasto)
f.close()
f = open(login + "/people.cfg","w+")
f.write("0")
f.close()
f = open(login + "/money.cfg","w+")
f.write("1000")
f.close()
f = open(login + "/praca.cfg","w+")
f.write("0")
f.close()
f = open(login + "/surowce.cfg","w+")
f.write("1000")
f.close()
f = open(login + "/produkcja.cfg","w+")
f.write("False")
f.close()
f = open(login + "/huty.cfg","w+")
f.write("0")
f.close()
f = open(login + "/kopalnie.cfg","w+")
f.write("0")
f.close()
f = open(login + "/tartaki.cfg","w+")
f.write("0")
f.close()
f = open(login + "/wyplata.cfg","w+")
f.write("")
f.close()
CS.glowna(login)
Funkcja która powinna się wykonywać:
def glowna(self,login):
clear()
f = open(login + "/imie.cfg","r")
imie = f.readline()
f.close()
f = open(login + "/miasto.cfg","r")
miasto = f.readline()
f.close()
f = open(login + "/money.cfg","r")
hajs = f.readline()
f.close()
f = open(login + "/people.cfg","r")
mieszkancy = f.readline()
f.close()
f = open(login + "/praca.cfg","r")
praca = f.readline()
f.close()
f = open(login + "/surowce.cfg","r")
surowce = f.readline()
f.close()
f = open(login + "/produkcja.cfg","r")
produkcja = f.readline()
f.close()
f = open(login + "/kopalnie.cfg","r")
kopalnie = f.readline()
f.close()
f = open(login + "/huty.cfg","r")
huty = f.readline()
f.close()
f = open(login + "/tartaki.cfg","r")
tartaki = f.readline()
f.close()
print("\n------------------------------------------------------------------------------------------")
print("| Miasto: " + miasto + " | Burmistrz: " + imie + " | Budżet " + hajs + "$ |")
print("| Mieszkańcy: " + mieszkancy + " | Pracownicy: " + praca + " | Surowce: " + surowce + " |")
print("------------------------------------------------------------------------------------------")
print("\n\n Wpisz 'odbierz' aby odebrać surowce i pieniądze \n\n")
print("------------------------------------------------------------------------------------------")
print("Wpisz 'dom' aby kupić dom za 200$")
print("Wpisz 'praca' aby kupić miejsce pracy za 300$")
print("Wpisz 'surowce' aby kupić surowce za 500$")
print("------------------------------------------------------------------------------------------")
if produkcja == "False":
print("Wpisz 'produkcja' aby zacząć produkować swoje materiały")
print("------------------------------------------------------------------------------------------")
if produkcja == "True":
print("")
print("")
print("------------------------------------------------------------------------------------------")
print("Wpisz 'huta' aby kupić hutę za 5000$ (Przychody: Pieniądze - 300$ i Surowce - 500)")
print("Wpisz 'kopalnia' aby kupić kopalnie za 3000$ (Przychody: Pieniądze - 200$ i Surowce - 250)")
print("Wpisz 'tartak' aby kupić tartak za 2000$ (Przychody: Pieniądze - 150$ i Surowce - 200)")
print("--------------------------------------------------------------")
print("Twoje kopalnie: " + kopalnie)
print("Twoje huty: " + huty)
print("Twoje tartaki: " + tartaki)
print("------------------------------------------------------------------------------------------")
wybor = input("--> ")
#--------------------------------------------------#
if wybor == "dom":
CS.dom(login)
elif wybor == "praca":
CS.praca(login)
elif wybor == "surowce":
CS.surowce(login)
elif wybor == "produkcja":
CS.setProdukcja(login,mieszkancy,surowce,hajs)
#--------------------------------------------------#
elif wybor == "kopalnia":
PD.kopalnia(login)
elif wybor == "huta":
PD.huta(login)
elif wybor == "tartak":
PD.tartak(login)
#--------------------- Komendy --------------------#
elif wybor == "money":
f = open(login + "/money.cfg","r")
money = f.readline()
f.close()
money = int(money) + 10000
f = open(login + "/money.cfg","w+")
f.write(str(money))
f.close()
CS.glowna(login)
elif wybor == "source":
f = open(login + "/surowce.cfg","r")
source = f.readline()
f.close()
source = int(source) + 10000
f = open(login + "/surowce.cfg","w+")
f.write(str(source))
f.close()
CS.glowna(login)
elif wybor == "people":
f = open(login + "/people.cfg","r")
people = f.readline()
f.close()
people = int(people) + 10000
f = open(login + "/people.cfg","w+")
f.write(str(people))
f.close()
CS.glowna(login)
#----------------------------------------------#
elif wybor == "odbierz":
CS.odbierz(login)
else:
clear()
print("Nie ma takiej opcji :(")
time.sleep(1)
CS.glowna(login)
Dlaczego tak się dzieje? I co to powoduje? Jeżeli macie pomysł jakby ulepszyć funkcję liczenia budowli? Z góry dziękuję!