diff --git a/cpp/src/GildedRose.cc b/cpp/src/GildedRose.cc index 8df23e47..39d7a6f6 100644 --- a/cpp/src/GildedRose.cc +++ b/cpp/src/GildedRose.cc @@ -1,79 +1,68 @@ #include "GildedRose.h" GildedRose::GildedRose(vector & items) : items(items) -{} - -void GildedRose::updateQuality() +{ +} + +void updateQuality(int q, int value) +{ + if(0 < q && q < 50) + { + q += value; + } +} + +void GildedRose::update() { for (int i = 0; i < items.size(); i++) { - if (items[i].name != "Aged Brie" && items[i].name != "Backstage passes to a TAFKAL80ETC concert") + items[i].sellIn -= (items[i].name == "Sulfuras, Hand of Ragnaros") ? 0 : 1; + + if (items[i].name == "Aged Brie") { - if (items[i].quality > 0) + updateQuality(items[i].quality, 1); + } + else if (items[i].name == "Backstage passes to a TAFKAL80ETC concert") + { + if (items[i].sellIn < 5) { - if (items[i].name != "Sulfuras, Hand of Ragnaros") - { - items[i].quality = items[i].quality - 1; - } + updateQuality(items[i].quality, 3); + } + else if (items[i].sellIn < 10) + { + updateQuality(items[i].quality, 2); } + else + { + updateQuality(items[i].quality, 1); + } + } + else if (items[i].name == "Sulfuras, Hand of Ragnaros") + { + updateQuality(items[i].quality, 0); } else { - if (items[i].quality < 50) - { - items[i].quality = items[i].quality + 1; - - if (items[i].name == "Backstage passes to a TAFKAL80ETC concert") - { - if (items[i].sellIn < 11) - { - if (items[i].quality < 50) - { - items[i].quality = items[i].quality + 1; - } - } - - if (items[i].sellIn < 6) - { - if (items[i].quality < 50) - { - items[i].quality = items[i].quality + 1; - } - } - } - } - } - - if (items[i].name != "Sulfuras, Hand of Ragnaros") - { - items[i].sellIn = items[i].sellIn - 1; + updateQuality(items[i].quality, -1); } if (items[i].sellIn < 0) { - if (items[i].name != "Aged Brie") + if (items[i].name == "Aged Brie") { - if (items[i].name != "Backstage passes to a TAFKAL80ETC concert") - { - if (items[i].quality > 0) - { - if (items[i].name != "Sulfuras, Hand of Ragnaros") - { - items[i].quality = items[i].quality - 1; - } - } - } - else - { - items[i].quality = items[i].quality - items[i].quality; - } + updateQuality(items[i].quality, 1); + } + else if (items[i].name == "Backstage passes to a TAFKAL80ETC concert") + { + updateQuality(items[i].quality, -items[i].quality); + } + else if (items[i].name == "Sulfuras, Hand of Ragnaros") + { + updateQuality(items[i].quality, 0); } else { - if (items[i].quality < 50) - { - items[i].quality = items[i].quality + 1; - } + updateQuality(items[i].quality, -1); } } }