Олимпиадный тренинг

Задача . Управление космическими дронами


Задача

Темы:

Описание:
Вы — оператор космической станции, управляющий различными типами дронов. Ваша задача — создать программу на Python, которая моделирует их поведение.

Типы дронов:

  • Разведчики (ScoutDrone) — исследуют территорию.

  • Транспортники (CargoDrone) — перевозят грузы.

  • Охранники (GuardDrone) — защищают станцию.

Требования:

Базовый класс Drone содержит

  • Приватные атрибуты:

    • name (имя дрона)

    • battery (уровень заряда, 0–100)

    • status ("готов", "занят", "разряжен")

    • type (тип дрона: "разведчик", "транспортник", "охранник")

  • Конструктор, который создает объект Дрон по разным входным параметрам:

    1. Drone(name) — создает дрон с battery=100status="готов"type="неизвестно".

    2. Drone(name, battery) — проверяет, что battery в диапазоне 0–100, иначе ставит 100.

    3. 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 + целое_число зарядк дрона должен увеличиваться на величину равную целому числу.


Дочерние классы

Каждый класс должен:

  1. Переопределить fly(), чтобы сначала вызывался родительский метод, затем свой.

  2. Добавлять уникальное действие:

    • ScoutDrone"Дрон <name> сканирует территорию"

    • CargoDrone"Дрон <name> доставляет груз"

    • GuardDrone"Дрон <name> патрулирует сектор"

Если статус "разряжен", выводить "Дрон <name> разряжен и не может действовать".



Реализуйте ТОЛЬКО указанные классы. Основную часть программы по использованию данного класса писать не нужно.


time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя