CIT 591 Assignment 9: Three Musketeers
Fall 2009, David Matuszek

Purposes of this assignment:

General idea of the assignment:

Write a program to play the game of Three Musketeers.

You have probably never heard of this game. That's okay, the rules are simple--that's why I chose it. The link above is to a Wikipedia article that explains the game, and I can answer questions if necessary. It also happens to be a pretty good game.

Your program should allow the game to be played in three different ways:

You should work together with your partner to figure out how to structure the program, and to accept moves from the human.

This is a friendly competition between you and your partner. When you write code for your side, you should not just play randomly; you should try to win the game. Of course, you should still help each other as much as possible, but you might want to keep your strategy to yourself.

Advice

Remember that a good programmer is "creatively lazy." If you just start programming the first approach that comes to mind, you may be making things a lot more difficult for yourself. Even for a simple program like this, it's worthwhile to think about a couple of different ways you might organize the code, and choose the one that seems simplest. I know that many of you are too sure of yourselves to even try TDD, but it can help improve the structure of your program.

Grading

Your program should work. You should have Javadoc for all public entities. You should have JUnit tests for all public methods in your game, except those that do I/O. None of the code for deciding moves, either for the musketeers or for Cardinal Richelieu's men, should do any I/O.

In addition, this time your program will be graded heavily on style.

Due date:

Midnight Thursday, November 19, via Blackboard.