module Rolling.FITD (roll) where import Rolling.Common judge :: Int -> Result judge n | n <= 3 = Failure | n <= 5 = Partial | otherwise = Success roll :: Int -> Prob Result roll 0 = normalize $ do a <- die 6 b <- die 6 return (judge (a `min` b)) roll n = normalize $ do dice <- sequence [ die 6 | _ <- [1..n] ] return (judge (maximum dice))