Igel Argern is a German board game, whose name loosely translates as "Hedgehogs in a Hurry". This board game makes for an excellent CS 2 semester project because it is very flexible and utilizes an unusually large number of different CS 2 topics. We present two projects here:
The complete source code is available and instructors may use it as the foundation for smaller projects.
The standard game is played on a grid with 6 rows and 9 columns. Each player has four tokens (representing hedgehogs) that he or she must move from the left column to the right column. Hedgehogs sharing a square stack on top of each other. Only the hedgehog on the top of a stack may move. On his turn a player:
The game is interesting because:
|
Topics | This board game uses an unusually large number of different CS 2 topics including: two-dimensional arrays, exceptions, interfaces, inheritance, File I/O, GUI, Presenter First design, and stacks. |
Audience | Appropriate for CS 2 or later. |
Difficulty | This is an advanced project designed to be an eight-week semester project for CS 2; however, it could easily be broken into several smaller projects. |
Strengths | This project's main strength is its flexibility:
|
Weaknesses | It's a big, long project that requires a lot of supervision. |
Dependencies | This project requires most CS 2 topics. In addition, students need to have been introduced to some basic software design techniques. |
Variants: |
The game rules come with over 40 variants. Instead of writing the game, students could be given the demo jar file and be asked to:
|
The writeup for the large project assumes that instructors and students will follow a design process called Presenter First. We have found Presenter First to be very effective in helping students break a large, overwhelming project down into manageable steps. If you are not familiar with presenter First or the Model-View-Presenter design pattern, you may want to quickly read our motivation for using Presenter First. It is certainly reasonable to assign a Igel Ärgern project that is not based on Presenter First/MVP; however, instructors who choose this option will probably have to make some changes to the provided GUI (or have the students write the GUI themselves.)
java -jar igelArgern.jar
. This is also the jar
file students would import into their
project to get access to the provided view and other instructor-supplied code.)
jar
file containing JUnit
tests for any class that implements IIgelGame
. See README for
instructions.)
Extra info about this assignment: