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

Занятие 46. Баланс и регрессионное тестирование

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

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

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

Исходные данные: Начни с значений из минимального примера. Творческие изменения выполняй только после базовой проверки.

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

Занятие 46 посвящено теме «Баланс и регрессионное тестирование». Здесь этот навык применяется не как отдельное упражнение, а как часть общей текстовой RPG. Баланс удобно описывать числовыми правилами. Оператор // выполняет целочисленное деление; формула (enemy_hp + damage - 1) // damage считает число ударов при положительном damage. В этом упражнении damage всегда > 0.

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

def hits_to_win(enemy_hp,damage):
    return (enemy_hp+damage-1)//damage
print("7 HP, урон 3:",hits_to_win(7,3))
print("10 HP, урон 5:",hits_to_win(10,5))
print("1 HP, урон 3:",hits_to_win(1,3))

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

Практика

Правило 1: противник 7 HP при уроне 3 требует 3 удара. Правило 2: 10 HP при уроне 5 — 2 удара. Правило 3: 1 HP при уроне 3 — 1 удар. После изменения баланса повтори старые игровые сценарии.

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

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

Нет очевидно непроходимого обязательного сценария; старые функциональные тесты проходят; изменение параметров можно объяснить числами.

Как проверить: Таблица до/после содержит минимум три числовых случая и результат регрессионного запуска версии игры.

Что сдать

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

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

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

Не меняй сразу пять параметров. Меняй один, фиксируй причину и повторяй одинаковые сценарии.

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

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

После базы: Сравни результаты до и после одного изменения баланса в таблице.

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

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