Game Development Reference
not that dumb either. Controlling the search depth also provides the AI pro-
grammer with a good tool for controlling difficulty.
Look-ahead methods are conceptually easy for the AI programmer to under-
stand. Letting the AI search relieves the AI programmer of the burden of crafting
an AI that makes good moves for the future by looking only at the current
situation. Look-ahead provides a goal-oriented approach; the programmer
programs the ability to recognize a goal state or to recognize states that will lead
to the goal state, and then the AI searches ahead for them. Dealing with the goals
may be easier for the programmer than dealing with alternative methods for
getting to them.
Look-ahead dies when the number of combinations to evaluate grows too high.
Complexity can sometime be controlled by pruning, but imperfect pruning
methods risk pruning moves that looked poor when pruned but would have led
to superior results if followed. Even exact pruning can remove richness of play.
Look-ahead gives strange and bizarre results if the player does not play in the
manner that the AI is using to model player behavior. The AI ''over thinks'' the
situation and comes up with what would be elegant moves if it were playing
against someone else (our implementation can be made to show this trait).
Game AI look-ahead can be applied easily to games that have discrete moves and
no hidden information. Look-ahead works particularly well for end-game
situations for games that would not otherwise use it. A limited look-ahead AI can
advise other AI methods, particularly when the other methods are occasionally
prone to blunders. Look-ahead by itself is difficult to apply to games with a high
branching factor, such as Go or Chess , without assistance from other methods.
The complete code for this project is also on the CD. In addition, there are
multiple versions of some of the files reflecting the evolution of the AI code. If
you use the code on the CD instead of typing it in, be sure to read the com-
mentary that goes with the code so that you will understand the context in which
the AI will operate. Like many of the games we have implemented so far, we will