Капитан летит между кораблём, Луной, астероидом и Авророй. Находит антенну и батарею, следит за топливом и кислородом, затем чинит маяк. Можно ошибиться в команде или потратить ресурсы.
Космическая экспедиция: учителю
Это короткая игра в текстовой консоли: ребёнок вводит команды, а Python отвечает сообщениями. Графики и космического корабля на экране игры нет. Проект специально сделан предсказуемым, чтобы удобно объяснять основы кода.
За 30 секунд
Чтобы быстро решить, подходит ли проект для занятия.
Найти антенну на Луне и батарею на астероиде, прилететь на Аврору и ввести «чинить». Для победы хватает трёх полётов; маршрут фиксированный и легко проверяется.
Хороший первый проект после знакомства с print() и input(). Здесь нет случайных событий, поэтому дети легче понимают причину каждого результата.
10 занятий по 35–45 минут. Каждый урок — одна механика, два маленьких примера и три самостоятельных задания.
«Мы — команда спасателей. На далёкой планете погас маяк. Чтобы помочь, нужно найти две детали и не потратить всё топливо. Игра задаёт вопросы словами, а мы будем выяснять, какие строки Python заставляют её помнить наш маршрут и показывать победу.»
Что дети освоят
- Понять связь между командой игрока и веткой if/elif/else.
- Хранить ресурсы, маршрут и находки в переменных, списке и словаре.
- Использовать циклы и функции; проверять несколько условий победы через and.
Первое занятие
Готовый сценарий на 45 минут, который можно взять прямо в класс.
Перед началом
- Откройте полную игру в IDE и заранее пройдите маршрут победы из оглавления проекта.
- В онлайн IDE ответы для input() вводятся до запуска: каждая команда или название места — отдельная строка.
- На доске нарисуйте четыре места и два ресурса: топливо 8, кислород 8. Подготовьте карточки «антенна» и «батарея».
- 0–5 минПоставьте задачу
Расскажите о погасшем маяке и попросите предсказать, какие команды понадобятся капитану.
- 5–10 минПокажите игру
Введите «карта», «статус», затем «лететь» и «луна». Спросите, почему топлива стало 6.
- 10–25 минРазберите урок 1
Покажите две строки print(), затем input(). Пройдите объяснения построчно.
- 25–38 минДайте свой вариант
Дети придумывают имя корабля и капитана и запускают изменённый пример.
- 38–45 минПроверьте понимание
Попросите показать строку, которая задаёт вопрос, и строку, которая печатает ответ.
Карта всех уроков
Одна тема, один вопрос классу и одна методическая подсказка на каждый шаг.
Сигнал с Авроры
Выводим начало истории и получаем первую команду капитана.
Цель: Показать текст и прочитать ответ игрока.
Спросите: Какая строка спрашивает команду?
Ожидаемый ответ: Та, где вызван input().
Подсказка: Начните с прогноза: что выведут две строки print()? Покажите, что без кавычек обычный текст вызывает ошибку, а значение переменной пишется без кавычек.
Приборы корабля
Запоминаем место, топливо и кислород в переменных.
Цель: Понять, как игра хранит и меняет состояние.
Спросите: Сколько топлива останется после одного полёта?
Ожидаемый ответ: 6: каждый полёт стоит 2 единицы от начальных 8.
Подсказка: Попросите детей нарисовать три коробки и переписать числа после операции -=. Сравните строку «8» и число 8.
Карта полёта
Собираем названия мест в список и показываем карту.
Цель: Хранить несколько мест в одной переменной и пройти по ним.
Спросите: Почему places[0] — корабль?
Ожидаемый ответ: В Python нумерация списка начинается с нуля.
Подсказка: Разложите карточки мест в ряд и подпишите индексы 0–3. Ошибку с отступом лучше показать на коротком примере из второго шага.
Команды капитана
Учимся выбирать разные действия с помощью условий.
Цель: Запускать нужный кусок кода по команде игрока.
Спросите: Что произойдёт для неизвестной команды?
Ожидаемый ответ: Сработает ветка else и появится подсказка.
Подсказка: Сыграйте в «командный пульт»: один ребёнок говорит слово, другой выбирает одну карточку-действие. Отдельно сравните = и ==.
Игровой цикл
Повторяем вопрос, пока капитан не завершит экспедицию.
Цель: Понять, почему игра не заканчивается после одной команды.
Спросите: Как остановить повторение вопросов?
Ожидаемый ответ: Команда «выход» приводит к break; победа и проигрыш тоже завершают цикл.
Подсказка: Для второго примера заранее подготовьте две строки ответа. Обсудите, почему бесконечный цикл без break опасен, и покажите кнопку «Остановить» в IDE.
Функция «Статус»
Собираем повторяющиеся команды в функцию.
Цель: Создать функцию и вызвать её несколько раз.
Спросите: Когда заработает show_status()?
Ожидаемый ответ: После вызова функции по имени со скобками.
Подсказка: Сравните функцию с кнопкой прибора: сначала изготовили кнопку через def, потом нажали её вызовом. Полная игра читает переменные, созданные выше функции.
Рюкзак находок
Находим детали, кладём их в список и проверяем содержимое.
Цель: Добавить предмет и не положить его дважды.
Спросите: Зачем проверять item in bag?
Ожидаемый ответ: Чтобы не взять одну и ту же деталь дважды.
Подсказка: Используйте настоящий мешочек и карточки «антенна» и «батарея». Обратите внимание: append меняет исходный список.
Полёт и ресурсы
Проверяем маршрут и тратим топливо только при успешном полёте.
Цель: Проверить возможность действия до изменения переменных.
Спросите: Когда уменьшается топливо?
Ожидаемый ответ: Только после того, как место существует, оно другое и топлива не меньше 2.
Подсказка: Попросите детей перечислить проверки до полёта. Отдельно покажите, почему расход ресурсов должен стоять только в ветке успешного действия.
Секреты Луны
Связываем каждое место с найденной там деталью.
Цель: Найти предмет по названию места.
Спросите: Что хранит FINDS["луна"]?
Ожидаемый ответ: Строку «антенна» — предмет для ключа «луна».
Подсказка: Нарисуйте таблицу из двух колонок «место → предмет». Объясните, почему проверка in стоит до обращения по ключу.
Зажги маяк
Соединяем место и две находки в условие победы.
Цель: Проверить финальное условие и пройти полную игру.
Спросите: Почему одного предмета недостаточно?
Ожидаемый ответ: Условие с and требует и антенну, и батарею, и прилёт на Аврору.
Подсказка: Дайте детям маршрут победы: лететь → луна → исследовать → лететь → астероид → исследовать → лететь → аврора → чинить. Затем попросите придумать свой маршрут и объяснить, почему его хватает по топливу и кислороду.
Если что-то пошло не так
Типичные места, на которых дети останавливаются.
Космос на картинке, игра в тексте
Иллюстрация на сайте украшает урок. В самой игре действие происходит в консоли — скажите это детям сразу.
Ответы input() кончились
Для полного маршрута в онлайн IDE нужно девять строк ответов. При пустом поле игра не сможет продолжить диалог.
Ресурсы списались слишком рано
Покажите, что топливо тратится только после успешной проверки места и запаса.
Несколько условий победы
Нарисуйте три галочки: Аврора, антенна, батарея. and означает, что нужны все три.