Егор считает ооп великолепным подходом к программированию различных систем. сегодня он хочет, чтобы вы начали разрабатывать основу для pyrpg (python role-playing game). представьте себе мир, в котором у игроков есть четыре основных характеристики: сила (strength), ловкость (agility), интеллект (intelligence) и скорость атаки (speed). по умолчанию у каждого героя (player) игры все характеристики равны нулю. в игре используется оружие (weapon), которое при ношении накладывает определённый эффект на игрока. перед вами стоит создать два класса weapon и player, описывающие данную механику. класс weapon описывает оружие. конструктор класса weapon должен иметь вид: weapon(one_handed, strength, agility, intelligence, speed). параметры strength, agility, intelligence, speed описывают силу, ловкость, интеллект и скорость атаки оружия соответственно и являются необязательными. параметр one_handed описывает флаг «одноручности» оружия, также является необязательным и имеет значение по умолчанию true. класс weapon должен иметь методы: is_one_handed() — возвращает true, если оружие является «одноручным», иначе — false; strength() — возвращает силу, получаемую от оружия; agility() — возвращает ловкость, получаемую от оружия; intelligence() — возвращает интеллект, получаемый от оружия; speed() — возвращает скорость атаки, получаемую от оружия; copy() — возвращает копию оружия. над объектами класса weapon должна быть возможность производить следующие действия: weapon * number — создаёт копию оружия с увеличенной в number раз скоростью атаки; weapon *= number — увеличивает скорость атаки оружия в number раз; weapon1 + weapon2 — создаёт новое оружие, суммируя параметры переданных оружий. новое оружие является «двуручным». weapon1 += weapon2 — изменяет первое оружие, суммируя параметры переданных. первое оружие становится «двуручным». str(weapon) — возвращает строковое представление оружия в виде: «weapon[n](strength: st, agility: a, intelligence: intel, speed: sp)», где n = 1, если оружие «одноручное» и n = 2, если «двуручное». класс player описывает игрока. конструктор класса player должен иметь вид: класс player должен иметь методы: strength() — возвращает силу героя, суммируя силу всех оружий; agility() — возвращает ловкость героя, суммируя ловкость всех оружий; intelligence() — возвращает интеллект героя, суммируя интеллект всех оружий; speed() — возвращает скорость атаки героя, вычисляемую как целочисленное среднее арифметическое всех оружий; take_up_weapon(weapon) — добавляет копию оружия герою. игрок может держать одновременно либо два «одноручных» оружия, либо одно «двуручное». если герой не может взять в руки ещё одно оружие, то он сбрасывает одно или два оружия (самое старое); throw_a_weapon() — скидывает всё оружие игрока. над объектами класса player должна быть возможность производить следующие операции: player < < weapon — добавляет копию оружия герою. игрок может держать одновременно либо два «одноручных» оружия, либо одно «двуручное». если герой не может взять в руки ещё одно оружие, то он сбрасывает одно или два оружия (самое старое); -player — скидывает всё оружие игрока; str(player) — возвращает строку, описывающую игрока в формате: player[n]( strength: st, agility: ag, intelligence: intel, speed: sp ) где n — количество оружий у игрока.
2. Для локальной сети подойдет витая пара, как наиболее экономически целесообразная в локальной сети, коаксиальный кабель считает устаревшим, с узкой полосой пропускания, wi-fi может быть использован, если площадь здания небольшая, а коэффициент поглощения радиоволн стенами минимален.
3. В обсерватории подойдет спутниковый канал связи, поскольку тарелку на спутник возможно настроить, но для относительно медленных соединения может быть использован радиоканал.
4. поскольку завод секретный, использовать радиоканалы не безопасно. Подойдет оптоволоконная линия и витая пара, имеющие наиболее высокую пропускную
5 Радиовещательные компании ведут трансляцию по коаксиальному кабелю, поскольку в большинстве случает не требуется высокая скорость для передачи звука, но в то же время требуется помехозащищенность, но в зависимости от расположения передающего центра и абонентов, могут быть использованы любые трансляции за исключением телефонной линии.