ГЛАВА 17 · СТР. 1081

Проект: игра «Крестики-нолики» с Tkinter

Построим первую полноценную GUI-игру как настоящий небольшой программный проект: разберём систему событий Tkinter, отделим игровое состояние от виджетов, реализуем правила и тесты, добавим управление мышью и клавиатурой, визуальную обратную связь, счёт матчей и финальную архитектуру приложения.

~6–7 часов события · состояние · правила · архитектура 30 практик
17.1Привязка событий — делаем приложения динамическими!108317.2Игра «Крестики-нолики» — объяснение1084Настраиваем Tkinter17.3Создаём глобальные переменные1085Создаём кнопки17.4При нажатии на кнопку рисуем на ней108617.5Проверяем после каждого хода, победил ли игрок108717.6Новая игра и первая полная версия108917.7Event, callback, command и binding109117.8Объект Event109417.9Синтаксис событий Tk109617.10command vs bind — что выбирать109717.11Focus и клавиатура109917.12Mouse Enter/Leave и hover110017.13Модель игрового состояния110317.14Индексы, строки и столбцы110617.15Правильный алгоритм хода110717.16Восемь выигрышных линий111017.17Победа, ничья и terminal state111517.18От widgets-as-state к board model111717.19GameState с dataclass112017.20Архитектура TicTacToeApp112117.21Адаптивное игровое поле112317.22Визуальный стиль X/O112417.23Hover preview через bind()112617.24Управление клавиатурой112717.25Подсветка выигрышной линии112917.26Счёт матчей113117.27New Round vs New Match113217.28Тестируем игру без Tkinter113417.29Debug Labs113617.30Visual effects и after()115317.31Tic-Tac-Toe Pro — итоги главы1155