[iOS Apps] Домашно OOP Principles


4
Условие:
1. Implement classes for a simple Mortal Kombat game: 
  • Create characters that have name, set of skills, life and power
  • Characters can punch, kick or use a skill
  • Different characters have different skills
  • Use protocols and inheritance
  • Use abstraction, encapsulation and polymorphism
  • Write a method to test the functionality
 
Ето моето решение.
 
Направил съм следната йерархия:
  • протоколи: MKFighter и MKLiving
  • базов клас: MKCharacter, който имплементира MKFighter и MKLiving
  • наследници: MKNinja, MKSorcerer, MKEnforcer, MKCyborg и MKCryomancer
 
MKFighter има методи punch и kick, и property power. MKLiving има property life и метод isAlive. MKCharacter си има име. Всеки от петте наследници си има по един специфичен само за него метод. Резултата от изпълнението на main е:
 
Black Ninja became invisible.
Robocop cyborg-punched Cryo.
Cryo froze Robocop.
Saruman cast spell on Black Ninja.
 
 



Отговори



0

Направих протокол FightingAcion, разширен с още два протокола - за SkillAction и PhysicalAction, където поведението се променя.

Два класа имплементират действия за Skill и Physical, като kick и punch са по подразбиране за всеки Fighter. Направих го така за да може да се добави и комбо (колекция от kick-ове и punch-ове) за доимплементиране :).

Решение


от bboyadzheiv (65 точки)