Завдання. Створити програму-гру: комп'ютер загадує число від 1 до 100, гравець
намагається відгадати його та записує у текстове поле відповідь; програма повинна
рахувати кількість спроб та робити підказку користувачеві, виводячи повідомлення
"число менше", чи "число більше"; коли число відгадане, вказати кількість спроб, за
яку це вдалося зробити гравцю.
1. Імпортуй графічну бібліотеку tkinter.
from tkinter import *
2. Створи головне вікно root та розмісти команду для відображення вікна після
запуску програми.
root = Tk() # створення головного вікна (завжди називай головне вікно root!)
# команди
root.mainloop() # команда відображення вікна при запуску
3. Задай заголовок вікна «Вгадай число!».
root.title('Вгадай число!')
4. Задай розміри головного вікна 320x200.
root.geometry('320x200')
5. Створи мітку lab1 з текстом «Я загадав число від 1 до 100», задай шрифт «Arial 15»
та розмісти за допомогою пакувальника grid.
lab1 = Label(root, text='Я загадав число від 1 до 100', font='Arial 15')
lab1.grid(row=0, column=0, columnspan=4, sticky='w')
6. Створи мітку lab2 з текстом «Введи відповідь», задай шрифр «Arial 15» та розмісти
за допомогою пакувальника grid.
lab2 = Label(___, text=___, font=___)
lab2.grid(row=1, column=0, sticky='w')
7. Розмісти у вікні однорядкове текстове поле entry для введення відповіді.
entry = Entry(___, width=___)
entry.grid(row=___, column=___, sticky=___)
8. Постав кнопку button з текстом «Натисни».
button = Button(___ text=___, font=___, bg='lightpink')
button.grid(row=___, column=___, sticky=___)
9. Розмісти багаторядкове текстове поле text, куди будемо виводити всю необхідну
інформацію.
text = Text(___, width=___, height=___, bg='lightblue')
text.grid(row=___, column=___, columnspan=___)
Answers & Comments
Ответ:
from tkinter import *
import random
root = Tk()
root.title('Вгадай число!')
root.geometry('320x200')
num = random.randint(1, 100) # генерація випадкового числа від 1 до 100
attempts = 0
def guess():
global attempts
attempts += 1
guess = int(entry.get())
if guess == num:
text.insert(END, f'Вітаємо! Ви відгадали число за {attempts} спроб\n')
button['state'] = 'disabled' # деактивувати кнопку після відгадування числа
elif guess < num:
text.insert(END, 'Спробуйте ще раз. Число більше\n')
else:
text.insert(END, 'Спробуйте ще раз. Число менше\n')
entry.delete(0, END)
lab1 = Label(root, text='Я загадав число від 1 до 100', font='Arial 15')
lab1.grid(row=0, column=0, columnspan=4, sticky='w')
lab2 = Label(root, text='Введи відповідь', font='Arial 15')
lab2.grid(row=1, column=0, sticky='w')
entry = Entry(root, width=20)
entry.grid(row=1, column=1, sticky='w')
button = Button(root, text='Натисни', font='Arial 15', bg='lightpink', command=guess)
button.grid(row=1, column=2, sticky='w')
text = Text(root, width=30, height=5, bg='lightblue')
text.grid(row=2, column=0, columnspan=4)
root.mainloop()
Объяснение:
При кожному відгадуванні числа гравцем програма збільшує лічильник спроб та робить відповідні підказки, виводячи повідомлення "число менше", чи "число більше". Після відгадування числа кнопка "Натисни" деактивується. Результат гри виводиться в багаторядковому текстовому полі text.