Skip to content
General game solvers in Haskell
Branch: master
Clone or download
Latest commit 3f8d18d Jul 17, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
AlphaBetaOriginal.hs Different cache types Jul 11, 2019
Alphabeta.hs Different cache types Jul 11, 2019
Cache.hs refactoring cache Jul 17, 2019
Cache_b1.hs refactoring cache Jul 17, 2019
Cache_b2.hs refactoring cache Jul 17, 2019
LimitMoves.hs Player type Jun 28, 2019
MCTS.hs Different cache types Jul 11, 2019
Minmax.hs
MinmaxOriginal.hs Different cache types Jul 11, 2019
PQueueQuick.hs First commit Jun 27, 2019
README.md Player type Jun 28, 2019
SolverDefs.hs Different cache types Jul 11, 2019
Xorshift64.hs First commit Jun 27, 2019
connect4.hs Different cache types Jul 11, 2019
nim.hs Added annotations Jun 28, 2019
nim_euclidian.hs Added annotations Jun 28, 2019
nim_fibonacci.hs Added annotations Jun 28, 2019
ttt.hs Different cache types Jul 11, 2019
utt.hs Different cache types Jul 11, 2019

README.md

General game solver in Haskell

Games are instances of the class GameState. The minimal complete definition for this class must implement the following function:

  • player - the player whose current turn it is (either Maximizer or Minimizer).
  • terminal - this must be set to Nothing for all terminal nodes, and to Just val where val is the outcome of the game.
  • actions - these is a list of pairs (name, result) where name is the move's name, and branch is the is sub branch of the game that is reached with the move.

All instances of GameState are also Show, and their show value is a presentation of the game's state to the user.

Better documentation will perhaps happen some day in the future.

You can’t perform that action at this time.