diff --git a/go/gilded-rose.go b/go/gilded-rose.go index 872d5336..fa7eb1ca 100644 --- a/go/gilded-rose.go +++ b/go/gilded-rose.go @@ -15,6 +15,16 @@ func min(x int, y int) int { return y } +func max(x int, y int) int { + if x == y { + return x + } + if x > y { + return x + } + return y +} + func UpdateQualityBrie(item *Item) { defer func() { item.sellIn-- @@ -57,6 +67,20 @@ func UpdateQualityBackstagePasses(item *Item) { } +func UpdateQualityStandard(item *Item) { + defer func() { + item.sellIn-- + }() + + if item.sellIn <= 0 { + item.quality = max(item.quality-2, 0) + return + } + + item.quality = max(item.quality-1, 0) + +} + func UpdateQuality(items []*Item) { for i := 0; i < len(items); i++ { @@ -74,45 +98,8 @@ func UpdateQuality(items []*Item) { continue } - if items[i].name != "Backstage passes to a TAFKAL80ETC concert" { - if items[i].quality > 0 { - items[i].quality = items[i].quality - 1 - } - } 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 - } - } - } - } - } + UpdateQualityStandard(items[i]) - items[i].sellIn = items[i].sellIn - 1 - - if items[i].sellIn < 0 { - if items[i].name != "Aged Brie" { - if items[i].name != "Backstage passes to a TAFKAL80ETC concert" { - if items[i].quality > 0 { - items[i].quality = items[i].quality - 1 - } - } else { - items[i].quality = items[i].quality - items[i].quality - } - } else { - if items[i].quality < 50 { - items[i].quality = items[i].quality + 1 - } - } - } } }