From UBC Wiki


Authors: Sandy Co, Kyle Mas

What is the problem?

State the general problem. If applicable, tell us what information you will use, e.g., a link to some web site that provides the information you used. What will you do?

We'll be implementing the game 'Mastermind', wherein the user plays against the computer. The goal of the game is to try to guess the opponent's chosen combination of coloured pins. After every turn,

the player will be given a hint in the form of a red or white pin. The red pin indicates that there is one pin that is in the correct spot & correct colour. On the other hand, the white pin indicates that there is a pin of the right

colour but not in the right spot.

We will be adding on to this implementation of the game:

What is the something extra?

What is the in-depth aspect you will do? If the problem is related to some other group's project, tell us how they fit together. If in doubt, include the information.

Adding a "hard" level that lets people use a combination of characters of the alphabet [a..z] instead of just numbers.

What did we learn from doing this?

Through the project, we were able to learn a lot about how functional programming can be used to develop games. The complex logic within the games proved to be very effective when implemented in Haskell. Aside from this, the 'hard' mode that we implemented

allowed us to explore a number of different ways to do pattern matching, as well as type conversions. Most of the difficulties in this implementation involved the implementation of the 'Computer' player, which uses a combination of letters rather than numbers (from the original game).

Links to code etc

Project repository: