Цвет Что нужно сделать: Доработайте кликер. Сделайте так, чтобы при достижении 20 очков цвет кнопки менялся. from tkinter import * from random import randint window = Tk() window.title(‘Test’) window.geometry(‘700×500’) score = 0 def check(): global score score += 1 score_label[‘text’] = score button.place(x = randint(20, 500), y = randint(20, 400)) button = Button(text = ‘Нажми’, font = (‘Arial’, 20), command = check) button.place(x = 100, y = 100) window.mainloop()
python
from colorsys import hsv_to_rgb
2. Создадим функцию "change_button_color", которая будет изменять цвет кнопки при достижении 20 очков. В этой функции мы будем использовать модель цвета HSV, чтобы генерировать различные цвета.
python
def change_button_color():
hue = score % 360 # Вычисляем значение оттенка цвета, основываясь на текущем счете
saturation = 1.0 # Задаем насыщенность цвета
value = 1.0 # Задаем яркость цвета
r, g, b = hsv_to_rgb(hue / 360, saturation, value) # Преобразуем HSV в RGB
hex_color = "#{:02x}{:02x}{:02x}".format(int(r * 255), int(g * 255), int(b * 255)) # Преобразуем RGB в HEX
button.configure(bg=hex_color) # Изменим цвет кнопки
3. Добавим вызов функции "change_button_color" при достижении 20 очков в функции "check":
python
def check():
global score
score += 1
score_label['text'] = score
if score == 20:
change_button_color()
button.place(x=randint(20, 500), y=randint(20, 400))
4. Вместо создания кнопки "button" сразу в глобальной области видимости, мы можем создать функцию "create_button", которая будет создавать кнопку и устанавливать начальный цвет:
python
def create_button():
button = Button(text='Нажми', font=('Arial', 20), command=check, bg='white')
button.place(x=100, y=100)
return button
# Создаем кнопку
button = create_button()
5. Используем переменную "button" в функции "check" и в функции "change_button_color". Также добавим строчку "global button" в функцию "check", чтобы обозначить использование глобальной переменной.
python
def check():
global score, button
score += 1
score_label['text'] = score
if score == 20:
change_button_color()
button.place(x=randint(20, 500), y=randint(20, 400))
def change_button_color():
global button
hue = score % 360
saturation = 1.0
value = 1.0
r, g, b = hsv_to_rgb(hue / 360, saturation, value)
hex_color = "#{:02x}{:02x}{:02x}".format(int(r * 255), int(g * 255), int(b * 255))
button.configure(bg=hex_color)
Теперь при достижении 20 очков цвет кнопки будет меняться. Каждый раз при достижении 20, 40, 60 и т.д. очков цвет кнопки будет меняться на следующий цвет в спектре.
Например, при счете 20 цвет кнопки будет зеленым, а при счете 40 он изменится на голубой и так далее.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет