сборник · Python
Python: логика игр
Напишешь правила крестиков-ноликов, сапёра, змейки и 2048, подсчёт очков и таблицу лиги, научишь компьютер выигрывать в ним и «четыре в ряд». Задачи независимы: начинай с любой темы.
Для старта: Уверенно пишешь функции и работаешь со списками и словарями Python
После регистрации сборник откроется в приложении.
темы
Темы сборника
Выбирай тему, которую хочешь закрепить. Задачи самостоятельны: каждую можно решить отдельно.
1.1
Итог партии в крестики-нолики
Проверь восемь линий поля 3 × 3 и скажи, кто победил, ничья ли это или партия ещё идёт
1.2
Подсказки сапёра
Посчитай для каждой клетки поля, сколько мин стоит рядом — по сторонам и по диагоналям
1.3
Куда ходит фигура
Построй поля, куда может пойти ладья, слон, ферзь, король или конь: свои фигуры закрывают путь, чужие можно взять
1.4
Расстановка флота
Найди корабли на поле морского боя и проверь расстановку: прямые корабли, нужный состав флота и ни одного касания даже углом
1.5
Партия в сапёра
Собери партию в сапёра: открытые клетки копятся от щелчка к щелчку, ноль раскрывает область волной через очередь, а мина заканчивает игру
2.1
Очистка рядов в тетрисе
Убери заполненные ряды поля тетриса: остальные опускаются вниз, сверху добавляются пустые, высота не меняется
2.2
Жёсткое приземление фигуры
Найди, на какой строке застрянет фигура тетриса после мгновенного падения: столкновения считаются по каждой занятой клетке, а дырки в фигуре ни с чем не сталкиваются
2.3
Ход в 2048
Сделай один свайп в 2048: плитки сдвигаются, равные соседи сливаются по одной от края, и каждая плитка сливается не больше одного раза за ход
2.4
Змейка
Собери змейку: тело копится между ходами, еда растит хвост и счёт, стена и собственное тело убивают, а клетка хвоста освобождается в тот же ход
3.1
Стоимость руки в блэкджеке
Посчитай очки руки: картинки по 10, туз — 11 или 1, перебор дешевит тузов по одному
3.2
Бьёт ли карта в дураке
Проверь ход защиты: старшая карта той же масти или козырь, равный ранг не бьёт
3.3
Кубиковая нотация
Разбери запись вида 2d6+3 и верни минимум и максимум суммы; невалидная строка роняет ValueError
3.4
Шансы броска
Посчитай, сколько исходов броска дают сумму не меньше цели, и общее число исходов
3.5
Комбинация в покере
Назови старшую комбинацию пяти карт — от стрит-флеша до старшей карты, туз работает на обоих концах стрита
4.1
Игра в города
Проверь ход в игру в города: первая буква — по играющей букве последнего слова, повторы запрещены, регистр не важен
4.2
Виселица
Собери партию в виселицу: маска с открытыми буквами, счётчик ошибок без штрафа за повторы и два финала — победа и шестая ошибка
4.3
Подсказки Wordle
Раскрась попытку Wordle в green, yellow и gray в два прохода, чтобы повторяющиеся буквы не получали лишних подсказок
4.4
Лучшее слово из букв
Выбери слово, которое собирается из букв на руке с учётом повторов и приносит больше всех очков; при ничьей — первое в списке
5.1
Места в таблице лидеров
Расставь игроков по местам: равные очки делят место, а следующие места пропускаются
5.2
Рейтинг Эло
Пересчитай рейтинги двух игроков после партии по формуле Эло с K = 32
5.3
Счёт в боулинге
Посчитай итог партии в боулинг по броскам: страйки, спэры и бонусы десятого фрейма
5.4
Теннисный сет
Определи победителя сета по строке розыгрышей: геймы, дьюсы и тай-брейк
5.5
Турнирная таблица лиги
Построй таблицу лиги по результатам матчей: очки, разность мячей и разрешение ничьих
6.1
Разведка лабиринта
Посчитай, сколько клеток лабиринта достижимо из старта, — обход в ширину через очередь, без рекурсии
6.2
Слои расстояний
Найди клетки ровно на заданном расстоянии от старта — слой обхода в ширину, отсортированный по строке и столбцу
6.3
Маршрут с ценой местности
Найди минимальную стоимость пути по полю, где вход в клетку стоит от 1 до 9 очков, — алгоритм Дейкстры с кучей
6.4
Ключи и двери
Найди кратчайший путь к выходу в лабиринте с ключами и дверями — обход в ширину по состояниям «клетка + набор ключей»
7.1
Выигрышный ход в ниме
Определи выигрышность позиции в ниме по XOR куч и верни ход, обнуляющий ним-сумму
7.2
Тактика в четыре в ряд
Выбери колонку в «четырёх в ряд»: добей свою четвёрку, заблокируй чужую, без угроз — ближе к центру
7.3
Добивание кораблей
Выбери клетку следующего выстрела в морском бое: добивание подбитых палуб, затем шахматная охота
7.4
Минимакс в крестиках-ноликах
Найди лучший ход в крестиках-ноликах полным перебором: быстрая победа, долгое сопротивление, порядок обхода
8.1
Шкала опыта
Нарисуй текстовую шкалу опыта: заполненные ячейки слева, пустые справа, доля ячейки отбрасывается вниз
8.2
Стаки в инвентаре
Разложи добычу по стакам инвентаря: долей в последний неполный, остаток — в новый, сливаются только соседи одного вида
8.3
Бонусы экипировки
Собери итоговые характеристики персонажа: сначала сумма плоских бонусов, потом процентные, округление вниз
8.4
Очередь ходов
Смоделируй очередь ходов по готовности: шкала растёт на скорость каждый тик, ход тратит 1000, ничья — по месту в списке
8.5
Движок текстового квеста
Собери движок текстового квеста: текущая сцена, переходы по вариантам, финал и ValueError на неверном выборе
полный доступ Платные темы этого сборника входят в Premium. Условия подписки можно посмотреть на странице тарифов. от 490 ₽ / мес посмотреть тарифы первые 5 задач — бесплатно, без карты
первый шаг в этом сборнике
Начни с задачи «Итог партии в крестики-нолики»
После регистрации откроется сборник «Python: логика игр». Начни с темы «Поле в клетку»: редактор и проверка доступны на странице задачи.
5 задач бесплатно
начать бесплатноПосле регистрации сборник откроется в приложении.
другие курсы и сборники на этом языке