Описание:
Вы — оператор космической станции, управляющий различными типами дронов. Ваша задача — создать программу на 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> разряжен и не может действовать".
Реализуйте ТОЛЬКО указанные классы. Основную часть программы по использованию данного класса писать не нужно.