Modul:Poker
local p = {}
require "mw.ustring"
-- fra https://sv.wikipedia.org/w/index.php?title=Modul:Poker&oldid=29551510
function p.pokerhand(frame)
local Statistikk = require "Modul:Statistikk"
kortlek = '2-Heart,3-Heart,4-Heart,5-Heart,6-Heart,7-Heart,8-Heart,9-Heart,10-Heart,J-Heart,Q-Heart,K-Heart,A-Heart,2-Diamond,3-Diamond,4-Diamond,5-Diamond,6-Diamond,7-Diamond,8-Diamond,9-Diamond,10-Diamond,J-Diamond,Q-Diamond,K-Diamond,A-Diamond,2-Club,3-Club,4-Club,5-Club,6-Club,7-Club,8-Club,9-Club,10-Club,J-Club,Q-Club,K-Club,A-Club,2-Spade,3-Spade,4-Spade,5-Spade,6-Spade,7-Spade,8-Spade,9-Spade,10-Spade,J-Spade,Q-Spade,K-Spade,A-Spade'
frame.args['verdi']=kortlek
frame.args['absoluttfrekvenser']= string.rep('1,',51)..'1'
frame.args['antall']=5
frame.args['separator']=','
frame.args['tilbakelegging']='nei'
local hand =Statistikk.tilfeldigtrekning(frame)
local res =''
local i = 0
local farg = {}
local valor = {}
local stegupp = {['A']='2',['2']='3',['3']='4',['4']='5',['5']='6',['6']='7',['7']='8',['8']='9',['9']='10',['10']='J',['J']='Q',['Q']='K',['K']='A'}
local stegner = {['A']='K',['2']='A',['3']='2',['4']='3',['5']='4',['6']='5',['7']='6',['8']='7',['9']='8',['10']='9',['J']='10',['Q']='J',['K']='Q'}
for kort in string.gmatch(hand,"[^,]+") do
i = i+1
valor[i], farg[i] = string.match(kort,'([0-9JQKA]+)%-(%a+)')
res = res..'[[Fil:Cards-'..kort..'.svg|60px|border]] '
end
res = res .. '<br />'
local fargsumma = 0
local valorsumma = 0
local stegsumma = 0
for i=1,5 do
for j=1,5 do
if farg[j] == farg[i] then fargsumma = fargsumma + 1 end
if valor[j] == valor[i] then valorsumma = valorsumma + 1 end
end
if valor[i] == 'A' then
for j=1,5 do
if valor[j] == 'K' or valor[j] == '2' then
stegsumma = stegsumma + 1
break
end
end
else
for j=1,5 do
if valor[j] == stegner[valor[i]] then
stegsumma = stegsumma + 1
break
end
end
for j=1,5 do
if valor[j] == stegupp[valor[i]] then
stegsumma = stegsumma + 1
break
end
end
end
end
if fargsumma == 25 and stegsumma == 8 then return res .. 'Straight flush (0,0015 % sannsynlighet)' end
if valorsumma == 17 then return res..'Fjers (0,024 % sannsynlighet)' end
if valorsumma == 13 then return res..'Hus (0,144 % sannsynlighet)' end
if fargsumma == 25 then return res..'Flush (0,196 % sannsynlighet)' end
if stegsumma == 8 then return res..'Straight (0,39 % sannsynlighet)' end
if valorsumma == 11 then return res..'Tress (2,11 % sannsynlighet)' end
if valorsumma == 9 then return res..'To par (4,75 % sannsynlighet)' end
if valorsumma == 7 then return res..'Par (42,26 % sannsynlighet)' end
if valorsumma == 5 then return res..'Høyt kort (50,11 % sannsynlighet)' end
return res
end
return p