Project 03: 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. In this project the actual quest is irrelevant - assume a party of adventurers has set out to explorte a ruined city and one of their number (the player) entered the Forbidden Tower and discovered why it had that name. He (or she) discovered that on entering the tower, the apparently solid floor disappered from beneath his feet and he fell down a chute to an underground cavern lit by a mysterious light. The only way out is through a succession of rooms, but to unlock the doors between them it is necessary to pass a succession of tests.

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 (e.g. Chinese & Indian), draughts, halma, hnefltafl (the Viking Game), card games (various forms of patience) etc.

2) Solve a word problem - hangman, 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, Sudoku, Mastermind (with coloured pegs), "Logic Problems" with grids, etc.

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

For each example, you would have to decide what conditions count as passing the test. The challenge here for the project student is to implement 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 no more than 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. Typically each project should implement three different types of problem so that the player would have a variety of tests to reach the exit.