Homework 5 — Game Night!
Due Friday, April 4th; Wednesday, April 17th; Wednesday, May 1st at 9pm (5, 45, 150 points)
Late submissions will not be accepted for the due date on May 1st
Credit:
– checkpoint0.[pdf|txt] (checkpoint 0)
– checkpoint1.[pdf|txt], prototype.pdf (including user testing results!),
finalproject.zip (including all code so far) (checkpoint 1) – finalproject.zip (final deadline)
Instructions:
You may work with a partner for this assignment. You must store your code in a private repository if you are working with a partner. Everyone must complete interview grading after your final submission has been turned in. Project presentations will be held in class on May 2nd. Attendance is required.
Your job is to design and implement a board game that has a graphical user interface. This game can be a game of your own design, it can be a near-replica of a game that already exists, or it can be loosely based on a game that already exists.
Gameplay requirements (minimum):
1. Give a brief description of how your game is played and what (if any) game it is based off of.
2. Your game must have some sort of “playing field”—a board, where cards are displayed, etc, showing the current state of the game. Briefly describe what yours will look like.
3. Your game must have a consistent theme. What will it be?
4. You must have at least 3 different types of resource. What are they?
5. Players must be able to acquire resources. How?
6. You must have at least 2 different buildings/structures/upgrades that are related to one
another. What are they?
7. You must have at least 1 other mechanic (cards, a robber, trading, etc). What is it?
8. Your game must be multiplayer. How many players will you allow?
9. The computer must be able to control any number of the players (including all players).
What will the basic computer strategy be?
10. Your game must have well-defined begin and end states. What are they?
11. (Do you have any other features that you are hoping to incorporate?)
Simulation requirements (minimum):
1. Your GUI must include a mechanism by which to automatically simulate any number of games being played between computer players.
CSCI 3010 — Spring 2019 — Muzny — Homework 5 (Final Project) 1
2. After each game has been simulated, your GUI should display a graph showing how many games which player has won so far.
a. If accumulation of resources from game to game is more important than who won an individual game for your project, your graph should display the accumulation of resources over time.
Technical requirements:
1. You must build your game in c++, using Qt.
2. Your interface must be legible.
a. This must b e a graphical UI.
b. You must produce a low-fidelity prototype and conduct user testing. The game
should be easily playable.
3. You should plan on separating your objects into separate files as makes semantic
sense.
4. You must use and implement 1 of the following design patterns: flyweight, iterator,
factory, and prototype.
5. You must have an appropriate inheritance relationship between at least 2 objects. They
should have at least one method that is virtual and is appropriately used.
Checkpoint 0 (Friday, April 4th at 9pm): checkpoint0.pdf
1. Your name & your partner’s name (if you have a partner).
2. If you have a partner, invite Felix to collaborate on your private repository.
3. Address the gameplay requirements. For each requirement, answer the question at the
end of the item.
4. What is your design proposal for the underlying object models for your project? (include
design pattern and inheritance relationship proposals here)
5. What do you planned to have completed for Checkpoint 1? This should be a detailed list.
Make sure to address what a user should be able to see/do by the this checkpoint.
Checkpoint 1 (Wednesday, April 17th at 9pm):
prototype.pdf (can be turned in on paper before the end of day on the 17th)
1. Low-fidelity prototypes & feedback from at least 2 people not in your group.
a. Feedback can be from anyone: friends, family, classmates
b. Be specific when you write down the feedback—what elements/interactions
should be changed/different, was there something about the design that the
person interacting with your prototype appreciated?
checkpoint1.pdf
2. What you planned on doing for this homework deadline. (Copy + pasted from Checkpoint 0)
3. What you actually accomplished for this deadline.
a. Note any differences and explain why they occurred. Prefer honesty over
excuses.
CSCI 3010 — Spring 2019 — Muzny — Homework 5 (Final Project) 2
4. What you have left to complete before the final deadline.
5. Screenshots of where your program is currently at. They don’t have to be exhaustive but
they should adequately depict the current state of your project running.
finalproject.zip
– Your commented code up until this point.
Final Deadline (Wednesday, May 1st at 9pm): finalproject.zip
– Your commented code, fully implemented.
Interview Grading and Project Presentations
– Interview grading will occur during the final week of classes and finals week.
– All projects will be presented on the final day of class (attendance is mandatory!),
during which we will award prizes to the projects for different categories. The categories
will be:
– Best project to show to a friend
– Best project to show during an interview
– Most fun
– Most beautiful
– Prizes will consist of eternal fame and glory.
CSCI 3010 — Spring 2019 — Muzny — Homework 5 (Final Project) 3