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.|
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
jarfile students would import into their project to get access to the provided view and other instructor-supplied code.)
jarfile containing JUnit tests for any class that implements
IIgelGame. See README for instructions.)
Extra info about this assignment: