내가 만든 게임을 마치면서 파일로 저장하는 저장 버튼을 만들었습니다. 게임이 열리면 파일을 읽고 해당 행을 변수로 저장합니다. 나는 그렇게하지만 정수가되어야한다는 것을 알기 때문에 int()
을 사용한다. 그러나 변수가 "0"
대신 "0\n"
이기 때문에 작동하지 않습니다. 나는 다른 많은 질문을 체크했지만, 같은 질문을하지 않거나 대답하지 않습니다.끝에 n을 쓰지 않고 읽는 방법은 무엇입니까? (파이썬)
궁금한데 \n
없이 끝까지 readlines()
하는 방법이 있습니까? 또는 변수를 자동으로 백 스페이스 할 수있는 방법이 있습니까? 여기 내 코드는 다음과 같습니다.
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()
답변이 없으면 나는 당신의 의견을 말하고 답합니다.