Есть огры, гоблины и овцы. Огры могут есть только гоблинов и овец. Гоблины могут есть только друг друга и овец. Все могут драться. Огры и гоблины могут пользоваться оружием. Если кто-то пытается съесть кого-то, то он становится агрессором, а другая сторона - обороняющимся. При этом происходит драка. Попытка съесть считается успешной, если все участники противоположной стороны погибли в драке. На исход драки влияет раса участников, их количество и оружие. Конкретная реализация драки на усмотрение кандидата.
С помощью разработанной модели реализуйте ситуации:
- Гоблин съел овцу
- Два гоблина подрались из-за овцы. Победитель съел овцу.
- Огр попытался съесть группу гоблинов, но не смог.
- Группа огров успешно съели группу гоблинов.
- Два огра попытались съесть гоблина с волшебным мечом, но не смогли.
- Стадо овец и группа гоблинов дерётся с двумя ограми и побеждает.
Разрешается самостоятельно уточнять исходные условия, но все уточнения должны быть явно оговорены перед решением.
Критерии оценки:
- Читаемость и простота кода
- Лёгкость расширения (новые расы, новое оружие, новые взаимодействия).
- Лёгкость усложнения механики (новые эффекты оружия, рас, логики взаимодействий)
- Следование DDD и SOLID