import tkinter as tk
# Функция для изменения цвета клетки при нажатии
def toggle_cell(event):
# Получаем координаты нажатия
x, y = event.x // cell_size, event.y // cell_size
# Меняем цвет клетки
if canvas.itemcget(grid[x][y], 'fill') == 'white':
canvas.itemconfig(grid[x][y], fill='blue') # Закрашиваем в синий
else:
canvas.itemconfig(grid[x][y], fill='white') # Возвращаем в белый
# Параметры клеток и поля
cell_size = 10 # Размер одной клетки
grid_size = 45 # Размер поля (45x45 клеток)
window_size = grid_size * cell_size # Размер окна (450x450)
# Создаем главное окно
root =
tk.Tk ()
root.title("Клеточное поле")
root.geometry(f"{window_size}x{window_size}") # Устанавливаем размер окна
root.resizable(False, False) # Запрещаем изменение размера окна
# Создаем холст для клеток
canvas = tk.Canvas(root, width=window_size, height=window_size)
canvas.pack()
# Создаем клеточное поле
grid = [] # Список для хранения клеток
for i in range(grid_size):
row = []
for j in range(grid_size):
# Рисуем клетку
cell = canvas.create_rectangle(
j * cell_size, i * cell_size,
(j + 1) * cell_size, (i + 1) * cell_size,
fill='white' # Начальный цвет клетки
)
row.append(cell) # Добавляем клетку в строку
grid.append(row) # Добавляем строку в сетку
# Привязываем событие нажатия мыши к функции toggle_cell
canvas.bind("<Button-1>", toggle_cell)
# Запускаем главный цикл приложения
root.mainloop()
- ширина и высота 1 клетки 10px
- размер поля 45х45 клеток
- размер окна приложения 450х450 размер не изменяемый
главное условие!например: нажал на клетку и она закрасилась
убедительная просьба закомментировать основные моменты кода