Ответы
Объяснение:
В этом коде я создал класс Clicker, который содержит информацию о баллах и рекорде, а также окошко с меткой, кнопкой с картинкой кексика для баллов, кнопкой сброса баллов и кнопкой выхода из приложения. При клике на кнопку кексика мы вызываем метод add_point(), который добавляет одно очко к баллам, и обновляем метку с баллами и рекордом. При нажатии на кнопку сброса мы обнуляем баллы, но не рекорд.
import tkinter as tk
class Clicker:
def __init__(self, master):
self.master = master
master.title("Кликер")
self.score = 0
self.high_score = 0
self.label = tk.Label(master, text=f"Баллы: {self.score}\nРекорд: {self.high_score}")
self.label.pack()
self.cookie_button = tk.Button(master, image=cookie_image, command=self.add_point)
self.cookie_button.pack(pady=10)
self.reset_button = tk.Button(master, text="Сбросить", command=self.reset_score)
self.reset_button.pack(pady=5)
self.quit_button = tk.Button(master, text="Выйти", command=master.quit)
self.quit_button.pack(pady=5)
def add_point(self):
self.score += 1
if self.score > self.high_score:
self.high_score = self.score
self.label.config(text=f"Баллы: {self.score}\nРекорд: {self.high_score}")
def reset_score(self):
self.score = 0
self.label.config(text=f"Баллы: {self.score}\nРекорд: {self.high_score}")
root = tk.Tk()
cookie_image = tk.PhotoImage(file="cookie.png")
clicker = Clicker(root)
root.mainloop()
Код для реализации теста с использованием различных элементов управления на Python:
import tkinter as tk
class Test:
def __init__(self, master):
self.master = master
master.title("Тест")
self.questions = [
"Какой язык программирования лучше использовать для написания игр?",
"Какой тип данных используется для хранения целых чисел?",
"Какой оператор используется для логического НЕ?",
"Как называется функция, которая вызывается при создании объекта?",
"Что означает аббревиатура OOP?",
]
self.answers = [
["Python", "Java", "C++", "JavaScript"],
["str", "float", "int", "bool"],
["&", "|", "!", "^"],
["init", "create", "new", "make"],
["Object-Oriented Programming", "Online Order Processing", "Open Office Project", "Optical Output Port"],
]
self.correct_answers = [0, 2, 2, 0, 0]
self.question_number = 0
self.score = 0
self.question_label = tk.Label(master, text=self.questions[self.question_number])
self.question_label.pack(pady=10)
self.answer_var = tk.StringVar()
self.radio_buttons = []
for i in range(len(self.answers[self.question_number])):
rb = tk.Radiobutton(master, text=self.answers[self.question_number][i], variable=self.answer_var, value=i)
self.radio_buttons.append(rb)
rb.pack()
self.check_var1 = tk.BooleanVar()
self.check_button1 = tk.Checkbutton(master, text="Один", variable=self.check_var1)
self.check_button1.pack(pady=5)
self.check_var2 = tk.BooleanVar()
self.check_button2 = tk.Checkbutton(master, text="Два", variable=self.check_var2)
self.check_button2.pack(pady=5)
self.spin_var = tk.StringVar()
self.spin_var.set("0")
self.spinbox = tk.Spinbox(master, from_=0, to=10, textvariable=self.spin_var)
self.spinbox.pack(pady=5)
self.combo_var = tk.StringVar()
self.combo_var.set(self.answers[self.question_number][0])
self.combobox = tk.OptionMenu(master, self.combo_var, *self.answers[self.question_number])
self.combobox.pack(pady=5)
self.entry_var = tk.StringVar()
self.entry_var.set("")
self.entry = tk.Entry(master, textvariable=self.entry_var)
self.entry.pack(pady=5)
self.submit_button = tk.Button(master, text="Подтвердить", command=self.check_answer)
self.submit_button.pack(pady=10)
self.quit_button = tk.Button(master, text="Выйти", command=master.quit)
self.quit_button.pack(pady=5)
def check_answer(self):
selected_answer = int(self.answer_var.get())
if selected_answer == self.correct_answers[self.question_number]:
self.score += 1
if self.question_number < len(self.questions) - 1:
self.question_number += 1
self.update_question()
else:
self.show_results()