← маршрут 1–48 · личный кабинет
Занятие 28. Практика: система локаций — переходы
Перед началом
Что открыть: Открой рабочую версию проекта после занятия 27. Демонстрационный lesson-28.py используй как отдельный маленький пример.
Исходные данные: Карта занятия 27 и правила зелья занятия 24. Все пять шагов выполняются без ручного сброса переменных.
Что нужно понять
Занятие 28 посвящено теме «Практика: система локаций — переходы». Здесь этот навык применяется не как отдельное упражнение, а как часть общей текстовой RPG. Переходы и инвентарь должны работать с одним состоянием героя. Разрешённый переход меняет current, использование зелья меняет hp и inventory; состояние не создаётся заново между действиями.
Минимальный пример
locations={"лагерь":["лес"],"лес":["лагерь","башня","пещера"],"башня":["лес"],"пещера":["лес"]}
current="лагерь"
hp=6
max_hp=10
inventory=["зелье"]
target="лес"
if target in locations[current]: current=target
print(current,hp,inventory)
if "зелье" in inventory and hp<max_hp:
hp=min(max_hp,hp+5); inventory.remove("зелье")
print(current,hp,inventory)
target="башня"
if target in locations[current]: current=target
print(current,hp,inventory)
target="пещера"
if target in locations[current]: current=target
else: print("Переход запрещён")
print(current,hp,inventory)
if "зелье" in inventory and hp<max_hp:
hp=min(max_hp,hp+5); inventory.remove("зелье")
print(current,hp,inventory)Скачать демонстрационный .py-файл
Практика
Открой версию после занятия 27. Старт: current='лагерь', hp=6, max_hp=10, inventory=['зелье']. Добавь последовательность: лагерь→лес, использовать зелье, лес→башня, попытка башня→пещера, повторная попытка использовать зелье.
Связь с проектом: После базового упражнения перенеси изученный приём в рабочую версию проекта и сохрани версию после занятия 28.
Критерий проверки
В одном запуске: после леса hp=6; после зелья hp=10 и inventory пуст; переход в башню сохраняет hp=10; прямой переход башня→пещера запрещён; второе использование зелья ничего не меняет.
Как проверить: Пройди пять шагов подряд и после каждого выведи current, hp и inventory.
Что сдать
Сдай рабочую версию проекта после занятия 28 и протокол пяти шагов маршрута.
Если нужна поддержка: Если задача не запускается целиком, выполни один шаг отдельно и объясни, что должно измениться до следующего шага.
Типичное затруднение
Не присваивай current до проверки доступности. Сначала проверь цель в списке переходов.
Домашняя часть
Добавь ещё один переход и проверь допустимый и запрещённый маршрут.
После базы: Собери короткий маршрут из трёх последовательных переходов вручную.
Если появилась ошибка
Traceback — сообщение Python об ошибке. Сначала прочитай его последнюю строку и найди номер строки своего файла. Повтори только тот маленький шаг, на котором возникла ошибка; после исправления снова запусти тот же проверочный случай. Если используешь ИИ, сохрани собственную попытку и попроси одну подсказку, а не готовое решение.