diff --git a/python/gilded_rose.py b/python/gilded_rose.py index 4f21ea64..a3f55e3c 100755 --- a/python/gilded_rose.py +++ b/python/gilded_rose.py @@ -1,39 +1,55 @@ -# -*- coding: utf-8 -*- +name_Ragnaros = "Sulfuras, Hand of Ragnaros" +name_Backstage = "Backstage passes to a TAFKAL80ETC concert" +name_Brie = "Aged Brie" + class GildedRose(object): def __init__(self, items): self.items = items + @staticmethod + def check_quality(item, step): + if 0 >= item.quality + step >= 50: + item.quality = item.quality + step + + def backstage_case(self, item): + counter = 1 + if item.sell_in < 11: + counter = 2 + if item.sell_in < 6: + counter = 3 + for i in range(counter): + self.check_quality(item, 1) + item.sell_in = item.sell_in - 1 + if item.sell_in < 0: + item.quality = item.quality - item.quality + + def bree_case(self, item): + item.sell_in = item.sell_in - 1 + self.check_quality(item, 1) + if item.sell_in < 0: + self.check_quality(item, 1) + + def ragnaros_case(self, item): + pass + + def default_case(self, item): + self.check_quality(item, -1) + item.sell_in = item.sell_in + 1 + if item.sell_in < 0: + self.check_quality(item, 1) + def update_quality(self): for item in self.items: - if item.name != "Aged Brie" and item.name != "Backstage passes to a TAFKAL80ETC concert": - if item.quality > 0: - if item.name != "Sulfuras, Hand of Ragnaros": - item.quality = item.quality - 1 + if item.name == name_Brie: + self.bree_case(item) + elif item.name == name_Backstage: + self.backstage_case(item) + elif item.name == name_Ragnaros: + self.ragnaros_case(item) else: - if item.quality < 50: - item.quality = item.quality + 1 - if item.name == "Backstage passes to a TAFKAL80ETC concert": - if item.sell_in < 11: - if item.quality < 50: - item.quality = item.quality + 1 - if item.sell_in < 6: - if item.quality < 50: - item.quality = item.quality + 1 - if item.name != "Sulfuras, Hand of Ragnaros": - item.sell_in = item.sell_in - 1 - if item.sell_in < 0: - if item.name != "Aged Brie": - if item.name != "Backstage passes to a TAFKAL80ETC concert": - if item.quality > 0: - if item.name != "Sulfuras, Hand of Ragnaros": - item.quality = item.quality - 1 - else: - item.quality = item.quality - item.quality - else: - if item.quality < 50: - item.quality = item.quality + 1 + self.default_case(item) class Item: