ansi-terminal-game 0.5.0.0 → 0.6.0.0
raw patch · 4 files changed
+47/−5 lines, 4 filesdep +randomPVP ok
version bump matches the API change (PVP)
Dependencies added: random
API changes (from Hackage documentation)
+ Terminal.Game: class Random a
+ Terminal.Game: data StdGen
+ Terminal.Game: getRandom :: Random a => (a, a) -> StdGen -> (a, StdGen)
+ Terminal.Game: getRandomList :: Random a => (a, a) -> StdGen -> [a]
+ Terminal.Game: getStdGen :: IO StdGen
+ Terminal.Game: mkStdGen :: Int -> StdGen
Files
- ansi-terminal-game.cabal +5/−1
- changes.txt +6/−0
- src/Terminal/Game.hs +12/−4
- src/Terminal/Game/Random.hs +24/−0
ansi-terminal-game.cabal view
@@ -1,5 +1,5 @@ name: ansi-terminal-game-version: 0.5.0.0+version: 0.6.0.0 synopsis: sdl-like functions for terminal applications, based on ansi-terminal description: Library which aims to replicate standard 2d game@@ -38,6 +38,7 @@ Terminal.Game.Draw, Terminal.Game.Utils, Terminal.Game.Plane,+ Terminal.Game.Random, Terminal.Game.Timer build-depends: base == 4.*, ansi-terminal >= 0.8 && < 0.11,@@ -50,6 +51,7 @@ mintty == 0.1.*, mtl == 2.2.*, QuickCheck == 2.13.*,+ random >= 1.1 && < 1.2, split == 0.2.*, terminal-size == 0.3.*, timers-tick == 0.4.*@@ -82,6 +84,7 @@ Terminal.Game.Layer.Object.Test, Terminal.Game.Utils, Terminal.Game.Plane,+ Terminal.Game.Random, Terminal.Game.PlaneSpec build-depends: base == 4.*, ansi-terminal >= 0.8 && < 0.11,@@ -93,6 +96,7 @@ linebreak == 1.0.*, mtl == 2.2.*, QuickCheck == 2.13.*,+ random >= 1.1 && < 1.2, split == 0.2.*, terminal-size == 0.3.*, timers-tick == 0.4.*
changes.txt view
@@ -1,3 +1,9 @@+0.6.0.0+-------++- Add random generation functions.+- Released Sun 10 Nov 2019 13:44:32 CET+ 0.5.0.0 -------
src/Terminal/Game.hs view
@@ -28,7 +28,7 @@ Game(..), playGame, - -- * Game Logic+ -- * Game logic -- | Some convenient function dealing with -- Timers ('Timed') and 'Animation's. --@@ -52,6 +52,12 @@ fetchAniFrame, isAniExpired, getFrames, + -- ** Random numbers+ StdGen,+ getStdGen, mkStdGen,+ getRandom, getRandomList,+ Random,+ -- * Drawing -- | To get to the gist of drawing, check the -- documentation of '%'.@@ -91,11 +97,12 @@ where import System.Console.ANSI+import Terminal.Game.Animation+import Terminal.Game.Draw import Terminal.Game.Layer.Imperative import Terminal.Game.Layer.Object import Terminal.Game.Plane-import Terminal.Game.Draw-import Terminal.Game.Animation+import Terminal.Game.Random -- $threaded -- Good practices for cross-compatibility:@@ -114,5 +121,6 @@ -- that go well with either (blue, red, etc.); -- -- * some terminals/multiplexers (i.e. tmux) do not make a distinction--- between vivid/dull, do not base your game mechanics on that+-- between vivid/dull; do not base your game mechanics on that -- difference.+
+ src/Terminal/Game/Random.hs view
@@ -0,0 +1,24 @@+module Terminal.Game.Random ( R.StdGen,+ Random,+ R.getStdGen,+ R.mkStdGen,+ getRandom,+ getRandomList )+ where++import System.Random as R+++-- getRandom :: (Ord a, Show a) => (a, a) -> StdGen -> (a, StdGen)+-- getRandom bs@(l, h) sg+-- | l > h = error $ "getRandom: lowBound > highBoud, " ++ show bs+-- | otherwise = randomR _ _++-- | Simple pseudo-random generator.+getRandom :: Random a => (a, a) -> StdGen -> (a, StdGen)+getRandom bs sg = randomR bs sg++-- | Returns an infinite list of random values.+getRandomList :: Random a => (a, a) -> StdGen -> [a]+getRandomList bs sg = randomRs bs sg+