Merge branch 'nim'

This commit is contained in:
Peter Kofler 2023-12-07 13:12:37 +01:00
commit 318218e3bc
4 changed files with 60 additions and 0 deletions

3
nim/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
nimcache/
nimblecache/
htmldocs/

35
nim/src/gildedrose.nim Normal file
View File

@ -0,0 +1,35 @@
import items
proc updateQuality*(items: var seq[Item]) =
for i in 0 ..< items.len:
if items[i].name != "Aged Brie" and 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:
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
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:
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
else:
if items[i].quality < 50:
items[i].quality = items[i].quality + 1

12
nim/src/items.nim Normal file
View File

@ -0,0 +1,12 @@
import strformat
type
Item* = object
name*: string
sellIn*, quality*: int
proc initItem*(name: string, sellIn, quality: int): Item =
Item(name: name, sellIn: sellIn, quality: quality)
proc `$`*(item: Item): string =
&"{item.name}, {item.sellIn}, {item.quality}"

10
nim/test/gilded.nim Normal file
View File

@ -0,0 +1,10 @@
import unittest
import ../src/items
import ../src/gildedrose
suite "Gilded Rose":
test "foo":
var items = @[initItem("foo", 0, 0)]
items.updateQuality()
check items[0].name == "fixme"