mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2025-12-12 12:22:12 +00:00
148 lines
5.8 KiB
C#
148 lines
5.8 KiB
C#
using System.Collections.Generic;
|
|
|
|
namespace GildedRose.Console
|
|
{
|
|
class Program
|
|
{
|
|
IList<Item> Items;
|
|
static void Main(string[] args)
|
|
{
|
|
System.Console.WriteLine("OMGHAI!");
|
|
|
|
var app = new Program()
|
|
{
|
|
Items = new List<Item>
|
|
{
|
|
new Item {Name = "+5 Dexterity Vest", SellIn = 10, Quality = 20},
|
|
new Item {Name = "Aged Brie", SellIn = 2, Quality = 0},
|
|
new Item {Name = "Elixir of the Mongoose", SellIn = 5, Quality = 7},
|
|
new Item {Name = "Sulfuras, Hand of Ragnaros", SellIn = 0, Quality = 80},
|
|
new Item {Name = "Sulfuras, Hand of Ragnaros", SellIn = -1, Quality = 80},
|
|
new Item
|
|
{
|
|
Name = "Backstage passes to a TAFKAL80ETC concert",
|
|
SellIn = 15,
|
|
Quality = 20
|
|
},
|
|
new Item
|
|
{
|
|
Name = "Backstage passes to a TAFKAL80ETC concert",
|
|
SellIn = 10,
|
|
Quality = 49
|
|
},
|
|
new Item
|
|
{
|
|
Name = "Backstage passes to a TAFKAL80ETC concert",
|
|
SellIn = 5,
|
|
Quality = 49
|
|
},
|
|
// this conjured item does not work properly yet
|
|
new Item {Name = "Conjured Mana Cake", SellIn = 3, Quality = 6}
|
|
}
|
|
|
|
};
|
|
|
|
for (var i = 0; i < 31; i++)
|
|
{
|
|
System.Console.WriteLine("-------- day " + i + " --------");
|
|
System.Console.WriteLine("name, sellIn, quality");
|
|
for (var j = 0; j < app.Items.Count; j++)
|
|
{
|
|
System.Console.WriteLine(app.Items[j].Name + ", " + app.Items[j].SellIn + ", " + app.Items[j].Quality);
|
|
}
|
|
System.Console.WriteLine("");
|
|
app.UpdateQuality();
|
|
}
|
|
System.Console.ReadKey();
|
|
|
|
}
|
|
|
|
public void UpdateQuality()
|
|
{
|
|
for (var i = 0; i < Items.Count; i++)
|
|
{
|
|
if (Items[i].Name != "Aged Brie" && 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;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
public class Item
|
|
{
|
|
public string Name { get; set; }
|
|
|
|
public int SellIn { get; set; }
|
|
|
|
public int Quality { get; set; }
|
|
}
|
|
|
|
}
|