← маршрут 1–48 · личный кабинет

Занятие 22. Практика: система сражения — тестирование

45 минут учебной работыиндивидуальнотекстовая RPG

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

Что открыть: Открой рабочую версию проекта после занятия 21. Демонстрационный lesson-22.py используй как отдельный маленький пример.

Исходные данные: Два отдельных запуска/блока с заданными числами; не требуется вложенный список сценариев.

Что нужно понять

Занятие 22 посвящено теме «Практика: система сражения — тестирование». Здесь этот навык применяется не как отдельное упражнение, а как часть общей текстовой RPG. Тестирование боя — это повторить один алгоритм на разных начальных значениях. Пока проверяем два сценария отдельными запусками. На следующем занятии познакомимся со списками.

Минимальный пример

# Сценарий A
hero_hp=10; enemy_hp=6
while hero_hp>0 and enemy_hp>0:
    enemy_hp=max(0,enemy_hp-3)
    if enemy_hp>0:
        hero_hp=max(0,hero_hp-2)
print("A:",hero_hp,enemy_hp)

# Сценарий B
hero_hp=5; enemy_hp=10
while hero_hp>0 and enemy_hp>0:
    enemy_hp=max(0,enemy_hp-3)
    if enemy_hp>0:
        hero_hp=max(0,hero_hp-2)
print("B:",hero_hp,enemy_hp)

Скачать демонстрационный .py-файл

Практика

Проведи два отдельных сценария одной логики боя: A — герой 10 HP против врага 6 HP; B — герой 5 HP против врага 10 HP. Урон героя 3, врага 2.

Связь с проектом: После базового упражнения перенеси изученный приём в рабочую версию проекта и сохрани версию после занятия 22.

Критерий проверки

Сценарий A завершается победой героя, сценарий B — поражением героя. В обоих случаях HP не становится отрицательным.

Как проверить: A: hero=10, enemy=6. B: hero=5, enemy=10. До запуска назови ожидаемого победителя.

Что сдать

Сдай рабочую версию проекта после занятия 22 и короткий протокол проверки: входные данные → ожидалось → получилось.

Если нужна поддержка: Если задача не запускается целиком, выполни один шаг отдельно и объясни, что должно измениться до следующего шага.

Типичное затруднение

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

Домашняя часть

Добавь граничный сценарий, где участнику хватает ровно одного удара до победы.

После базы: Запиши ожидаемого победителя для каждого сценария до запуска и сравни с фактом.

Если появилась ошибка

Traceback — сообщение Python об ошибке. Сначала прочитай его последнюю строку и найди номер строки своего файла. Повтори только тот маленький шаг, на котором возникла ошибка; после исправления снова запусти тот же проверочный случай. Если используешь ИИ, сохрани собственную попытку и попроси одну подсказку, а не готовое решение.