Skip to content

sp00n8/ob04

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ob04

Цель: Цель этого домашнего задание - закрепить понимание и навыки применения принципа открытости/закрытости (Open/Closed Principle), одного из пяти SOLID принципов объектно-ориентированного программирования. Принцип гласит, что программные сущности (классы, модули, функции и т.д.) должны быть открыты для расширения, но закрыты для модификации.

Задача: Разработать простую игру, где игрок может использовать различные типы оружия для борьбы с монстрами. Программа должна быть спроектирована таким образом, чтобы легко можно было добавлять новые типы оружия, не изменяя существующий код бойцов или механизм боя.

Исходные данные:

Есть класс Fighter, представляющий бойца. Есть класс Monster, представляющий монстра. Игрок управляет бойцом и может выбирать для него одно из вооружений для боя. Шаг 1: Создайте абстрактный класс для оружия

Создайте абстрактный класс Weapon, который будет содержать абстрактный метод attack(). Шаг 2: Реализуйте конкретные типы оружия

Создайте несколько классов, унаследованных от Weapon, например, Sword и Bow. Каждый из этих классов реализует метод attack() своим уникальным способом. Шаг 3: Модифицируйте класс Fighter

Добавьте в класс Fighter поле, которое будет хранить объект класса Weapon. Добавьте метод changeWeapon(), который позволяет изменить оружие бойца. Шаг 4: Реализация боя

Реализуйте простой механизм для демонстрации боя между бойцом и монстром, исходя из выбранного оружия. Требования к заданию:

Код должен быть написан на Python. Программа должна демонстрировать применение принципа открытости/закрытости: новые типы оружия можно легко добавлять, не изменяя существующие классы бойцов и механизм боя. Программа должна выводить результат боя в консоль. Пример результата:

Боец выбирает меч.

Боец наносит удар мечом.

Монстр побежден!

Боец выбирает лук.

Боец наносит удар из лука.

Монстр побежден!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages