Skip to content

Latest commit

 

History

History

week9

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Упражнение №9 - Наследяване Evolved

Задача 1

Сутрин е. Нямате търпение да разберете оценката от домашното. Припряно въвеждате наново потребителското име и парола, влизате през девет линка в десети, само и само за да видите, че асистентът ви още не е нанесъл оценката. Омръзнало ви е. Искате да си направите собствен Moodle. Гладни сте. Отваряте хладилника. Решавате да го кръстите Noodle.

Всички потребители в Noodle трябва да имат потребителско име. Преподавателите трябва да могат да се асоциират с катедрата, в която работят. На студентите трябва да им се пазят факултетния номер, годината и номера на групата, в която са.

Направете възможно да има потребителски профили едновременно от тип "преподавател" и от тип "студент". Как се справяме с този специфичен проблем?

Задача 2

Наели са ви да работите за голяма гейминг компания по следващото ѝ голямо заглавие на пазара. Трябва да разработите инвентарна система. След дискусии със дизайнери си нахвърляте в тефтера следните класове, описващи всички видове предмети, които трябва да се поддържат:

UpgradeableItem

  • level (get)
  • upgrade(): level++
  • name (get): "{името} ({нивото} LVL)"

EquippableItem

  • isEquipped (get)
  • equip()
  • unequip()
  • name (get): [{+ или -}] {името} (+, ако е екипиран; - иначе)

UpgradeableAndEquippableItem

  • level (get)
  • upgrade(): level++
  • isEquipped (get)
  • equip()
  • unequip()
  • name (get): "[{+ или -}] {името} ({нивото} LVL)"

LimitedUpgradeableItem

  • maxLevel
  • level (get)
  • upgrade(): if (level < maxLevel) level++
  • name (get): "{името} ({нивото или MAX} LVL)"

LimitedUpgradeableAndEquippableItem

  • maxLevel
  • level (get)
  • upgrade(): if (level < maxLevel) level++
  • isEquipped (get)
  • equip()
  • unequip()
  • name (get): "[{+ или -}] {името} ({нивото или MAX} LVL)"

Имплементирайте тези класове като избегнете сблъскването с проблема на диаманта. Създайте още каквито искате допълнителни помощни класове по ваш избор.