Modul:Poker

Fra Wikipedia, den frie encyklopedi
Moduldokumentasjon


Høyt kort (50,11 % sannsynlighet) – Generer en ny hånd

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