From af0311e103a751a211c80eca900170ef4ccd593f Mon Sep 17 00:00:00 2001 From: Nurgaliyeva Daneker Date: Tue, 26 Jan 2021 00:01:55 +0600 Subject: [PATCH] optimized updateQuality() on Scala --- .../scala/com/gildedrose/GildedRose.scala | 67 +++++++------------ 1 file changed, 23 insertions(+), 44 deletions(-) diff --git a/scala/src/main/scala/com/gildedrose/GildedRose.scala b/scala/src/main/scala/com/gildedrose/GildedRose.scala index 9f9fdd2b..08b73446 100644 --- a/scala/src/main/scala/com/gildedrose/GildedRose.scala +++ b/scala/src/main/scala/com/gildedrose/GildedRose.scala @@ -4,55 +4,34 @@ class GildedRose(val items: Array[Item]) { def updateQuality() { - for (i <- 0 until items.length) { - if (!items(i).name.equals("Aged Brie") - && !items(i).name.equals("Backstage passes to a TAFKAL80ETC concert")) { - if (items(i).quality > 0) { - if (!items(i).name.equals("Sulfuras, Hand of Ragnaros")) { - items(i).quality = items(i).quality - 1 - } - } - } else { - if (items(i).quality < 50) { - items(i).quality = items(i).quality + 1 + items.foreach(item => { + if(item.quality > 0 && item.quality < 50) { + item.name match { + case "Aged Brie" => item.quality += 1 - if (items(i).name.equals("Backstage passes to a TAFKAL80ETC concert")) { - if (items(i).sellIn < 11) { - if (items(i).quality < 50) { - items(i).quality = items(i).quality + 1 - } + case "Sulfuras, Hand of Ragnaros" => _ + + case "Backstage passes to a TAFKAL80ETC concert" => + if(item.sellIn < 0) item.quality = 0 + else { + item.quality += 1 + if(item.sellIn <= 10) item.quality += 1 + if(item.sellIn <= 5) item.quality += 1 } - if (items(i).sellIn < 6) { - if (items(i).quality < 50) { - items(i).quality = items(i).quality + 1 - } - } - } + case "Conjured" => + item.quality -= 2 + if(item.sellIn < 0) item.quality -= 2 + + case _ => + item.quality -= 1 + if(item.sellIn < 0) item.quality -= 1 } + if(item.quality > 50) item.quality = 50 + if(item.quality < 0) item.quality = 0 } - if (!items(i).name.equals("Sulfuras, Hand of Ragnaros")) { - items(i).sellIn = items(i).sellIn - 1 - } - - if (items(i).sellIn < 0) { - if (!items(i).name.equals("Aged Brie")) { - if (!items(i).name.equals("Backstage passes to a TAFKAL80ETC concert")) { - if (items(i).quality > 0) { - if (!items(i).name.equals("Sulfuras, Hand of Ragnaros")) { - 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 - } - } - } - } + if(!item.name.equals("Sulfuras, Hand of Ragnaros")) item.sellIn -= 1 + }) } } \ No newline at end of file