Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from tkinter import *
- from tkinter import scrolledtext, messagebox
- from random import randint
- from time import time
- import csv
- number = 0
- answer = 0
- attempt = 0
- time_start = 0
- def show_records():
- def close_window():
- window2.destroy()
- window2 = Toplevel(window)
- lbl = Label(window2, text='Легкий')
- easy_rec = Text(window2)
- btnOk = Button(window2, text='Ок', command=close_window)
- lbl.pack()
- easy_rec.pack()
- btnOk.pack(pady=50)
- with open('test.csv') as file:
- reader = csv.reader(file)
- for line in reader:
- easy_rec.insert(END, ' '.join(line) + '\n')
- easy_rec.configure(state='disabled')
- def start_game():
- global number
- global answer
- global attempt
- global time_start
- n = game_level.get()
- # Загадывание числа
- number = randint(0, n)
- # вывод ответа для отладки
- print(number)
- answer = -1 # ответ пользователя
- attempt = 0
- time_start = time()
- history.configure(state='normal')
- history.delete(1.0, END)
- history.insert(END, f'Начинаем новую игру. Загадано число от 1 до {n}\n')
- history.configure(state='disabled')
- def turn():
- global number
- global answer
- global attempt
- global time_start
- answer = number_input.get()
- attempt += 1
- if answer.isdigit():
- answer = int(answer)
- history.configure(state='normal')
- if answer < number:
- history.insert(END, f'Попытка: {attempt}, названное число: {answer}, загаданное число больше\n')
- elif answer > number:
- history.insert(END, f'Попытка: {attempt}, названное число: {answer}, загаданное число меньше\n')
- else:
- # win
- pass
- history.configure(state='disabled')
- else:
- messagebox.showerror('Ошибка', 'Нужно вводить числа')
- window = Tk()
- window.title('Игра "Угадай число"')
- window.geometry('800x600')
- upper_frame = LabelFrame(window, bg='Lavender', height=200, width=800, text='Игра')
- middle_frame = LabelFrame(window, bg='silver', height=200, width=800, text='История ходов')
- down_frame = LabelFrame(window, bg='DarkOrange', height=200, width=800, text='Настройки игры')
- upper_frame.pack()
- upper_frame.pack_propagate(False)
- middle_frame.pack()
- middle_frame.pack_propagate(False)
- down_frame.pack()
- down_frame.pack_propagate(False)
- title = Label(upper_frame, text='Введите ваше число')
- title.pack()
- number_input = Entry(upper_frame)
- number_input.pack(pady=20)
- number_input.focus()
- btn_turn = Button(upper_frame, text='OK', command=turn)
- btn_turn.pack()
- history = scrolledtext.ScrolledText(middle_frame, state='disabled')
- history.pack(pady=10)
- level_frame = LabelFrame(down_frame, text='Уровень сложности')
- game_level = IntVar()
- game_level.set(100)
- lev1 = Radiobutton(level_frame, text='Легкий (число от 1 до 100)', value=100, variable=game_level)
- lev2 = Radiobutton(level_frame, text='Средний (число от 1 до 1000)', value=1000, variable=game_level)
- lev3 = Radiobutton(level_frame, text='Сложный (число от 1 до 1 000 000', value=1000000, variable=game_level)
- lev1.pack()
- lev2.pack()
- lev3.pack()
- level_frame.pack(side='left', padx=50)
- btn_new_game = Button(down_frame, text='Новая игра', command=start_game)
- btn_new_game.pack(side='left')
- records_frame = LabelFrame(down_frame, text='Статистика')
- btn_show_rec = Button(records_frame, text='Показать таблицу рекордов', command=show_records)
- btn_show_rec.pack()
- records_frame.pack(side='right', padx=50)
- start_game()
- window.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement