LicenseRef-GPL licensed and maintained by Henning Thielemann
This version can be pinned in stack with:board-games-0.4@sha256:491333b78de7cd07afce3f6d6f29373c986e76f7efe087830db83343daf7340f,4831

Three games that might run as CGI script in a web server: Connect Four, Rows&Columns, Mastermind. Additionally there is a CLI-only game: Das verrueckte Labyrinth.

Check running versions at and

You can build an example web server by installing with

cabal install board-games -fbuildExamples

Then start the server with


and play the games in your browser at the URL http://localhost:8080/.

Currently the games use German texts. I wanted to use gettext, but this is not thread-safe.


Change log for the board-games package


  • Labyrinth: New game “Das verrückte Labyrinth”.


  • Mastermind.CodeSet: Move from Set to EnumSet since this is three to ten times faster. It works best for alphabets with contiguous fromEnum-associated Ints, but even if not it should not be much worse than Set. If this is still too slow for you, you might consider mapping your alphabet to a contiguous set of Ints first. I tried to maintain both Set and EnumSet in one interface. It is possible even in Haskell 98 using explicit method dictionaries. However, it gets complicated and I am afraid that the speed advantage is diminished by the generalization overhead.


  • add criterion benchmarks for Mastermind


  • improved game strategy for Mastermind


  • hierarchical module names