import random
import tkinter as tk
class Trainer:
def __init__(self):
self.score = 0
self.tasks = ["Задача 1", "Задача 2", "Задача 3", "Задача 4", "Задача 5"]
self.task_description = {
"Задача 1": "Напишите программу, которая выводит на экран 'Hello, world!'",
"Задача 2": "Напишите программу, которая считает сумму двух чисел",
"Задача 3": "Напишите программу, которая находит среднее арифметическое двух чисел",
"Задача 4": "Напишите программу, которая находит площадь прямоугольника",
"Задача 5": "Напишите программу, которая находит корни квадратного уравнения"
}
self.task_solutions = {
"Задача 1": "print('Hello, world!')",
"Задача 2": "print(a + b)",
"Задача 3": "print((a + b) / 2)",
"Задача 4": "print(a * b)",
"Задача 5": "import math\nprint('x1 =', x1)\nprint('x2 =', x2)"
}
def run(self):
# Создание графического интерфейса
root = tk.Tk()
root.title("Тренажер")
root.geometry("400x300")
# Создание виджетов
task_label = tk.Label(root, text="Задача:")
task_description_label = tk.Label(root, text="")
solution_label = tk.Label(root, text="Решение:")
solution_entry = tk.Entry(root)
score_label = tk.Label(root, text="Счет: 0")
next_button = tk.Button(root, text="Следующая задача", command=self.next_task)
quit_button = tk.Button(root, text="Завершить тренировку", command=root.quit)
# Размещение виджетов на форме
task_label.pack()
task_description_label.pack()
solution_label.pack()
solution_entry.pack()
score_label.pack()
next_button.pack()
quit_button.pack()
# Запуск главного цикла
self.root = root
self.next_task()
root.mainloop()
def next_task(self):
# Выбор случайной задачи
self.current_task = random.choice(self.tasks)
# Обновление описания задачи на форме
self.task_description_label.config(text=self.task_description[self.current_task])
# Очистка поля ввода решения
self.solution_entry.delete(0, tk.END)
def check_solution(self):
# Получение решения задачи из поля ввода
solution = self.solution_entry.get()
# Проверка решения задачи
if solution == self.task_solutions[self.current_task]:
self.score += 1
self.score_label.config(text="Счет: {}".format(self.score))
tk.messagebox.showinfo("Результат", "Верно!")
else:
tk.messagebox.showerror("Результат", "Неверно!")
def quit(self):
self.root.quit()
trainer = Trainer()
trainer.run()
