CSSE 220 – Object-Oriented Software Development
GameOfLife
Objectives
Practice with graphics programming and pair programming.
Team Assignments:
To find which team you have been assigned to, look at the page on Moodle labeled Game of Life Team Assignments.
Your username will be associated with one of the teams found there.
Grading Rubric
Here is the grading rubric for this assignment.
Tasks
Pair Programming: Conway’s Game of Life. It is a pair programming problem, so do not work on it without your partner.
-
In Eclipse, checkout the GameOfLife project from your shared repository for this project:
- This is a shared repository where you’ll work on Game of Life with your partner.
- The URL for your shared repository is:
http://svn.csse.rose-hulman.edu/repos/csse220-201610-gameoflifeXX
where XX
is your team number as given by your instructor.
- Note: Now that you’re working with a partner, you can get hard-to-resolve SVN conflicts with your partner’s code. So please remember to do Team → Update to HEAD... for the project
- when you first start working in Eclipse, and
- whenever you are about to commit.
If you and your partner always work together doing pair programming, then SVN conflicts should not be a problem. (If
you do get stuck with one, start by going to the main course
webpage and following the link to "Resolving Subversion
Conflicts" Ask for help if you are still stuck.)
- Complete the
TODO
items in GameOfLife
and GameOfLifeTest
. The TODO
items are numbered in the order that you should complete them.
- Try some different initial configurations. The method
getGliderList()
in GameOfLifeMain
generates a list representing the classic glider formation.
- Make sure that:
- Both team members understand all the code the team is turning in.
- All methods are documented.
- All
TODO
items are completed.
- No errors or warnings remain.
- To receive full credit for this assignment: the grid MUST
wrap around.
That is, for M rows and N columns:
- The neighboring row for row 0 is row M-1 for M rows (and vice-versa).
- The neighboring column for column 0 is column N-1 for N columns (and vice-versa).
As shown below, the blue cells are neighbors with one another across rows and columns. And the neighbors for
the three different red cells are each shown in green respectively.
You must also generate unit tests for the game of life project (see the rubric for how these will be graded)
Remember, in all your code:
- Write appropriate comments:
- Javadoc comments for public fields and methods.
- Explanations of anything else that is not obvious.
- Give self-documenting variable and method names:
- Use name completion in Eclipse, Ctrl-Space, to keep typing cost low and readability high.
- Use Ctrl-Shift-F in Eclipse to format your code.
- Take care of all auto-generated TODO’s.
- Then delete the TODO comment.
- Correct ALL compiler warnings.
- Quick Fix is your friend!
Turn-in Instructions
Turn in your programming work by committing it to your SVN repositories.