In this project, a student (or a pair of students) completes a Java implementation of the Domineering board game. Advice is provided on breaking this program down into methods and testing those methods. Learning objectives include using multidimensional arrays, developing a simple GUI and manually testing individual methods.
Prior exposure to static methods and multidimensional arrays is recommended. Additional recommendations include: To quickly examine this activity, see the PDF posted below. This is the instruction sheet that the students will work through.
To look more deeply or modify the assignment for your own use, get the latest version of the PDF, Java code, and any other files here:
https://github.com/PeterDrake/ljing2-skeletons/tree/master/Domineering
To quickly install and run this activity, as well as all of the other Learn Java in N Games activities, follow the instructions here: http://ljing.org/ .
This project employs relevant and meaningful content by using a board game called “Domineering”. It is also relevant in that a number of students hope to go into the computer game industry (which is bigger than the film industry). Finally, games are a valuable stepping-stone from "toy" problems to "real-world" problems: the rules are nontrivial and can have subtle consequences, but everything is still well-defined. While it could be completed by an individual student, it is well-suited for pair programming, a collaborative learning experience that has significant benefits for engagement and inclusion.