Тестовое задание по направлению Программирование
Написать прототип игры, пошагового автобаттлера, в котором игрок только создаёт и прокачивает
персонажа, а бои проходят автоматически.
Язык выполнения - любой. Визуальное оформление - на усмотрение кандидата. Можно сделать и обычное
консольное приложение.
Основной цикл игры
1. В начале игрок выбирает класс персонажа (воин, варвар или разбойник).
2. Персонаж сражается со случайным монстром:
• Бои идут в пошаговом режиме.
• Персонаж и монстр атакуют по очереди, пока у кого-то из них здоровье не достигнет 0.
3. Если персонаж победил, он повышает уровень, его здоровье восстанавливается до максимума и
ему предлагается заменить его текущее оружие на то, что выпало из монстра.
4. Если персонаж проиграл - игроку предлагается создать нового персонажа. Возврат к пункту 1.
5. Если персонаж победил 5 монстров подряд - сообщаем игроку, что игра пройдена.
Создание персонажа
У персонажа есть 3 атрибута:
• Сила: значение силы прибавляется к урону от оружия.
• Ловкость: повышает шанс попасть или уклониться от атаки. Подробнее - в разделе Бой.
• Выносливость: значение выносливости прибавляется к здоровью при каждом повышении уровня.
У нового персонажа они равны случайному числу от 1 до 3 включительно.
В начале игры игрок выбирает класс персонажа.
Таблица классов
Здоровье Начальное
Класс Бонус на 1 уровне Бонус на 2 уровне Бонус на 3 уровне
за уровень оружие
Яд:
Скрытая атака:
Наносит
Разбойник 4 Кинжал +1 к урону если Ловкость +1 дополнительные +1
ловкость персонажа урона на втором
выше ловкости цели ходу, +2 на третьем
и так далее.
Щит:
Порыв к действию:
Воин 5 -3 к получаемому Сила +1
Меч В первый ход наносит
урону если сила
двойной урон
персонажа выше
оружием
силы атакующего
Каменная кожа:
Ярость:
Варвар 6 Получаемый урон Выносливость +1
Дубина
+2 к урону в первые 3 снижается на
хода, потом -1 к урону значение
выносливости
Таблица оружия
Название Урон Тип урона
Меч 3 Рубящий
Дубина 3 Дробящий
Кинжал 2 Колющий
Топор 4 Рубящий
Копье 3 Колющий
Легендарный Меч 10 Рубящий
Пример
Игроку выпали начальные статы: Сила 1, Ловкость 3, Выносливость 2. Он выбирает класс "Разбойник": у
него 6 единиц здоровья (4 за 1 уровень разбойника и 2 от выносливости), он вооружён кинжалом, которым
наносит 3 единицы колющего урона за атаку (2 единицы от самого кинжала + 1 от силы) , а также его урон
повышается на 1 если у его цели ловкость ниже чем у него самого.
Бой
Для каждого боя выбирается случайный противник из списка:
Урон Награда за
Противник Здоровье Сила Ловкость Выносливность Особенности
оружия победу
Гоблин 5 2 1 1 1 Кинжал
Получает вдвое
больше урона, если
Скелет 10 2 2 2 1 Дубина
его бьют дробящим
оружием
Рубящее оружие не
наносит ему урона
(но урон от силы и
Слайм 8 1 3 1 2 прочих Копье
особенностей, даже
"порыва к действию"
воина, работает)
Есть способность
"скрытая атака", как
Призрак 6 3 1 3 1 Меч
у разбойника 1-го
уровня
Есть способность
"каменная кожа",
Голем 10 1 3 1 3 Топор
как у Варвара 2-го
уровня
Каждый 3-й ход
дышит огнём,
Легендарный
Дракон 20 4 3 3 3 нанося
Меч
дополнительно 3
урона
Бой идёт по ходам, персонаж и монстр атакуют друг друга по очереди. Первым ходит тот, у кого выше
ловкость. Если она одинаковая, то первым ходит персонаж.
1. При атаке сначала вычисляется шанс попадания: берётся случайное число от единицы до суммы
ловкости атакующего и цели. Если это число меньше или равно ловкости цели - атака промахнулась.
2. Если атака попала, то считается изначальный урон: это урон оружия атакующего + его сила.
3. Применяются все эффекты на атаки у атакующего (Порыв к действию, Ярость и другие).
4. Применяются все эффекты на урон цели (Каменная кожа, Щит и другие).
5. Если итоговый урон больше 0 - его значение вычитается из здоровья цели.
6. Если здоровье цели опустилось до 0 или ниже - бой заканчивается победой атакующего.
7. Если цель выжила, то теперь её очередь атаковать. Переходим к пункту 1.
После боя
После каждого боя здоровье персонажа восстанавливается до максимума. Затем игроку предлагают
повысить уровень персонажа. Как и в "серьёзных" RPG, у нас есть возможность мультикласса: при
повышении уровня игрок может выбрать не только тот класс, с которым он начал игру, но и любой
другой. Тогда он получит +1 уровень в этом классе, и все бонусы от этого уровня. Максимальный
суммарный уровень персонажа - 3. Когда он достигнут, игроку больше не предлагают повысить уровень,
после боя только восстанавливается здоровье.
Например, если игрок в начале выбрал варвара, а после победы над первым монстром выбрал воина, то
его персонаж теперь - варвар 1 / воин 1. В первый ход он наносит и дополнительный урон, равный урону
его оружия (бонус 1-го уровня воина), и +2 урона от ярости варвара.