add Lua lang

This commit is contained in:
Auclair Emmanuel authored and Peter Kofler committed 2025-09-02 15:34:44 +02:00
1 parent e000f865fe
commit d8f30fa8d3
9 files changed
+186

No files matched your search

+63
View File
@@ -0,0 +1,63 @@
local GildedRose = {}
function GildedRose:new(items)
return {
items = items,
updateQuality = self.updateQuality,
}
end
function GildedRose:updateQuality()
for i, _ in pairs(self.items) do
if self.items[i].name ~= "Aged Brie" and
self.items[i].name ~= "Backstage passes to a TAFKAL80ETC concert" then
if self.items[i].quality > 0 then
if self.items[i].name ~= "Sulfuras, Hand of Ragnaros" then
self.items[i].quality = self.items[i].quality - 1
end
end
else
if self.items[i].quality < 50 then
self.items[i].quality = self.items[i].quality + 1
if self.items[i].name == "Backstage passes to a TAFKAL80ETC concert" then
if self.items[i].sell_in < 11 then
if self.items[i].quality < 50 then
self.items[i].quality = self.items[i].quality + 1
end
end
if self.items[i].sell_in < 6 then
if self.items[i].quality < 50 then
self.items[i].quality = self.items[i].quality + 1
end
end
end
end
end
if self.items[i].name ~= "Sulfuras, Hand of Ragnaros" then
self.items[i].sell_in = self.items[i].sell_in - 1
end
if self.items[i].sell_in < 0 then
if self.items[i].name ~= "Aged Brie" then
if self.items[i].name ~= "Backstage passes to a TAFKAL80ETC concert" then
if self.items[i].quality > 0 then
if self.items[i].name ~= "Sulfuras, Hand of Ragnaros" then
self.items[i].quality = self.items[i].quality - 1
end
end
else
self.items[i].quality = self.items[i].quality - self.items[i].quality
end
else
if self.items[i].quality < 50 then
self.items[i].quality = self.items[i].quality + 1
end
end
end
end
return self.items
end
return GildedRose
+7
View File
@@ -0,0 +1,7 @@
local Item = {}
function Item:new(name, sell_in, quality)
return { name = name, sell_in = sell_in, quality = quality }
end
return Item
+30
View File
@@ -0,0 +1,30 @@
local Item = require("src/item")
local GildedRose = require("src/gilded_rose")
local items = {
Item:new("+5 Dexterity Vest", 10, 20),
Item:new("Aged Brie", 2, 0),
Item:new("Elixir of the Mongoose", 5, 7),
Item:new("Sulfuras, Hand of Ragnaros", 0, 80),
Item:new("Sulfuras, Hand of Ragnaros", -1, 80),
Item:new("Backstage passes to a TAFKAL80ETC concert", 15, 20),
Item:new("Backstage passes to a TAFKAL80ETC concert", 10, 49),
Item:new("Backstage passes to a TAFKAL80ETC concert", 5, 49),
-- This Conjured item does not work properly yet
Item:new("Conjured Mana Cake", 3, 6),
};
local days = arg[1] or 2;
local gilded_rose = GildedRose:new(items);
print("OMGHAI!");
for day = 0, days do
print("-------- day " .. day .. " --------");
print("name, sellIn, quality");
for _, item in pairs(items) do
print(item.name .. ", " .. item.sell_in .. ", " .. item.quality);
end
gilded_rose:updateQuality();
print("")
end