Introduction
This chapter illustrates program structure via two examples: the first
uses a modular model; the second, an object model.
The first application provides a set of parametric modules for two
player games. A functor implements the minimax-ab
algorithm for the evaluation of a search tree. A second functor
allows modifying the human/machine interface for the game. These
parametric modules are then applied to two games: a vertical tic-tac-toe
game, and another involving the construction of mystic ley-lines.
The second application constructs a world where robots evolve. The
world and robots are structured as classes. The different behaviors
of robots are obtained by inheritance from a common abstract class.
It is then easy to define new behaviors. There, too, the
human/machine interface may be modified.
Each of the applications, in its structure, contains reusable
components. It is easy to construct a new two player game with
different rules that uses the same base classes. Similarly, the
general mechanism for the motion of robots in a world may be applied
to new types of robots.