Playing Minesweeper you have a grid of about 15 by 15 similar fields. Hidden inside these fields could be a mine or just an empty field - you wont know until you click at the field and are eventually shred to pieces by some nasty mine. The goal of the game is to find all the mines and mark them with tiny flags -- a nearly impossible task. To make the game any fun you are told the exact amount of mines around the field you just opened. If this number is 0, it's safe to explore all the adjacent fields. And because this is a stupid task, the machine does it for you. If you manage to explore all empty fields you win, if you find one of the mines, you lose, best time gets the highscore. Simple as that.
This is not a course in Haskell programming I will not spent many words on the games code itself and will come straight to the very heart of this section, the hsMines GUI. You can find the source for the game in htk/examples/intro/MainhsMines.hs, in case you are curious.