Carleton University - School of Computer Science Honours Project
Winter 2019
Dominion (The Deck-Building Card Game)
Victor Diep
SCS Honours Project Image
ABSTRACT
Dominion is a deck-building card game created by Donald X. Vaccarino. This project aims to serve as a learning aid for COMP 3004 to evaluate test-driven development and the usage of design patterns. Usage of test-driven development (TDD) in software development is explored in this project for the purposes of evaluating its impact on software design. The project takes a look into Kent Beck’s approach to TDD where non-compiling tests must be written before a code implementation is made. Every single line of code implementation is written for the purposes of making a failing test pass. After the test passes, refactoring is conducted to keep the project in a maintainable state. For testing, JUnit was chosen as the unit testing framework of choice for this project. The implementation of the game is made with Java and offers the ability to play Dominion against other players over a network. Network communication is done through the usage of sockets where messages are modelled with protocol buffers, Google’s mechanism for serializing structured data. The user interface was designed using JavaFX. Design patterns were explored as solutions to problems that arose following TDD.