dice roll to add total to array lua code example

Example: dice roll to add total to array lua

local function comp(ndice1, nsides1, ndice2, nsides2)  local function throws(ndice, nsides)    local sums = {}    for i = 1, ndice*nsides do      sums[i] = 0    end    local function throw(ndice, nsides, s)      if (ndice==0) then        sums[s] = sums[s] + 1      else        for i = 1, nsides do          throw(ndice-1, nsides, s+i)        end      end      return sums    end    return throw(ndice, nsides, 0)  end  local p1 = throws(ndice1, nsides1)  local p2 = throws(ndice2, nsides2)  local wins, coms = 0, nsides1^ndice1 * nsides2^ndice2  for k1,v1 in pairs(p1) do    for k2,v2 in pairs(p2) do      if (k1 > k2) then        wins = wins + v1 * v2      end    end  end  print("computed:  p1 = "..ndice1.."d"..nsides1..", p2 = "..ndice2.."d"..nsides2..", prob = "..wins.." / "..coms.." = "..(wins/coms))end comp(9, 4, 6, 6)comp(5, 10, 6, 7)

Tags:

Lua Example