Методичка · Консольная текстовая игра · Python

Космическая экспедиция: учителю

Это короткая игра в текстовой консоли: ребёнок вводит команды, а Python отвечает сообщениями. Графики и космического корабля на экране игры нет. Проект специально сделан предсказуемым, чтобы удобно объяснять основы кода.

01

За 30 секунд

Чтобы быстро решить, подходит ли проект для занятия.

Что делает ребёнок

Капитан летит между кораблём, Луной, астероидом и Авророй. Находит антенну и батарею, следит за топливом и кислородом, затем чинит маяк. Можно ошибиться в команде или потратить ресурсы.

К чему стремится

Найти антенну на Луне и батарею на астероиде, прилететь на Аврору и ввести «чинить». Для победы хватает трёх полётов; маршрут фиксированный и легко проверяется.

Кому подходит

Хороший первый проект после знакомства с print() и input(). Здесь нет случайных событий, поэтому дети легче понимают причину каждого результата.

Формат

10 занятий по 35–45 минут. Каждый урок — одна механика, два маленьких примера и три самостоятельных задания.

Как представить проект детям

«Мы — команда спасателей. На далёкой планете погас маяк. Чтобы помочь, нужно найти две детали и не потратить всё топливо. Игра задаёт вопросы словами, а мы будем выяснять, какие строки Python заставляют её помнить наш маршрут и показывать победу.»

Что дети освоят

02

Первое занятие

Готовый сценарий на 45 минут, который можно взять прямо в класс.

Перед началом

  • Откройте полную игру в IDE и заранее пройдите маршрут победы из оглавления проекта.
  • В онлайн IDE ответы для input() вводятся до запуска: каждая команда или название места — отдельная строка.
  • На доске нарисуйте четыре места и два ресурса: топливо 8, кислород 8. Подготовьте карточки «антенна» и «батарея».
  1. 0–5 мин
    Поставьте задачу

    Расскажите о погасшем маяке и попросите предсказать, какие команды понадобятся капитану.

  2. 5–10 мин
    Покажите игру

    Введите «карта», «статус», затем «лететь» и «луна». Спросите, почему топлива стало 6.

  3. 10–25 мин
    Разберите урок 1

    Покажите две строки print(), затем input(). Пройдите объяснения построчно.

  4. 25–38 мин
    Дайте свой вариант

    Дети придумывают имя корабля и капитана и запускают изменённый пример.

  5. 38–45 мин
    Проверьте понимание

    Попросите показать строку, которая задаёт вопрос, и строку, которая печатает ответ.

Скачать код полной игры
03

Карта всех уроков

Одна тема, один вопрос классу и одна методическая подсказка на каждый шаг.

01

Сигнал с Авроры

Выводим начало истории и получаем первую команду капитана.

print() · input()

Цель: Показать текст и прочитать ответ игрока.

Спросите: Какая строка спрашивает команду?

Ожидаемый ответ: Та, где вызван input().

Подсказка: Начните с прогноза: что выведут две строки print()? Покажите, что без кавычек обычный текст вызывает ошибку, а значение переменной пишется без кавычек.

02

Приборы корабля

Запоминаем место, топливо и кислород в переменных.

переменные · числа · строки

Цель: Понять, как игра хранит и меняет состояние.

Спросите: Сколько топлива останется после одного полёта?

Ожидаемый ответ: 6: каждый полёт стоит 2 единицы от начальных 8.

Подсказка: Попросите детей нарисовать три коробки и переписать числа после операции -=. Сравните строку «8» и число 8.

03

Карта полёта

Собираем названия мест в список и показываем карту.

списки · for

Цель: Хранить несколько мест в одной переменной и пройти по ним.

Спросите: Почему places[0] — корабль?

Ожидаемый ответ: В Python нумерация списка начинается с нуля.

Подсказка: Разложите карточки мест в ряд и подпишите индексы 0–3. Ошибку с отступом лучше показать на коротком примере из второго шага.

04

Команды капитана

Учимся выбирать разные действия с помощью условий.

if · elif · else

Цель: Запускать нужный кусок кода по команде игрока.

Спросите: Что произойдёт для неизвестной команды?

Ожидаемый ответ: Сработает ветка else и появится подсказка.

Подсказка: Сыграйте в «командный пульт»: один ребёнок говорит слово, другой выбирает одну карточку-действие. Отдельно сравните = и ==.

05

Игровой цикл

Повторяем вопрос, пока капитан не завершит экспедицию.

while · break

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

Спросите: Как остановить повторение вопросов?

Ожидаемый ответ: Команда «выход» приводит к break; победа и проигрыш тоже завершают цикл.

Подсказка: Для второго примера заранее подготовьте две строки ответа. Обсудите, почему бесконечный цикл без break опасен, и покажите кнопку «Остановить» в IDE.

06

Функция «Статус»

Собираем повторяющиеся команды в функцию.

def · вызов функции

Цель: Создать функцию и вызвать её несколько раз.

Спросите: Когда заработает show_status()?

Ожидаемый ответ: После вызова функции по имени со скобками.

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

07

Рюкзак находок

Находим детали, кладём их в список и проверяем содержимое.

список · append() · in

Цель: Добавить предмет и не положить его дважды.

Спросите: Зачем проверять item in bag?

Ожидаемый ответ: Чтобы не взять одну и ту же деталь дважды.

Подсказка: Используйте настоящий мешочек и карточки «антенна» и «батарея». Обратите внимание: append меняет исходный список.

08

Полёт и ресурсы

Проверяем маршрут и тратим топливо только при успешном полёте.

условия · сравнение · not in

Цель: Проверить возможность действия до изменения переменных.

Спросите: Когда уменьшается топливо?

Ожидаемый ответ: Только после того, как место существует, оно другое и топлива не меньше 2.

Подсказка: Попросите детей перечислить проверки до полёта. Отдельно покажите, почему расход ресурсов должен стоять только в ветке успешного действия.

09

Секреты Луны

Связываем каждое место с найденной там деталью.

словарь · ключ · значение

Цель: Найти предмет по названию места.

Спросите: Что хранит FINDS["луна"]?

Ожидаемый ответ: Строку «антенна» — предмет для ключа «луна».

Подсказка: Нарисуйте таблицу из двух колонок «место → предмет». Объясните, почему проверка in стоит до обращения по ключу.

10

Зажги маяк

Соединяем место и две находки в условие победы.

and · победа · сборка проекта

Цель: Проверить финальное условие и пройти полную игру.

Спросите: Почему одного предмета недостаточно?

Ожидаемый ответ: Условие с and требует и антенну, и батарею, и прилёт на Аврору.

Подсказка: Дайте детям маршрут победы: лететь → луна → исследовать → лететь → астероид → исследовать → лететь → аврора → чинить. Затем попросите придумать свой маршрут и объяснить, почему его хватает по топливу и кислороду.

04

Если что-то пошло не так

Типичные места, на которых дети останавливаются.

Космос на картинке, игра в тексте

Иллюстрация на сайте украшает урок. В самой игре действие происходит в консоли — скажите это детям сразу.

Ответы input() кончились

Для полного маршрута в онлайн IDE нужно девять строк ответов. При пустом поле игра не сможет продолжить диалог.

Ресурсы списались слишком рано

Покажите, что топливо тратится только после успешной проверки места и запаса.

Несколько условий победы

Нарисуйте три галочки: Аврора, антенна, батарея. and означает, что нужны все три.

Открыть первый урок Вернуться к проекту