From fbc48c2f250dfbe8aee2296859696358ea2c2380 Mon Sep 17 00:00:00 2001 From: pi3c Date: Tue, 31 Oct 2023 16:37:00 +0300 Subject: [PATCH] test2 --- part1_basic/final_test/app.py | 59 +++++++++++++++++++++++------------ 1 file changed, 39 insertions(+), 20 deletions(-) diff --git a/part1_basic/final_test/app.py b/part1_basic/final_test/app.py index 3bb6067..cd4601d 100644 --- a/part1_basic/final_test/app.py +++ b/part1_basic/final_test/app.py @@ -1,5 +1,6 @@ import os import time +from pathlib import Path from subprocess import Popen from tkinter import ( BOTH, @@ -16,7 +17,6 @@ from tkinter import ( mainloop, messagebox, ) -from pathlib import Path class ClickerGame: @@ -24,23 +24,36 @@ class ClickerGame: Св-во класса AHK_PATH должно содержать полный путь до запускаемого файла, если приложение установлено не в папки по умолчанию """ + AHK_PATH = "<Введите сюда путь до приложения AutoHotKey>" def __init__(self): # Поиск места установки AutoHotKey self.is_ahk_path_set = False - if os.path.isfile(app_exe := os.path.join( - Path.home(), "AppData", "Local", "Programs", "AutoHotkey", "UX", "AutoHotkeyUX.exe" - )): + if os.path.isfile( + app_exe := os.path.join( + Path.home(), + "AppData", + "Local", + "Programs", + "AutoHotkey", + "UX", + "AutoHotkeyUX.exe", + ) + ): self.AHK_PATH = app_exe self.is_ahk_path_set = True - elif os.path.isfile(app_exe := os.path.join(r'c:\\', 'Program Files', "AutoHotkey", "UX", "AutoHotkeyUX.exe")): + elif os.path.isfile( + app_exe := os.path.join( + r"c:\\", "Program Files", "AutoHotkey", "UX", "AutoHotkeyUX.exe" + ) + ): self.AHK_PATH = app_exe self.is_ahk_path_set = True else: messagebox.showerror( "Can't find AutoHotKey", - """Set AHK_PATH in app.py Until then, the clicker will not work""", + """Пропишите AHK_PATH До этого, автокликер работать не будет""", ) self.__root = Tk() @@ -61,7 +74,7 @@ class ClickerGame: self.score = 0 self.message = StringVar() - self.message.set(f"Your score is: {self.score}") + self.message.set(f"Ваш счет: {self.score}") self.label2 = Label( self.frame, textvariable=self.message, font=("Arial", 15), bg="green" ) @@ -84,26 +97,32 @@ class ClickerGame: self.clicker.place(relx=0.5, rely=0.5, anchor="center") self.ahk_button = Button( - self.__root, text="Manual run AHK", command=self.switcher_ahk + self.__root, text="Запустить AHK", command=self.switcher_ahk ) self.ahk_button.pack(side=LEFT, padx=10, pady=10) - self.close_button = Button(self.__root, text="EXIT", command=self.quit) + self.close_button = Button(self.__root, text="Выход", command=self.quit) self.close_button.pack(side=RIGHT, padx=10, pady=10) self.ahk_button = Button( - self.__root, text="Clicker RESET", command=self.clicker_reset + self.__root, text="Сброс игры", command=self.clicker_reset ) self.ahk_button.pack(side=RIGHT, padx=10, pady=10) mainloop() def __del__(self): - """Завершаем поток АНК ели он запущен при выходе""" + """Завершаем поток АНК ели он запущен при + уничтожении игры. + Можно было и в метод quit разместить, но + правильнее добавить деструктор обекта""" if self.ahk_flag: self.switcher_ahk() def key(self, event): + """Отлавливаем все event в игре, в т.ч и + нажатия клавиш клавиатуры. Обрабатываем + интересующие нас""" if event.keycode == 97: # Переключаем статус АНК по numpad1 self.switcher_ahk() @@ -121,29 +140,28 @@ class ClickerGame: pass self.score += 1 - self.message.set(f"Your score is: {self.score}") + self.message.set(f"Ваш счет: {self.score}") def switcher_ahk(self): - """Переключаем состояние скрипта кликера, если путь к нему установлен""" + """Переключаем состояние кликера(вкл/выкл), + если путь к нему установлен или выводим + сообщение с предупреждением""" if not self.is_ahk_path_set: messagebox.showerror( "Can't find AutoHotKey", - """Set AHK_PATH in app.py Until then, the clicker will not work""", + """Не могу запустить автокликер. Не указан путь к AutoHotKey""", ) elif self.ahk_flag: - print("Stop clicker") self.ahk_flag = False self.process.kill() - else: - print("run clicker") self.ahk_flag = True self.process = Popen([self.AHK_PATH, "clicker.ahk"]) def timer_update(self): self.timer = int(time.time() - self.start_time) self.timer_message.set( - f"Elapsed time:\n{self.timer // 60}min. {self.timer % 60} sec." + f"Время игры:\n{self.timer // 60}мин. {self.timer % 60} сек." ) self.__root.after(1000, self.timer_update) @@ -151,7 +169,7 @@ class ClickerGame: if self.ahk_flag: self.switcher_ahk() self.score = 0 - self.message.set(f"Your score is: {self.score}") + self.message.set(f"Ваш счет: {self.score}") self.timer = 0 self.start_time = time.time() self.timer_update() @@ -160,4 +178,5 @@ class ClickerGame: self.__root.destroy() -game = ClickerGame() +if __name__ == "__main__": + game = ClickerGame()