-- | Hacks that haven't found their home yet. module Game.LambdaHack.Misc ( normalLevelBound, divUp, Freqs, breturn ) where import Control.Monad import Data.Text (Text) -- | Level bounds. TODO: query terminal size instead and scroll view. normalLevelBound :: (Int, Int) normalLevelBound = (79, 21) -- | Integer division, rounding up. divUp :: Int -> Int -> Int divUp n k = (n + k - 1) `div` k -- | For each group that the kind belongs to, denoted by a @Text@ name -- in the first component of a pair, the second component of a pair shows -- how common the kind is within the group. type Freqs = [(Text, Int)] -- | @breturn b a = [a | b]@ breturn :: MonadPlus m => Bool -> a -> m a breturn True a = return a breturn False _ = mzero