Terminal Based Checkers (Joey, Sofia)

From UBC Wiki

Terminal Based Checkers[edit | wikitext]

Authors:[edit | wikitext]

What is the problem?[edit | wikitext]

We will implement a terminal based checkers game, wherein the play will be able to input their next move by inputting the piece they would like to move, and where they would like to move it to. As a result, there will be an ASCII based printout of the board that will be displayed after every move, containing the current state of the game.

What is the something extra?[edit | wikitext]

We will implement an AI opponent where the 'easy' difficulty will be a random set of moves generated, and 'difficult' will be the case where the AI opponent is able to make moves depending on the player's previous move.

What did we learn from doing this?[edit | wikitext]

We learned that Haskell is efficient in creating a checkers game, and the language enables the process to be clear and relatively concise. However, there were several sections where we needed to use I/O for inputs of data and therefore did not completely use the full functionality that Haskell itself can offer. Either way, there were many written functions in which Haskell simplified the process , for example in most of the BoardFunctions.hs file we created, good libraries were available for use (data.List, data.Char, data.Maybe) as well as several built in functions that simplified the entire coding process of the game.

Links to code etc[edit | wikitext]

Our code on GitHub can be found here: https://github.com/josephdeeth/TBC?fbclid=IwAR0ipQ4VQbaocVipcbywZVgO_t8O8u7GyG3nf7f8d6UBYvR1btEj_qChRuk