Егор считает ооп великолепным подходом к программированию различных систем. сегодня он хочет, чтобы вы начали разрабатывать основу для 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
Ответы на вопрос:
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
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
хомячок4828.07.2020 20:10
-
turansalehova19.07.2022 03:51
-
Филипсия23.02.2021 20:11
-
dedovdima1425.06.2021 12:20
-
rbhz08.08.2021 01:35
-
coolparschin2011.08.2022 12:41
-
natusestfons18.12.2021 18:32
-
Кира431115.04.2023 18:28
-
tkstkn27.07.2020 08:17
-
STAS22891765432111.03.2021 16:10
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.