From UBC Wiki



Gareth Antle, Abel Waller

What is the problem?

We will be implementing classic minesweeper in Haskell, with a working graphical UI that can take multiple forms of mouse input.

What is the something extra?

We would like to implement at least one of the following:

  • A board that scales to an arbitrary size, with an arbitrary number of mines both selected by the user
  • A board which is randomly populated with mines, according to a user specified difficulty
  • A limit to the amount of time or the number of moves the player has to solve the game.

What did we learn from doing this?

  • The hardest part, initially, was working with external libraries in Haskell. The graphical library we initially chose, GTK, has a large community and a number of detailed installation guides, but they all seemed to be written for older versions of GHC and required their own extensive collection of external C++ libraries.
  • Once we scaled down and decided against graphics, the project became more manageable
  • Working with Haskell was interesting for minesweeper - many of the things we thought would be difficult turned out to be very easy, and vice versa.

Links to code etc