diff --git a/python/gilded_rose.py b/python/gilded_rose.py index d87fd3f2..db497f72 100755 --- a/python/gilded_rose.py +++ b/python/gilded_rose.py @@ -13,36 +13,37 @@ class GildedRose(object): self.__update_each_item_quality(item) # print(f'Log: {item}\n') + def __decrease_item_quality(self, item, amount: int = 1): + item.quality = max(0, item.quality - amount) + + def __increase_item_quality(self, item, amount: int = 1): + item.quality = min(50, item.quality + amount) + def __update_each_item_quality(self, item): # Update item.sell_in - if item.name != self.SULFURAS: + if item.name == self.SULFURAS: + pass + else: item.sell_in = item.sell_in - 1 # Update item.quality - if item.name != self.AGED_BRIE and item.name != self.BACKSTAGE_PASSES: - if item.quality > 0: - if item.name != self.SULFURAS: - item.quality = item.quality - 1 + if item.name == self.AGED_BRIE: + self.__increase_item_quality(item) + if item.sell_in < 0: + self.__increase_item_quality(item) + elif item.name == self.BACKSTAGE_PASSES: + self.__increase_item_quality(item) + if item.sell_in < 10: + self.__increase_item_quality(item) + if item.sell_in < 5: + self.__increase_item_quality(item) + if item.sell_in < 0: + item.quality = 0 + elif item.name == self.SULFURAS: + pass else: - if item.quality < 50: - item.quality = item.quality + 1 - if item.name == self.BACKSTAGE_PASSES: - if item.sell_in < 10: - if item.quality < 50: - item.quality = item.quality + 1 - if item.sell_in < 5: - if item.quality < 50: - item.quality = item.quality + 1 - if item.sell_in < 0: - if item.name != self.AGED_BRIE: - if item.name != self.BACKSTAGE_PASSES: - if item.quality > 0: - if item.name != self.SULFURAS: - item.quality = item.quality - 1 - else: - item.quality = item.quality - item.quality - else: - if item.quality < 50: - item.quality = item.quality + 1 + self.__decrease_item_quality(item) + if item.sell_in < 0: + self.__decrease_item_quality(item) class Item: