CPSC 312 2019: Tabletop Encounter Tracker

From UBC Wiki

Authors: Devyani McLaren, Alexander Mountain

What is the problem?

What we are proposing to do is create an encounter tracker for table top role playing games (e.g. Dungeons and Dragons, Pathfinder). This is a useful application for game masters who need to effectively manage details of multiple encounters during a game.

What is the something extra?

The "something extra" we would like to incorporate, is the added feature of loading, reloading and saving the tracker. This way it is possible to pause a session and come back to it later.

What did we learn from doing this?

(This should be written after you have done the work.) What is the bottom-line? Is functional programming suitable for (part-of) the task? Make sure you include the evidence for your claims.

We learned that while it is fully feasible to implement this in Haskell, it does not take full advantage of the functional nature of the language. Many portions of the code had to use I/O to receive input from the user and modify stored variables. Therefore, we may not have received the benefits of using a functional program, such as Haskell e.g. faster running time, strong typing etc.

Links to code etc.