local function getDiceResult(stat, dice) local estCritique = false local isReussite = (dice <= stat) local niveauReussite = math.floor(stat / 10 ) - math.floor( dice / 10) if (dice <= 5) then isReussite = true estCritique = true niveauReussite = niveauReussite * 2 if (niveauReussite < 0) then niveauReussite = niveauReussite * -1 end end if (dice > 95) then isReussite = false estCritique = true niveauReussite = niveauReussite * 2 if (niveauReussite > 0) then niveauReussite = niveauReussite * -1 end end local unite = dice % 10 return isReussite, niveauReussite, unite end local function confrontation(stat1, stat2) local resultats = {} local egalites = 0 for i = 1, 100 do local isReussite1, niveauReussite1, unite1 = getDiceResult(stat1, i) for j = 1, 100 do local resultat = {} resultat.reussite = false local isReussite2, niveauReussite2, unite2 = getDiceResult(stat2, j) if (niveauReussite1 == niveauReussite2 and unite1 == unite2) then egalites = egalites + 1 else if (niveauReussite1 > niveauReussite2) then resultat.reussite = true elseif (niveauReussite1 < niveauReussite2) then resultat.reussite = false elseif (unite1 <= unite2) then resultat.reussite = true end resultat.delta = niveauReussite1 - niveauReussite2 table.insert(resultats, resultat) end end end local total = 0 local totalSansNegatif = 0 local nombreReussite = 0 for _, resultat in ipairs(resultats) do if (resultat.reussite) then nombreReussite = nombreReussite + 1 end total = total + resultat.delta totalSansNegatif = totalSansNegatif + math.max(0, resultat.delta) end local stringPourcentageReussite = string.format( "%.2f%%", (nombreReussite / #resultats) * 100 ) local stringMoyenne = string.format( "%.2f", (total / #resultats) ) local stringMoyenneSansNegatif = string.format( "%.2f", (totalSansNegatif / #resultats) ) local stringEgalites = string.format( "%.2f%%", (egalites / 10000) * 100 ) return stringPourcentageReussite, stringMoyenne, stringMoyenneSansNegatif, stringEgalites end local stringPourcentageReussite, stringMoyenne, stringMoyenneSansNegatif, stringEgalites = confrontation(tonumber(arg[1]), tonumber(arg[2])) print(stringPourcentageReussite, stringMoyenne, stringMoyenneSansNegatif) print("Egalités :", stringEgalites)