|
3 / 3 / 0
Регистрация: 11.04.2019
Сообщений: 7
|
||||||
Класс Weapon для оружия28.04.2019, 13:52. Показов 10518. Ответов 1
Метки нет (Все метки)
Здравствуйте.
Задача: Реализуйте класс Weapon для оружия, который при инициализации должен принимать имя оружия name, наносимый урон damage, а также радиус, на котором оружие может достать до врага – range. В классе Weapon должны быть реализованы следующие методы: hit(actor, target) – удар персонажем actor персонажа target. Метод должен проверять, жив ли персонаж target, если нет, то выводить сообщение «Враг уже повержен», иначе должна проводится проверка расстояния от actor до target. Если расстояние больше range оружия, тогда надо выводить сообщение «Враг слишком далеко для оружия <name>». В случае, если target жив и оружие имеет достаточный range, вывести сообщение «Врагу нанесен урон оружием <name> в размере <damage>» и нанести урон target. приведение к строке – при приведении к строке должно возвращаться имя оружия. Реализуйте класс BaseCharacter для создания базовых персонажей, который при инициализации должен принимать pos_x и pos_y – позицию персонажа в мире, hp – количество жизней персонажа. Класс BaseCharacter должен реализовывать методы: move(delta_x, delta_y) – для перемещения персонажа на delta_x и delta_y в игровом мире. is_alive() – проверка, жив ли персонаж. Возвращает True, если жив, иначе – False. get_damage(amount) – убавляет количество жизней персонажа на amount. При достижении 0 или отрицательного значения персонаж считается мёртвым. get_coords() – возвращает кортеж с текущими координатами персонажа. Реализуйте класс BaseEnemy для создания противников, который расширяет класс BaseCharacter. При инициализации он должен принимать pos_x и pos_y – позицию персонажа в мире, weapon – оружие, hp – количество жизней персонажа. Класс должен использовать инициализатор BaseCharacter. Класс BaseEnemy должен реализовывать следующие методы: hit(target) – для удара персонажа target. Метод должен позволять ударить только персонажа класса MainHero. Для всех других классов должно печататься сообщение «Могу ударить только Главного героя». приведение к строке – при приведении к строке должно возвращаться «Враг на позиции (<pos_x>, <pos_y>) с оружием <weapon>» Реализуйте класс MainHero для создания главного героя, который расширяет класс BaseCharacter. При инициализации он должен принимать pos_x и pos_y – позицию персонажа в мире, name – имя персонажа, hp – количество жизней персонажа. Класс должен использовать инициализатор BaseCharacter. Класс MainHero должен реализовывать следующие методы: hit(target) – для удара персонажа target. Метод должен проверять, есть ли у персонажа оружие, если его нет выводить - «Я безоружен», иначе позволять ударить только персонажа класса BaseEnemy. Для всех других классов должно печататься сообщение «Могу ударить только Врага». add_weapon(weapon) – добавляет оружие в инвентарь персонажа, если это оружие единственное, то оно должно экипироваться сразу же. Метод должен печатать: «Подобрал <weapon>». Метод должен работать только для переданных объектов класса Weapon, для всего остального он должен печатать сообщение «Это не оружие». next_weapon() – для смены оружия. Если оружия нет, то должно выводиться «Я безоружен», если есть только одно оружие – «У меня только одно оружие», иначе должна производиться смена оружия на следующее (в порядке подбора, по кругу) и выводиться сообщение «Сменил оружие на <weapon>». heal(amount) – для повышения количества жизней персонажа на amount. При этом максимальный уровень здоровья главного героя – 200. Тажже должно выводиться сообщение «Полечился, теперь здоровья <hp>». Пример Ввод from solution import * weapon1 = Weapon("Короткий меч", 5, 1) weapon2 = Weapon("Длинный меч", 7, 2) weapon3 = Weapon("Лук", 3, 10) weapon4 = Weapon("Лазерная орбитальная пушка", 1000, 1000) princess = BaseCharacter(100, 100, 100) archer = BaseEnemy(50, 50, weapon3, 100) armored_swordsman = BaseEnemy(10, 10, weapon2, 500) archer.hit(armored_swordsman) armored_swordsman.move(10, 10) print(armored_swordsman.get_coords()) main_hero = MainHero(0, 0, "Король Артур", 200) main_hero.hit(armored_swordsman) main_hero.next_weapon() main_hero.add_weapon(weapon1) main_hero.hit(armored_swordsman) main_hero.add_weapon(weapon4) main_hero.hit(armored_swordsman) main_hero.next_weapon() main_hero.hit(princess) main_hero.hit(armored_swordsman) main_hero.hit(armored_swordsman) Вывод Могу ударить только Главного героя (20, 20) Я безоружен Я безоружен Подобрал Короткий меч Враг слишком далеко для оружия Короткий меч Подобрал Лазерная орбитальная пушка Враг слишком далеко для оружия Короткий меч Сменил оружие на Лазерная орбитальная пушка Могу ударить только врага Врагу нанесен урон оружием Лазерная орбитальная пушка в размере 1000 Враг уже повержен Мой код:
0
|
||||||
| 28.04.2019, 13:52 | |
|
Ответы с готовыми решениями:
1
Нужно написать класс Weapon с инициатором Реализуйте класс Weapon для оружия Редактор оружия для GTA vice city |
|
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
|
|
| 28.04.2019, 17:36 | |
|
посмотрите Заготовка для игры
0
|
|
| 28.04.2019, 17:36 | |
|
Помогаю со студенческими работами здесь
2
Мне нужно написать скрипт для Unity характеристики для каждого оружия OnClick для оружия FPS Анимации для персонажа и оружия Создание оружия для FPS шутера Система бонусов для брони/оружия Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|