Тридцать минут. Именно столько нужно, чтобы с нуля написать полностью рабочую игру — с очками, уровнями сложности и настоящим геймплеем. Звучит нереально? Через несколько страниц вы убедитесь: это не только реально, но и гораздо проще, чем кажется на старте.
Онлайн-школа «Матрица» помогает школьникам осваивать обучение программированию на Python с нуля — от первых строчек кода до полноценных проектов. И «напиши свою первую игру» — это один из самых любимых учениками модулей. Потому что результат виден сразу, понятен друзьям, и мотивирует двигаться дальше сильнее любого учебника.
Поехали.
Что понадобится
Ничего лишнего:
- Компьютер или ноутбук
- Установленный Python (версия 3.8 или старше — скачать бесплатно с python.org)
- Любой редактор: IDLE (идёт в комплекте с Python), VS Code или даже обычный блокнот
Никаких дополнительных библиотек для нашей первой игры не нужно — только встроенные средства языка программирования Python.
Игра, которую мы напишем: «Угадай число»
Классическая «угадайка» — компьютер загадывает число от 1 до 100, пользователь пытается его угадать. После каждой попытки программа подсказывает: «больше» или «меньше». Побеждает тот, кто угадал за наименьшее количество попыток.
Это идеальная первая игра, потому что:
- Использует ровно три базовые концепции: переменные, циклы, условия
- Понятна без технического объяснения
- Легко расширяется (таймер, таблица рекордов, уровни сложности)
Шаг 1: Открываем редактор и создаём файл (2 минуты)
Откройте IDLE или любой редактор. Создайте новый файл, назовите его ugadaika.py. Расширение .py — стандартное для файлов Python.
Готово. Перейдём к коду.
Шаг 2: Импортируем нужный модуль (1 минута)
Первая строчка нашей программы:
python
import random
Модуль random — это встроенная библиотека Python, позволяющая генерировать случайные числа. Без неё компьютер не сможет «загадать».
Шаг 3: Загадываем число (2 минуты)
python
import random
secret = random.randint(1, 100)
attempts = 0
print("Я загадал число от 1 до 100. Попробуй угадать!")
Что здесь происходит:
- random.randint(1, 100) — выбирает случайное целое от 1 до 100 включительно
- secret — переменная, хранящая загаданное значение (пользователь его не видит)
- attempts — счётчик попыток, начинается с нуля
- print(...) — выводит приглашение на экран
Шаг 4: Основной цикл (10 минут)
Это сердце нашей программы:
import random
secret = random.randint(1, 100)
attempts = 0
print("Я загадал число от 1 до 100. Попробуй угадать!")
while True:
guess = int(input("Твоя версия: "))
attempts += 1
if guess < secret:
print("Моё число больше. Попробуй ещё!")
elif guess > secret:
print("Моё число меньше. Давай снова!")
else:
print(f"Ура! Ты угадал за {attempts} попыток!")
break
Разберём каждый блок:
while True: — бесконечный цикл. Программа будет спрашивать снова и снова, пока не получит верный ответ.
guess = int(input("Твоя версия: ")) — запрашивает ввод у пользователя. input() возвращает строку, поэтому int(...) конвертирует её в целое число.
attempts += 1 — увеличивает счётчик при каждой попытке.
Блок if / elif / else — три ветки логики: меньше, больше, равно. При совпадении — break завершает цикл.
Запустите программу прямо сейчас. Нажмите F5 в IDLE или python ugadaika.py в терминале. Игра уже работает!
Шаг 5: Добавляем уровни сложности (7 минут)
Хорошая игра дает выбор. Добавим три варианта: лёгкий (1–20), средний (1–100), сложный (1–500):
python
import random
print("Выбери уровень:")
print("1 — Лёгкий (от 1 до 20)")
print("2 — Средний (от 1 до 100)")
print("3 — Сложный (от 1 до 500)")
level = int(input("Твой выбор (1/2/3): "))
if level == 1:
top = 20
elif level == 2:
top = 100
else:
top = 500
secret = random.randint(1, top)
attempts = 0
print(f"Отлично! Угадай число от 1 до {top}.")
while True:
guess = int(input("Твоя версия: "))
attempts += 1
if guess < secret:
print("Загаданное больше!")
elif guess > secret:
print("Загаданное меньше!")
else:
print(f"Верно! Потребовалось {attempts} попыток.")
break
Теперь у нашей игры полноценный выбор сложности. Запустите — убедитесь сами.
Шаг 6: Добавляем оценку результата (5 минут)
Выдадим игроку «рейтинг» по числу использованных попыток:
python
if attempts <= 5:
print("Фантастика! Ты настоящий стратег.")
elif attempts <= 10:
print("Хороший результат! Можно лучше.")
else:
print("В следующий раз используй стратегию деления пополам — она всегда работает!")
Добавьте этот блок сразу после строчки print(f"Верно! Потребовалось {attempts} попыток.").
Итоговый код целиком
python
import random
print("=== УГАДАЙ ЧИСЛО ===")
print("Выбери уровень:")
print("1 — Лёгкий (1–20)")
print("2 — Средний (1–100)")
print("3 — Сложный (1–500)")
level = int(input("Твой выбор (1/2/3): "))
if level == 1:
top = 20
elif level == 2:
top = 100
else:
top = 500
secret = random.randint(1, top)
attempts = 0
print(f"\nУгадай число от 1 до {top}. Удачи!")
while True:
guess = int(input("Введи версию: "))
attempts += 1
if guess < secret:
print("Загаданное больше. Пробуй!")
elif guess > secret:
print("Загаданное меньше. Ещё раз!")
else:
print(f"\n🎉 Правильно! Понадобилось {attempts} попыток.")
if attempts <= 5:
print("Фантастика! Ты настоящий стратег.")
elif attempts <= 10:
print("Хорошо! Есть куда расти.")
else:
print("Попробуй стратегию: каждый раз называй среднее между минимумом и максимумом.")
break
Полная версия с уровнями, подсказками и оценкой — готова.
Что вы только что освоили
За тридцать минут вы применили:
Переменные — хранение загаданного числа, счётчика и верхнего предела.
Функцию input() — взаимодействие с пользователем.
Цикл while — повторение до выполнения условия.
Ветвление if / elif / else — разная реакция на разные ситуации.
Модуль random — работа со встроенными библиотеками.
Форматированный вывод (f-строки) — вставка переменных в текст.
Это не «детская игрушка». Это ровно те конструкции, которые используются в реальных коммерческих проектах каждый день.
Три расширения для тех, кому хочется большего
Расширение А: счётчик времени. Добавьте замер через модуль time: сохраните start = time.time() перед циклом, вычтите в конце. Покажите, сколько секунд ушло.
Расширение Б: таблица рекордов. Запишите лучший результат в файл через open() и считывайте его при каждом запуске. Так появится настоящий рекорд, который сохраняется между сессиями.
Расширение В: мультиплеер. Один игрок загадывает число вручную (вводит его скрытно через getpass.getpass()), второй угадывает. Добавляется пятью строчками.
Каждое расширение добавляет один-два новых навыка и несколько минут кода. Именно так и развивается реальный разработчик: берёт рабочую основу и постепенно наращивает функционал.
Почему начинать с игр — правильно
Существует распространённое заблуждение: «сначала нужно выучить теорию, потом делать проекты». На практике всё наоборот. Человеческий мозг усваивает инструменты значительно эффективнее в контексте конкретной цели, чем в вакууме.
Когда вы пишете игры на Python для начинающих — каждая конструкция языка имеет немедленный смысл. Цикл нужен, чтобы давать попытки. Условие нужно, чтобы реагировать на ответ. Переменная нужна, чтобы запомнить загаданное. Мозг запоминает «зачем» вместе с «как» — и это сохраняется.
В исследованиях по педагогике программирования этот подход называется «project-based learning» и стабильно показывает более высокое долгосрочное усвоение навыков по сравнению с традиционным теоретическим курсом.
Что дальше после первой игры
После того как написана угадайка — естественный следующий шаг для большинства учеников: «А можно сделать что-нибудь с графикой?»
Ответ: да, и это тоже не так страшно, как кажется. Библиотека pygame позволяет рисовать объекты, обрабатывать нажатия клавиш и создавать визуальные сцены. Первый рабочий прототип на pygame можно написать за 2–3 часа — при условии, что основы (цикл, условие, функции) уже освоены.
Простые игры на Python для начинающих на pygame — это второй уровень, логично следующий после текстовых проектов. Именно по такой траектории строятся занятия в нашей школе.
Почему Python — лучший выбор для старта
Нередко звучит вопрос: почему именно Python, а не JavaScript, C++ или Scratch?
Ответ многоуровневый:
Синтаксис близок к естественному языку. if guess < secret: читается почти как фраза. Это снижает когнитивную нагрузку на начальном этапе.
Интерпретатор сразу показывает ошибки. Не нужно компилировать — запустил, увидел, исправил. Цикл обратной связи короткий.
Широчайшее применение. Веб-разработка, анализ данных, машинное обучение, автоматизация, игры, научные расчёты — Python для начинающих сегодня открывает двери буквально во все направления IT.
Огромное сообщество. Любой вопрос, возникший при написании кода, уже разобран на Stack Overflow, Хабре или специализированных форумах. Ученик никогда не останется с непонятной ошибкой один на один.
Сколько времени нужно, чтобы начать делать реальные проекты
Честный ответ: три-четыре месяца систематических занятий по 3–4 часа в неделю достаточно, чтобы уверенно писать небольшие самостоятельные проекты. Не просто упражнения из учебника, а задачи, которые вы сами придумали и сами реализовали.
При более интенсивном графике — шесть-восемь часов еженедельно — этот горизонт сдвигается вдвое.
Ключевое условие: регулярность важнее интенсивности. Час каждый день даёт более устойчивый результат, чем восемь часов раз в неделю. Нейронные связи формируются через повторение, а не через разовые марафоны.
Как выглядит хороший курс для школьника
Python для начинающих детей — это не просто набор теоретических уроков. Это последовательность проектов с нарастающей сложностью, где каждый следующий использует инструменты из предыдущего.
Хороший учебный маршрут выглядит примерно так:
- Переменные, типы, ввод-вывод → текстовая угадайка
- Списки, циклы → текстовый квиз или шифровальщик
- Функции → калькулятор или конвертер единиц
- Файлы, словари → записная книжка или каталог
- Pygame, события → визуальная игра (пинг-понг, арканоид)
Именно по такой траектории выстроена программа Python для детей курс для начинающих в онлайн-школе «Матрица»: каждое занятие заканчивается рабочим проектом, который ребёнок может показать друзьям.
Итог
За тридцать минут вы написали полноценную игру с тремя уровнями сложности и оценкой результата. Это не «учебный пример» — это настоящая программа, которая работает, развлекает и решает задачу.
Дальше — больше. Следующий проект, следующий инструмент, следующий уровень сложности.
Статья подготовлена онлайн-школой «Матрица». Мы занимаемся обучением программированию на Python с нуля для школьников от 10 лет. Наш курс построен на реальных проектах — каждое занятие заканчивается тем, что ученик запускает собственноручно написанный код. Приходите на пробный урок — первая программа будет готова уже через час: https://clck.ru/3U8JCK