Acorn User
1st June 1984
Author: Martin Bryant
Publisher: Century
Machine: Generic
Published in Acorn User #023
Computer Gamesmanship
This book is actually a collection of articles written in 1980/81 for PCW magazine, presented in eighteen chapters. It is fairly comprehensive, the first seven chapters covering the fundamental programming techniques involved in games and various enhancements. The final chapters cover specific games (draughts, chess, backgammon, stud poker, draw poker, Othello, go-moku, bridge, shogi and dominoes).
The style of writing is active and interesting, but there are a few places where time and care should have been used in explanations.
Anyone wishing to write an 'intelligent' game program could use this book. Obviously, every game cannot be covered as thoroughly as in other specific texts, but here in one paperback is all the basic theory, and some of the more advanced techniques. Levy also gives many references to other specific texts, in case you wish to develop your program further. The book may also serve to help beginners decide which sort of game to attempt first, by stating the relative difficulties of each.
Initial chapters tackle minimax tree searching for game trees, including the many enhancements such as alpha-beta pruning, move-ordering, the killer heuristic and windowing. The book then continues to explain how to design simple or complex evaluation functions and how to quantify and weigh the various relevant factors. It also goes into some algorithms which allow your program to learn, and thus, hopefully, improve its play.
Card game basics are covered, including the relevant probability theory, deducing information from bidding and actual play, expected value trees, psychology and bluffing.
The chapter on Samuels' draughts program is rather bare, considering it was the first to play at a world class standard. Also, the awkward data structures in draughts are not mentioned in any way. Chess has the largest coverage, with some interesting game annotations I hadn't seen elsewhere. All the major stages in computer chess development are mentioned. The backgammon chapter is now rather outdated as Berliner's program BKG 9.0 won the world championship after the articles were written. (This program has been the subject of an article in Scientific American which is better than Levy's chapter.)
Stud and draw poker are covered in an interesting way, although once again, Levy mentions some problems with the 'bluff' aspect, but fails to suggest any real solutions. However, I'm sure these two chapters would help many people write good poker programs. Othello is given a good airing, and many people who have not written any strategy games programs before may find this an ideal start. The gomoku suggestions are reasonable but not really adequate. The game is easy to program for legal play, but very difficult for strong play. The two bridge chapters (one on bidding, one on play) seem very inconcise. This is probably because the game is, as stated, very difficult to program well.
Shogi is covered in the best way - referral to other more detailed texts! This game of Japanese chess is probably totally alien to most British people and so it would be very difficult to say the best way to program it. I imagine anybody who seriously attempted writing a shogi program would soon become one of the experts in the Western world, with more being leant from experience than from Levy's chapter.
Finally, dominoes is given a thorough computer strategy, fairly easy to program, which as Levy states, if used 'would probably produce a program of world championship calibre!'.
A lot of development work has been done over the past three years in the field of artificial intelligence in games programs and so the book is certainly lagging behind in several aspects. I would have preferred to see some changes to the original articles to reflect the latest developments.
Still, the book is quite good value for £7.95.
Scores
Generic VersionOverall | 53% |