Как добавить сохранение результата в клавитатурный тренажер?
def update_score(self, points):
self.score_label.config(text=f"Счёт: {points}")
def call_score(self, event):
global score
if self.text_entry.get() == easy_word:
score += 1
self.update_score(score)
self.text_entry.delete(0, 'end')
self.show_text()
def show_text(self):
global easy_word
easy_word = random.choice(easy)
self.text_entry.focus()
self.text_label.config(text=easy_word)
self.top_window1.bind('<Return>', self.call_score)
def start_timer(self):
self.start_game(TIME_INTERVAL)
self.show_text()
def exit_game(self):
global score
score = 0
self.top_window1.destroy()
def __init__(self):
self.top_window1 = Toplevel()
self.top_window1.title("Уровень Лёгкий")
self.top_window1.config(padx=100, pady=60, bg=BACKGROUND_COLOR)
self.start_button = Button(self.top_window1, text="START", font=('Courier', 12, 'bold'),
command=self.start_timer, bg=BUTTON_COLOR, fg=BUTTON_FOREGROUND)
self.start_button.grid(row=1, column=2, pady=10)
self.timer_label = Label(self.top_window1, text="", font=('Courier', 15, 'bold'), bg=BACKGROUND_COLOR,
fg=FOREGROUND_COLOR)
self.timer_label.grid(row=2, column=2, pady=5)
self.text_label = Label(self.top_window1, text="", font=('Courier', 16), bg=BACKGROUND_COLOR,
fg=FOREGROUND_COLOR)
self.text_label.grid(row=3, column=2, pady=5)
self.text_entry = Entry(self.top_window1, width=60)
self.text_entry.grid(row=4, column=2, pady=5)
self.score_label = Label(self.top_window1, text="", font=('Courier', 10, 'bold'), bg=BACKGROUND_COLOR,
fg=FOREGROUND_COLOR)
self.score_label.grid(row=5, column=2, pady=5)
self.last_score = Label(self.top_window1, text="", font=('Courier', 13, 'bold'), bg=BACKGROUND_COLOR,
fg=FOREGROUND_COLOR)
self.last_score.grid(row=6, column=2, pady=6)
self.exit_button = Button(self.top_window1, text="EXIT", font=('Courier', 12, 'bold'), command=self.exit_game,
bg=BUTTON_COLOR, fg=BUTTON_FOREGROUND)
self.exit_button.grid(row=7, column=2, pady=15)
self.message = Label(self.top_window1, text="Нажмите кнопку Start, чтобы начать.Введите слово и нажмите Enter."
"У вас будет 90 секунд.", font=('Courier', 10, 'bold'),
wraplength=350, fg=FOREGROUND_COLOR, bg=BACKGROUND_COLOR)
self.message.grid(row=8, column=2)
self.top_window1.mainloop()
Ответы (1 шт):
Автор решения: Sergey K.
→ Ссылка
Можете сохранить результат в простой JSON файл. В приведённых ниже примерах указывается лишь как пользоваться данными механизмом, нужные для сохранения данные подставьте сами. А также, в где вызывать сохранение и загрузку, тоже самостоятельно определите.
Сохранить примерно так:
import json
fout = open('save.json', 'w', encoding='utf-8')
save_data = {'score': score, 'player': player_name}
json.dump(save_data, fout, indent=4, ensure_ascii=False)
fout.close()
Загрузить так:
import json
fin = open('save.json', 'r', encoding='utf-8')
save_data = json.load(fin)
fin.close()