Вам требуется разработать программу-игру, которая симулирует битву между героем и драконом. Информация о ходе битвы

Вам требуется разработать программу-игру, которая симулирует битву между героем и драконом. Информация о ходе битвы должна выводиться в консоль. Программа должна быть постепенно создаваема, с добавлением новых функций на каждом этапе. Для успешного выполнения задания на 100% необходимо выполнить условия всех уровней, за исключением бонуса. Бонус будет засчитан только в случае выполнения всех остальных этапов. Поэтому сначала сосредоточьтесь на основном коде, а затем приступайте к выполнению бонусов, если у вас осталось время. Все указания на каждом этапе должны быть выполнены. Начальные данные: dragon = { "hp": 2000, # количество жизней, запас
Паук

Паук

Уровень 1: Создание базовой программы

Для начала, нам необходимо создать основу программы, которая будет имитировать битву между героем и драконом. Мы можем использовать язык программирования Python для этого задания.

1) Импортируем необходимые модули и библиотеки:

python
import random


2) Создаем классы для героя и дракона:

python
class Hero:
def __init__(self, name):
self.name = name
self.health = 100
self.damage = 10

def attack(self, dragon):
attack_damage = random.randint(1, self.damage)
dragon.receive_damage(attack_damage)
print(f"{self.name} атакует дракона и наносит {attack_damage} урона.")

def receive_damage(self, damage):
self.health -= damage
if self.health <= 0:
self.health = 0
print(f"{self.name} погиб.")

def is_alive(self):
return self.health > 0


class Dragon:
def __init__(self, name):
self.name = name
self.health = 200
self.damage = 20

def attack(self, hero):
attack_damage = random.randint(1, self.damage)
hero.receive_damage(attack_damage)
print(f"{self.name} атакует героя и наносит {attack_damage} урона.")

def receive_damage(self, damage):
self.health -= damage
if self.health <= 0:
self.health = 0
print(f"{self.name} погиб.")

def is_alive(self):
return self.health > 0


3) Создаем основной код программы:

python
def battle(hero, dragon):
while hero.is_alive() and dragon.is_alive():
hero.attack(dragon)
if not dragon.is_alive():
break
dragon.attack(hero)

if hero.is_alive():
print(f"{hero.name} победил!")
else:
print(f"{dragon.name} победил!")


# Тестирование программы
hero = Hero("Герой")
dragon = Dragon("Дракон")
battle(hero, dragon)


Теперь у нас есть базовая программа, которая создает героя и дракона, выполняет битву между ними и выводит результат в консоль.

Уровень 2: Добавление возможности выбора способности для героя

1) Добавим класс "Способность" для определения способностей героя:

python
class Ability:
def __init__(self, name, damage):
self.name = name
self.damage = damage

def use(self, dragon):
attack_damage = random.randint(1, self.damage)
dragon.receive_damage(attack_damage)
print(f"{self.name} атакует дракона и наносит {attack_damage} урона.")


class Hero:
def __init__(self, name):
self.name = name
self.health = 100
self.abilities = [
Ability("Удар мечом", 10),
Ability("Огненный шар", 20),
Ability("Стрела молнии", 30)
]

def attack(self, dragon):
ability = random.choice(self.abilities)
ability.use(dragon)

# ... остальной код ...


2) Теперь мы добавили три способности героя: "Удар мечом", "Огненный шар" и "Стрела молнии". При каждой атаке герой будет случайным образом выбирать одну из этих способностей и использовать ее против дракона.

Уровень 3: Добавление бонуса - использование зелья лечения

1) Добавим класс "Зелье лечения" для возможности героя лечиться во время битвы:

python
class HealingPotion:
def __init__(self):
self.heal_amount = 20

def use(self, hero):
hero.heal(self.heal_amount)
print(f"{hero.name} использовал зелье лечения и восстановил {self.heal_amount} здоровья.")


class Hero:
def __init__(self, name):
self.name = name
self.health = 100
self.abilities = [
Ability("Удар мечом", 10),
Ability("Огненный шар", 20),
Ability("Стрела молнии", 30)
]
self.potions = [
HealingPotion(),
HealingPotion()
]

# ... остальной код ...

def heal(self, amount):
self.health += amount
if self.health > 100:
self.health = 100


2) Теперь у героя есть два зелья лечения. Он может использовать их во время битвы для восстановления здоровья.

Теперь у нас есть полная программа, которая создает героя, дракона, позволяет выбирать способности героя и использовать зелья лечения. Эта программа успешно симулирует битву между героем и драконом и выводит информацию о ходе битвы в консоль.
Знаешь ответ?
Задать вопрос
Привет!
hello