Project 09: Design a Quest.

There are many examples, usually in fantasy gaming, where the hero has to solve a number of problems in order to complete a quest. It would be possible to produce a system for this as an M.Sc Project. The project would need to present some sort of context - a story to explain why the player is engaged on the quest. In fantasy games, this is usually to acquire some magical artifact which may be used to save the world from some danger. The actual details I leave to your imagination, however the player should have to pass through a number of rooms (or caverns) and solve a problem of some sort in each one before passing on to the next.

The project software would offer a number of problems to be solved, with some mechanism for selecting them at random so that each time the program is run, a different selection of problems are displayed. This means you need some method of selecting the problems on this occasion (including a variety of types of problem).

The types of problem could include

1) Win a game against the computer - e.g. chess, early forms of chess (Chines & Indian), draughts, halma, hnefltafl (the Viking Game), card games (various forms of patience) etc.

2) Solve a word problem - hangman (already written), crossword, codebreaker, finding words in a grid of letters etc.

3) A quiz or a group of riddles.

4) A logic problem - Towers of Hanoi (already written), Sudoku, Mastermind (with coloured pegs), "Logic Problems" with grids, etc.

5) A spatial logic problem - e.g. Tiles (already written), Maze cards, Jigsaw puzzles etc.

For each eaxmple, you would have to decide what conditions count as passing the test. For example, the Sphinx offered one riddle and ate those who failed to guess it (however this riddle is now sufficiently well known that you might expect anyone to answer it without difficulty). There are a wide variety of chess programs, some now at grand-master level - you would need to use a fairly simple level to give your users a chance. The challenge here for the project student is to imlement the right level of difficulty - too easy and the player loses interest, too difficult and the player makes no progress.

It would require too much work to develop suitable software for all the types of problem and it will not be possible for a single student to complete them all in the time available. A minimal project (deserving just a pass mark) would implement only one type of problem within a structure designed for the full system. A better project would include several problems of different types or provide an especially neat solution to a particularly tricky problem.