Course Project

(preliminary version)

By the end of this course you will complete and hand in a programming project, worth 15% of your grade. Start early. Hand in during the finals week.

You have considerable freedom in the choice of your project. I have to approve your choice, though. Alternatively, you can pick one of my suggested projects from the list below.

You can use either the Metrowerks CodeWarrior (Mac lab), Visual C++ 5, or a UNIX compiler (gcc, g++, probably in conjunction with Tcl/Tk library if you want to do graphics). The point is that I must be able to run your program to grade it.

The possible projects are as follows:

Mathematical projects (little or no graphics)

Games (graphics and simple logic)

Here I want you to implement the graphics interface for a game. For a board game, you classes should
  1. store the position on the board,
  2. draw and re-draw the board,
  3. offer public methods through which another programmer will communicate a proposed move,
  4. check every move for correctness (i.e. compliance with the rules of your game),
  5. detect whether the game comes to an end with that move (a player wins, or no more moves are possible).
Your code should be written with the view towards the possibility that another programmer will write a logic module for your game, and integrate it with your graphics front-end.

So far I could think of: