Новый уровень
Каждая победа делает героя сильнее. В ролевых играх герои копят очки опыта, или XP, и с достаточным их числом переходят на следующий уровень. Три новые переменные хранят числа: heroXp — сколько XP у героя до боя, xpPerLevel — сколько XP нужно на один уровень, а dragonXp — сколько XP герой получает за победу над драконом. Проигравший герой не получает ничего.
Герой начинает с 1-го уровня и повышается на один уровень за каждые 500 XP: с 0–499 XP он на 1-м уровне, с 500–999 XP — на 2-м, и так далее. Перед боем у героя 2350 XP, это 5-й уровень. Победа приносит 400 XP, всего получается 2750, а это уже 6-й уровень.
В конце программа выводит ещё две строки: XP героя после боя и уровень героя. Если бой поднял героя на новый уровень, после уровня стоит (новый уровень!). Для нашего героя вывод заканчивается так:
Победил герой. Осталось здоровья: 16
XP: 2750
Уровень: 6 (новый уровень!)Упражнение проверяет и другие бои: при heroXp = 2000 у героя в конце 2400 XP, это по-прежнему 5-й уровень, так что последняя строка — просто Уровень: 5. А без брони герой проигрывает, остаётся при своих 2350 XP и тоже остаётся на 5-м уровне.
Это весь проект. Всего за три урока вы написали сердце игры: она считает с помощью переменных, принимает решения с помощью условий и выводит понятный отчёт о бое. В следующем уроке вы познакомитесь с векторами, которые хранят много значений в одной переменной, например здоровье каждого монстра в подземелье.
Задание
- 1
Выведите, сколько XP у героя после боя.
- 2
Ниже выведите уровень героя. Если бой поднял героя на новый уровень, добавьте
(новый уровень!), как в примере.