Описание:
Вы — оператор космической станции, управляющий различными типами дронов. Ваша задача — создать программу на Python, которая моделирует их поведение.
Типы дронов:
-
Разведчики (ScoutDrone
) — исследуют территорию.
-
Транспортники (CargoDrone
) — перевозят грузы.
-
Охранники (GuardDrone
) — защищают станцию.
Требования:
Базовый класс Drone содержит
-
Приватные атрибуты:
-
name
(имя дрона)
-
battery
(уровень заряда, 0–100)
-
status
("готов", "занят", "разряжен")
-
type
(тип дрона: "разведчик", "транспортник", "охранник")
-
Конструктор, который создает объект Дрон по разным входным параметрам:
-
Drone(name)
— создает дрон с battery=100
, status="готов"
, type="неизвестно"
.
-
Drone(name, battery)
— проверяет, что battery
в диапазоне 0–100, иначе ставит 100.
-
Drone(other_drone)
— копирует имя, сбрасывает заряд в 100, меняет тип.
-
Методы:
-
get_name()
— возвращает имя.
-
get_battery()
— возвращает заряд.
-
get_status()
— возвращает статус.
-
get_type()
— возвращает тип.
-
fly()
— уменьшает заряд на 15, если status="готов"
, иначе выводит "Не может летать: [причина]". Дрон не может летать, если статус "занят" или "разряжен" или задряд батареи меньше 15.
-
recharge()
— восстанавливает заряд до 100, статус = "готов".
-
Вывод информации о дроне:
По строке print(object_drone)
должна выводиться следующая инфомрация (object_drone
- переменная, в которой хранится ссылка на объект, название переменной может быть любым)
Дрон <name>
Тип: <type>
Статус: <status>
Заряд: <battery>%
- Подзарядка дрона:
По строке object_drone = object_drone + целое_число зарядк дрона должен увеличиваться на величину равную целому числу.
Дочерние классы
Каждый класс должен:
-
Переопределить fly()
, чтобы сначала вызывался родительский метод, затем свой.
-
Добавлять уникальное действие:
-
ScoutDrone: "Дрон <name> сканирует территорию"
-
CargoDrone: "Дрон <name> доставляет груз"
-
GuardDrone: "Дрон <name> патрулирует сектор"
Если статус "разряжен"
, выводить "Дрон <name> разряжен и не может действовать"
.
Реализуйте ТОЛЬКО указанные классы. Основную часть программы по использованию данного класса писать не нужно.