【发布时间】:2018-05-21 06:28:42
【问题描述】:
在完成我制作的游戏时,我制作了一个保存按钮,用于保存到文件中。当游戏打开时,它将读取文件并将这些行保存为变量。我这样做了,但后来我看到它需要是一个整数,所以我使用int()。但是它不起作用,因为变量是"0\n"而不是"0"。我检查了许多其他问题,但他们没有提出或回答相同的问题。
所以我想知道,有没有办法readlines() 最后没有\n?或者有没有一种方法可以自动退格变量?这是我的代码:
import tkinter as tk
from PIL import Image, ImageTk
# --- functions ---
def eggvalue_change():
global eggvalue, eggvalueupgrade, money, eggz
if money > int(round(eggvalueupgrade)):
eggz -= eggvalueupgrade / eggvalue
eggvalue+=0.2
eggvalueupgrade += int(round(eggvalueupgrade + (eggvalueupgrade / 7)))
def moar_eggz():
global eggzps, chookz
chookz += 1
def saving():
savedfile.write(money)
savedfile.write(eggvalueupgrade)
savedfile.write(eggzps)
savedfile.write(chookz)
savedfile.write(eggvalue)
savedfile.write(eggz)
def main_loop():
global eggz, eggzps, money
eggzps = chookz / 100.0
money = eggz * eggvalue
try:
openbutton2.config( text="Egg Value: " + str(eggvalue) + " --> " + str(eggvalue+0.2) + " ($" + str(eggvalueupgrade) + ")", command=eggvalue_change)
label2.config(text="Money: $" + str(int(round(money))), font=("Terminal", 50), borderwidth=5, relief="ridge", bg="black", foreground="white",pady=10, padx=498)
if eggzps >= 10:
label1.config(text="| Chickens: " + str(chookz)+" | Eggs: " + str(int(round(eggz)))+" | Eggs Per Second: " + str(int(round(eggzps)))+" | Egg Value: $" + str(eggvalue) + " |", font=("Terminal", 20), borderwidth=4, relief="ridge", bg="black", foreground="red",pady=10, padx=498)
elif eggzps < 10:
label1.config(text="| Chickens: " + str(chookz)+" | Eggs: " + str(int(round(eggz)))+" | Eggs Per Second: " + str(eggzps)+" | Egg Value: $" + str(eggvalue)+ " |", font=("Terminal", 20), borderwidth=4, relief="ridge", bg="black", foreground="red",pady=10, padx=498)
if money < int(round(eggvalueupgrade)):
openbutton2.config(fg="gray")
elif money > int(round(eggvalueupgrade)):
openbutton2.config(fg="white")
except Exception as e:
print(e) # display exception to see problem
root.after(20, main_loop)
def update_eggz():
global eggz
try:
eggz += eggzps
except Exception as e:
print(e) # display exception to see problem
# repeat it after 1000ms
root.after(1000, update_eggz)
# --- main ---
root = tk.Tk()
root.title("Chicken Clicker")
savedfile = open("savedata\\mainsave.txt", "a+")
savedlines = savedfile.readlines()
print savedlines
if savedlines == []:
eggz = 0
eggvalue = 0.2
chookz = 0
eggzps = 0.0
eggvalueupgrade = 100
money = eggz * eggvalue
eggz = int(savedlines[0])
eggvalue = int(savedlines[1])
chookz = int(savedlines[2])
eggzps = int(savedlines[3])
eggvalueupgrade = int(savedlines[4])
money = int(savedlines[5])
savedfile.close()
# empty labels - `update_labels` will add text
label2 = tk.Label(root)
label1 = tk.Label(root)
label2.pack()
label1.pack()
chickencnv = Image.open("img\\1.png")
chicken = ImageTk.PhotoImage(chickencnv)
openbutton3 =tk.Button(root, bg="black", fg="white", font=("Terminal", 13), command=saving)
openbutton2= tk.Button(root, bg="black", fg="gray", font=("Terminal", 15))
openbutton1= tk.Button(root, image=chicken, width=500, height=500, command=moar_eggz, bg="black")
openbutton1.pack()
openbutton2.pack()
openbutton3.pack()
# run it first time at once
update_eggz()
main_loop()
root.mainloop()
如果没有答案,我很乐意你发表评论或回答。
【问题讨论】:
标签: python backspace readlines