diff --git a/evens.lua b/evens.lua index 6a82993..ab11fb4 100644 --- a/evens.lua +++ b/evens.lua @@ -1,6 +1,12 @@ -if not TEST then - assert(SMODS.load_file('modutils/init.lua'))() - assert(SMODS.load_file('logic/init.lua'))() +local ModUtils +local EvensHandValidator + +if TEST then + ModUtils = require('modutils') + EvensHandValidator = require('logic') +else + ModUtils = assert(SMODS.load_file('modutils/init.lua'))() + EvensHandValidator = assert(SMODS.load_file('logic/init.lua'))() end local EvensHand = { @@ -11,7 +17,7 @@ local EvensHand = { } SMODS.PokerHand { - key = 'EvensHand', + key = 'EvensHand', mult = EvensHand.mult, chips = EvensHand.chips, l_mult = EvensHand.mult_increase_per_level, @@ -21,14 +27,13 @@ SMODS.PokerHand { { 'C_4', true }, -- 4 of Clubs, scores { 'H_6', true }, -- 6 of Hearts, scores { 'D_8', true }, -- 8 of Diamonds, scores - { 'S_T', true } -- 10 of Spades, scores + { 'S_T', true } -- 10 of Spades, scores }, - evaluate = function (parts, hand) + evaluate = function(parts, hand) local cardRanksFromHand = ModUtils.cardRanksFromHand(hand) - if (EvensHandValidator.isValidCardRanks(cardRanksFromHand)) then + if EvensHandValidator.isValidCardRanks(cardRanksFromHand) then return { hand } end - return {} end } @@ -53,4 +58,3 @@ if not TEST then end end - diff --git a/logic/init.lua b/logic/init.lua index b2014e1..dd05022 100644 --- a/logic/init.lua +++ b/logic/init.lua @@ -1,31 +1,33 @@ -if not TEST then - assert(SMODS.load_file('utils/init.lua'))() +local Utils +if TEST then + Utils = require('utils') +else + Utils = assert(SMODS.load_file('utils/init.lua'))() end - -EvensHandValidator = {} +local EvensHandValidator = {} function EvensHandValidator.isValidCardRanks(cardRanksFromHand) if #cardRanksFromHand ~= 5 then return false end - local validCardRanks = {'2', '4', '6', '8', 'T'} + local validCardRanks = { '2', '4', '6', '8', 'T' } local uniqueCardRanks = {} local uniqueCardRanksCounted = 0 - + for _, rank in ipairs(cardRanksFromHand) do if not Utils.contains(validCardRanks, rank) then return false end - + -- Track unique values if not uniqueCardRanks[rank] then uniqueCardRanks[rank] = true uniqueCardRanksCounted = uniqueCardRanksCounted + 1 end end - + return uniqueCardRanksCounted == 5 end diff --git a/modutils/init.lua b/modutils/init.lua index 3be9549..f496944 100644 --- a/modutils/init.lua +++ b/modutils/init.lua @@ -1,4 +1,4 @@ -ModUtils = {} +local ModUtils = {} function ModUtils.cardRanksFromHand(hand) local ranks = {} @@ -8,4 +8,4 @@ function ModUtils.cardRanksFromHand(hand) return ranks end -return ModUtils \ No newline at end of file +return ModUtils diff --git a/utils/init.lua b/utils/init.lua index 562c2bd..16b2742 100644 --- a/utils/init.lua +++ b/utils/init.lua @@ -1,14 +1,16 @@ -Utils = {} +local Utils = {} function Utils.contains(tbl, elem) for _, v in ipairs(tbl) do - if v == elem then return true end + if v == elem then + return true + end end return false end function Utils.printTable(tbl) - for k,v in pairs(tbl) do + for k, v in pairs(tbl) do if type(v) == "table" then print(k .. " = { ") Utils.printTable(v) @@ -19,4 +21,4 @@ function Utils.printTable(tbl) end end -return Utils \ No newline at end of file +return Utils