Hearthshroud is one of two things:
- A Hearthstone game engine library.
- A simple Hearthstone executable with a console UI.
Library uses a monadic API which drives the game engine for any
-- MonadPrompt @ https://hackage.haskell.org/package/MonadPrompt type HearthMonad m = MonadPrompt HearthPrompt m Hearth.Engine.runHearth :: (HearthMonad m) => Pair PlayerData -> m GameResult
- Model cards (and abilities, effects, etc.) as a pure data AST. This is the card DSL.
- Model enforces game constraints at the type level.
- Engine interprets the cards. (As opposed to the cards directly manipulating the environment.)
- AI directly interprets the same cards as well.
Sample game client is
Hearth.Client.Console and can be seen in action by:
Hearth.Client.Console.main :: IO ()
- Clone repository
cabaltool to build/install
For those unfamiliar with
cabal, search Google for "haskell cabal how to use" (or whatever).
- Probably the best way to ask me a question or tell me a comment is to just create an issue directly for the project (even if it is not a real issue).
- I am sometimes on