Programming Assignment 4: Board Game
Contents
Overview
In this final programming assignment, you will design and implement a board game. You have a lot of flexibility in terms of what your board game will be—something traditional like Checkers, or something more like an adventure game (think Zelda on NES). Because of that, there will be a total of four milestones, as listed below.
(Back to top)Specifications
Your completed submission must have at least the following components (you're welcome add additional features to the game!):
- the game must use at least a 2×5 board (e.g., 10×10 is fine, 1×3 is not)
- there must be some way to win, loose, or tie
- it can be single- or multi-player (players can take turns at the keyboard in a multi-player game)
- the player should be able to choose a difficulty level
- the game state must be savable to an output file through a menu option
- that means there must also be a way to load a saved game
- at least one struct or class must be used (in a reasonable way)
- it's got to make sense
- it's got to be interesting—be creative!
Milestones
Milestone 1: Design
For this first milestone, you should submit a design for your program. I'm pretty flexible on what constitutes a design: it could be a sketch done on paper, something more formal done in PowerPoint (or the like), or even just a simple text file. Regardless, it must be easy to read and follow and must include at least the following information:
- your name and date
- what the theme and backstory for the game is
- an example of what the game board will look like
- the rules of the game
- what will be saved to file when the player chooses to save
- what your struct or class will be used for
- how difficulty levels will be incorporated
- different board sizes?
- more obstacle/enemies on the board?
- something else?
Submit your sketch in PDF, txt, PNG, or JPG formats to here. You can view the 5-point basic rubric here.
(Back to top)Milestone 2: Function design/Skeleton
For this milestone, you must determine what functions (and methods if you are using classes) you will use for your game. There is no exact limit on what you need, but keep in mind what we learned about refactoring and program design in Lab 6. You should use the same techniques used in that lab to decompose your game play into a series of functions. You must decide for each function what its purpose will be, what its name will be, what kind of data it will return, if any, and what parameters it will take.
Once you have decided on what functions and structs/classes you will use, make the code skeleton. Recall that a code skeleton is a .cpp file with all the function declarations, and stubs for the function definitions. Each function should have a JavaDoc comment above it, and pseudo code comments for what will happen inside the function. You don't need to implement any of the functions. If the function is suppose to return a particular value, return a placeholder (e.g., if it returns an int, return 0). Your skeleton must compile, but it does not need to run.
Submit your skeleton as a .cpp file here. You can view the 5-point basic rubric here.
(Back to top)Milestone 3: 50% of implementation
The point of this milestone is to prove that you're making progress on the implementation. 50% of the functions from your skeleton must be implemented. Your code must compile. Make sure your code is clearly commented.
Submit your half-implemented .cpp file here. You can view the 5-point basic rubric here.
(Back to top)Milestone 4: Completed program
For this milestone, finish your implementation.
Submit your .cpp file here. You can view the 10-point programming rubric here.
(Back to top)