4.6 KiB
Технические требования «Gilded Rose»
Привет и добро пожаловать в команду «Gilded Rose». Как вы знаете, мы небольшая гостиница удобно расположенная в известном городе под руководством дружественного управляющего по имени Эллисон. Также мы занимаемся покупкой и продажей только самых лучших товаров. К несчастью, качество наших товаров постоянно ухудшается по мере приближения к максимальному сроку хранения.
У нас есть информационная система, которая ведет переучет всех товаров. Система была разработана рубаха-парнем, по имени Leeroy, который отправился за поисками новых приключений. Ваша задача заключается в том, чтобы добавить новый функционал в нашу систему, чтобы мы могли начать продавать новую категорию товаров. Для начала введение в нашу систему:
- Все
товарыимеют значениесрока реализации(SellIn), которое обозначает количество дней, в течение которых мы должны их продать - Все
товарыимеют значениекачества(Quality), которое обозначает, насколько ценен товар - В конце дня наша система снижает значение обоих свойств для каждого товара
Довольно просто, не правда ли? Тут-то и начинается самое интересное:
- Как только срок продажи товара истек, его качество (
Quality) портится в два раза быстрее - Качество (
Quality) товара никогда не бывает отрицательным - Для товара "Aged Brie" качество (
Quality) увеличивается с возрастом - Качество (
Quality) товара никогда не превышает50 - "Sulfuras", являясь легендарным товаром, никогда не нужно продавать и его
качество(Quality) никогда не уменьшается - "Backstage passes", как и "Aged Brie", увеличивается в качестве (
Quality) по мере приближения к значению срока реализации (SellIn):- Качество (
Quality) увеличивается на2, когда остаётся10дней или меньше, и на3, когда остаётся5дней или меньше, но - Качество (
Quality) падает до0после концерта
- Качество (
Недавно мы подписали контракт с поставщиком зачарованных товаров. Это требует обновления нашей системы:
- Зачарованные ("Conjured") предметы теряют качество (
Quality) в два раза быстрее обычных товаров
Не стесняйтесь вносить любые изменения в метод UpdateQuality и добавлять любой новый код до тех пор,
пока система работает корректно. Тем не менее, не меняйте класс Item или свойства Items, так как они принадлежат
сидящему в углу гоблину, который очень яростен и поэтому выстрелит в вас поскольку не верит в принцип
совместного владения кодом (вы можете сделать метод UpdateQuality и свойства класса Item статическими
если хотите, мы вас прикроем).
Просто для уточнения, товар никогда не может иметь качество (Quality) выше чем 50, однако легендарный товар "Sulfuras"
имеет качество 80 и оно никогда не меняется.