Fixed BackstagePasses

This commit is contained in:
Greden Night 2023-04-24 09:01:09 +03:00
parent 634f8e5ad0
commit 8560d18c92

View File

@ -4,6 +4,8 @@ namespace csharp
{ {
public class GildedRose public class GildedRose
{ {
const int MinQuality = 0;
const int MaxQuality = 50;
IList<Item> Items; IList<Item> Items;
public GildedRose(IList<Item> Items) public GildedRose(IList<Item> Items)
{ {
@ -12,7 +14,7 @@ namespace csharp
void UpdateItem(ref Item item, int sellInValueFactor, int qualityValueFactor) void UpdateItem(ref Item item, int sellInValueFactor, int qualityValueFactor)
{ {
item.SellIn += sellInValueFactor; item.SellIn += sellInValueFactor;
item.Quality = Math.Max(0, Math.Min(50, item.Quality + qualityValueFactor)); item.Quality = Math.Max(MinQuality, Math.Min(MaxQuality, item.Quality + qualityValueFactor));
} }
bool IsExpired(Item item) bool IsExpired(Item item)
@ -33,7 +35,10 @@ namespace csharp
Item GetNewBackstagesPasses(Item item) Item GetNewBackstagesPasses(Item item)
{ {
if (IsExpired(item)) if (IsExpired(item))
{
UpdateItem(ref item, -1, 0);
item.Quality = 0; item.Quality = 0;
}
else else
{ {
if (item.SellIn <= 10 && item.SellIn > 5) if (item.SellIn <= 10 && item.SellIn > 5)
@ -48,6 +53,7 @@ namespace csharp
{ {
UpdateItem(ref item, -1, 1); UpdateItem(ref item, -1, 1);
} }
} }
return item; return item;
} }