36 lines
776 B
Lua
36 lines
776 B
Lua
deck = {}
|
|
rank = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "T", "J", "Q", "K"}
|
|
suit = {"C", "D", "H", "S"}
|
|
two31, state = bit32.lshift(1, 31), 0
|
|
|
|
function rng()
|
|
state = (214013 * state + 2531011) % two31
|
|
return bit32.rshift(state, 16)
|
|
end
|
|
|
|
function initdeck()
|
|
for i, r in ipairs(rank) do
|
|
for j, s in ipairs(suit) do
|
|
table.insert(deck, r .. s)
|
|
end
|
|
end
|
|
end
|
|
|
|
function deal(num)
|
|
initdeck()
|
|
state = num
|
|
print("Game #" .. num)
|
|
repeat
|
|
choice = rng(num) % #deck + 1
|
|
deck[choice], deck[#deck] = deck[#deck], deck[choice]
|
|
io.write(" " .. deck[#deck])
|
|
if (#deck % 8 == 5) then
|
|
print()
|
|
end
|
|
deck[#deck] = nil
|
|
until #deck == 0
|
|
print()
|
|
end
|
|
|
|
deal(1)
|
|
deal(617)
|