Создайте новый репл.
Сегодня мы будем писать игровой процесс битвы с драконом. Давайте для начала создадим нашего героя. Подумайте какими свойствами должен обладать наш персонаж. Для начала, придумайте имя и сохраните в переменную hero_name.
Какими ещё свойствами должен обладать наш герой? Наверняка нам понадобится переменная, которая хранит в себе текущий уровнь здоровья и силу атаки.
Теперь создадим дракона с которым будет биться наш рацарь.
Пришло время атаковать. Как написать код, который будет имитировать атаку дракона?
Правильно, необходимо уменьшить показатель здоровья на уровень атаки героя.
hero_hp.hp -= dragon_attack
После того как дракон произвёл атаку, теперь должен атаковать рыцарь. Напишите код атаки рыцаря самостоятельно. После каждой атаки выводите на экран информацию о текущем состоянии здоровья атакуемого.
Что дальше? А дальше всё повторяется по кругу, дракон атакует рыцаря, рыцарь атакует в ответ. Значит необходим цикл. Подумайте какой цикл лучше здесь использовать и почему?
Я за основу взял бесконечный цикл while. Поскольку, на данном этапе я не могу точно сформулировать условие для проверки циклом, просто напишем while True:
. Поместим весь ранее написанный код внутрь цикла.
Возможно вы уже догадались, что наша битва никогда не закончится если мы её сейчас запустим и наши герои будут биться вечно! Давайте попробуем это поправить. Сначала атакует дракон, затем рыцарь. Если после атаки дракона, здоровье рыцаря стало 0 или меньше, может ли он произвести ответную атаку? Нет, и нам необходимо завершить выполнение цикла используя ключевое слово break.
Аналогичный код проверки здоровья напишите после атаки рыцаря. Чтобы один ход в командной строке визуально отделить другого я использовал пустой print() в конце итерации.
- Самостоятельно добавьте счётчик хода, чтобы на экран выводилась информация о том, какой по счёту сейчас ход.
- Добавьте код после выхода из цикла, который выводит на экран имя победителя и то, за сколько ходов была одержана победа.
- Измените значения показателей атаки дракона и героя, так, чтобы они устанавливались в случайное значение. А теперь сделайте так, чтобы показатель атаки героя и дракона менялись на каждом ходу.
- В начале игры спросите у пользователя: «Кто победит в этой схватке? 1 — Дракон! 2 — Рыцарь!». А в конце игры сообщите, прав ли пользователь.
Ссылка на проект https://replit.com/@Koddom/OZONbattlewithDragon#main.py