Modulo:Carte
Istruzioni per l'uso
Questo è un modulo scritto in Lua. Le istruzioni che seguono sono contenute nella sottopagina Modulo:Carte/man (modifica · cronologia)
Sandbox: Modulo:Carte/sandbox (modifica · cronologia) · Sottopagine: lista · Test: Modulo:Carte/test (modifica · cronologia · Esegui)
Questo è un modulo scritto in Lua. Le istruzioni che seguono sono contenute nella sottopagina Modulo:Carte/man (modifica · cronologia)
Sandbox: Modulo:Carte/sandbox (modifica · cronologia) · Sottopagine: lista · Test: Modulo:Carte/test (modifica · cronologia · Esegui)
Questo modulo serve a implementare le funzionalità del Template:Carte.
local getArgs = require('Module:Arguments').getArgs
local p = {}
local function dump(t, ...)
local args = {...}
for _, s in ipairs(args) do
table.insert(t, s)
end
end
-- Notazione
-- I valori accettati sono
-- *"Vs" dove:
-- **"V" è il valore
-- **"s" è il seme (uno dei valori "c" (cuori) "f" (fiori), "p" (picche), "q" (quadri), "r" (rosso) o "n" (nero)
-- * oppure "s": il seme (o il colore da solo), vedi lista sopra
-- * oppure "Jolly" / "Jollyr" / "Jollyn" : Jolly / Jolly (rosso) / Jolly (nero)
local suits = {
['c'] = { name='cuori', symbol='♥'},
['f'] = { name='fiori', symbol='♣'},
['p'] = { name='picche', symbol='♠'},
['q'] = { name='quadri', symbol='♦'}
}
local full_rank_name = {
['a'] = 'Asso',
['k'] = 'Re',
['q'] = 'Regina',
['j'] = 'Fante',
['A'] = 'Asso',
['K'] = 'Re',
['Q'] = 'Regina',
['J'] = 'Fante'
}
local symbol = {
['♥'] = 'c',
['♣'] = 'f',
['♠'] = 'p',
['♦'] = 'q'
}
local color_code = {
['n'] = 'black',
['r'] = 'red'
}
function p.main(frame)
local args = getArgs(frame)
return p._main(args)
end
function p._main(args)
local output = {}
local hand = {}
local hand_style = args['stile mano'] or ''
local suits_color = {}
suits_color['c'] = args['colore cuori'] or 'red'
suits_color['p'] = args['colore picche'] or 'black'
suits_color['q'] = args['colore diamond'] or 'red'
suits_color['f'] = args['colore fiori'] or 'black'
local card_style = args['stile carte'] or ''
local separator = args['separatore'] or ' '
local color = (args['colore'] and color_code[args['colore']]) or ''
dump(output, '<b ', (hand_style and 'style="' .. hand_style .. '"; " ') or '', 'class="manodicarte">')
local pos = 1
local continue = true
while continue do
local value = 1
local card = args[pos]
if card then
local card_array = {}
local suit_rank
local card_color
local last_character = mw.ustring.sub(card, -1)
local suit_code
if suits[last_character] then
suit_code = last_character
end
if suit_code then
card_color = suits_color[suit_code]
else
card_color = color_code[suit_code]
end
if card_color then
suit_rank = mw.ustring.sub(card, 1, -2)
else
suit_rank = card
end
if suit_rank == "Jolly" then
if card_color == "red" then
suit_rank = "Jolly (rosso)"
elseif card_color == "black" then
suit_rank = "Jolly (nero)"
end
end
dump(card_array, '<span class="cartadagioco" ', (card_color and 'style="color:' .. card_color ..';"') or '', '>')
if suit_rank then
dump(card_array, '<span class="valore">', suit_rank, '</span>')
end
if suit_code then
dump(card_array, '<span class="seme">', suits[suit_code].symbol, '</span>')
end
dump(card_array, '</span>')
pos = pos + 1
dump(hand, table.concat(card_array))
else
continue = false
end
end
dump(output, table.concat(hand, separator) or '')
dump(output, '</b>')
return table.concat(output)
end
return p