Крестики-нолики на Python: поле, проверка победы и игра вдвоём
Пошагово собираем консольные крестики-нолики: список из девяти клеток, безопасный ввод, восемь линий победы, ничья и полный код.
Твой напарник в мире кода
Статьи и гайды от практикующих разработчиков. Узнавайте новое, находите решения и воплощайте идеи.

Можно выбрать несколько — статьи обновятся сразу

Пошагово собираем консольные крестики-нолики: список из девяти клеток, безопасный ввод, восемь линий победы, ничья и полный код.

Сравниваем браузерный компилятор, Android IDE и облачную среду, запускаем main.cpp и разбираем реальные ограничения смартфона.

Разбираем NameError по сообщению и коду: опечатки, кавычки, порядок выполнения, ветки, функции, import и пошаговый чек-лист.

Собираем игру по шагам: случайный ход компьютера, проверка победителя, защита от неверного ввода, счёт до трёх и тесты правил.

Одна учебная база, десять задач с ожидаемыми результатами и решениями: от простого фильтра до LEFT JOIN, агрегатов и HAVING.

Соберём первый игровой прототип: карту из Parts, собираемую монету, счёт Coins через leaderstats и правильный Play Test.

Создадим бота через BotFather, безопасно передадим токен, добавим команды /start и /help, ответ на текст и запустим polling.

Соберём mobile-first страницу без фреймворков: настроим viewport, гибкий контейнер, изображения, Grid и понятные media queries.

Определим отсутствующий модуль, сверим sys.executable и pip, проверим IDE, виртуальное окружение и структуру собственного пакета без случайного sys.path.append.

Проверим Python через py, запустим pip как модуль, восстановим его через ensurepip и разберём PATH, несколько интерпретаторов и виртуальное окружение.

Проверим link, путь к style.css, Network, селекторы и каскад. За восемь шагов найдём 404, старый кеш или правило, которое проиграло другому стилю.

Подключим script.js через defer, сделаем рабочую кнопку и разберём путь src. Затем найдём 404, null и синтаксические ошибки через Console и Network.