Есть ответ 👍

Егор считает ооп великолепным подходом к программированию различных систем. сегодня он хочет, чтобы вы начали разрабатывать основу для 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 — количество оружий у игрока.

248
387
Посмотреть ответы 1

Ответы на вопрос:


Using system; internal class program {       private static void main()       {               console.writeline(dosomething("как тебе живется", "цчхб"));               console.writeline(dosomething("как тебе живется", "цчх"));               console.writeline(dosomething("как тебе живется", "цчхи"));               console.writeline(dosomething("как тебе живется", "цчахбаек"));               console.writeline("программа оконченна");               console.readkey();       }       private static string dosomething(string st1, string st2)       {               console.writeline();               //console.writeline($"{st1} -  {st2}");               var i = 0;               for (var j = 0; j < st1.length; j++)               {                       //console.writeline($"st1[{j}] = {st1[j]} {! st2.contains(st1[j].}");                       if (! st2.contains(st1[j]. continue;                       i = j;                       break;               }               if (i == 0) return "нет совпадений";               var s = st1.lastindexof(" ", i, stringcomparison.ordinal) > 0                       ? st1.substring(0, st1.lastindexof(" ", i, stringcomparison.ordinal))                       : "";               s = s +                       (st1.indexof(" ", i, stringcomparison.ordinal) > 0                               ? st1.substring(st1.indexof(" ", i, stringcomparison.ordinal))                               : "");               return "искомый символ - " + st1[i] + "\n" + s.trim();       } }

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS