mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2025-12-12 04:12:13 +00:00
Ammendments to update-quality
- logic of if statments changed to if not - removed min/max - Strings for Sulfuras and Backstage pass made to exactly match specification - Code structure is based more on the clojure version
This commit is contained in:
parent
e9cf5311fd
commit
ee775910b2
@ -4,24 +4,34 @@
|
||||
|
||||
(defun update-quality (items)
|
||||
(dolist (item items)
|
||||
(if (string= (plist-get item :name) "Aged Brie")
|
||||
(plist-put item :quality (min 50 (1+ (plist-get item :quality))))
|
||||
(if (and (not (string= (plist-get (car item) :name) "Aged Brie"))
|
||||
(not (string= (plist-get (car item) :name) "Backstage passes to a TAFKAL80ETC concert")))
|
||||
|
||||
(if (string= (plist-get item :name) "Backstage passes")
|
||||
(if (> (plist-get item :sell-in) 10)
|
||||
(plist-put item :quality (plist-get item :quality))
|
||||
(when (> (plist-get (car item) :quality) 0)
|
||||
(when (not (string= (plist-get (car item) :name) "Sulfuras, Hand of Ragnaros"))
|
||||
(setf (plist-get (car item) :quality) (1- (plist-get (car item) :quality)))))
|
||||
|
||||
(if (and (<= (plist-get item :sell-in) 10) (> (plist-get item :sell-in) 5))
|
||||
(plist-put item :quality (min 50 (+ (plist-get item :quality) 2)))
|
||||
(when (< (plist-get (car item) :quality) 50)
|
||||
(setf (plist-get (car item) :quality) (1+ (plist-get (car item) :quality)))
|
||||
(when (string= (plist-get (car item) :name) "Backstage passes to a TAFKAL80ETC concert")
|
||||
(when (< (plist-get (car item) :sell-in) 11)
|
||||
(when (< (plist-get (car item) :quality) 50)
|
||||
(setf (plist-get (car item) :quality) (1+ (plist-get (car item) :quality)))))
|
||||
(when (< (plist-get (car item) :sell-in) 6)
|
||||
(when (< (plist-get (car item) :quality) 50)
|
||||
(setf (plist-get (car item) :quality) (1+ (plist-get (car item) :quality)))))))
|
||||
|
||||
(if (and (<= (plist-get item :sell-in) 5) (> (plist-get item :sell-in) 0))
|
||||
(plist-put item :quality (min 50 (+ (plist-get item :quality) 3)))
|
||||
(when (not (string= (plist-get (car item) :name) "Sulfuras, Hand of Ragnaros"))
|
||||
(setf (plist-get (car item) :sell-in) (1- (plist-get (car item) :sell-in))))
|
||||
|
||||
(plist-put item :quality 0))))
|
||||
|
||||
(if (string= (plist-get item :name) "Sulfuras")
|
||||
(plist-put item :quality (plist-get item :quality))
|
||||
|
||||
(plist-put item :quality (max 0 (1- (plist-get item :quality)))))))))
|
||||
(when (< (plist-get (car item) :sell-in) 0)
|
||||
(if (not (string= (plist-get (car item) :name) "Aged Brie"))
|
||||
(if (not (string= (plist-get (car item) :name) "Backstage passes to a TAFKAL80ETC concert"))
|
||||
(when (> (plist-get (car item) :quality) 0)
|
||||
(when (not (string= (plist-get (car item) :name) "Sulfuras, Hand of Ragnaros"))
|
||||
(setf (plist-get (car item) :quality) (1- (plist-get (car item) :quality)))))
|
||||
(setf (plist-get (car item) :quality) 0))
|
||||
(when (< (plist-get (car item) :quality) 50)
|
||||
(setf (plist-get (car item) :quality) (1+ (plist-get (car item) :quality)))))))))
|
||||
|
||||
(provide 'gilded-rose)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user