   looking for a good book for chess game programming
  hi, everyone, implementing AI for a little game which is to be played on a chess board.I need to evaluate the game tree, and apply the alpha-beta. could anyone tell me what is the best book for such programme, thanx. 
  There are a few books out there, but they aren''t really current, or they are specific to one area of computer chess, and most of them are hard to find and expensive if you can find them.Here are the ones I have:Scalable Search in Computer Chess: Algorithmic Enhancements and Experiments at High Search Depths by Ernst A. Heinz - Currently one on Amazon for $127.00.Computer Chess Compendium by David N. Levy - Can''t find this one anywhere at the moment. I got a paperback edition from an online computer chess friend for $50.00.Chess Skill in Man and Machine by Peter W. Frey - One used on Amazon for $30.You really shouldn''t get any of these to learn how to write a computer chess program. Most of the stuff that is in these is stuff you could either get online for free, or from a local university library. If your local library doesn''t have the articles you want, they can borrow them from other libraries through Inter-Library Loan (ILL). These books I mentioned are nice to read if you don''t mind spending the money, but they are basically just fun to read if you are just a computer chess hobbyist like I am. I didn''t get them to learn anything from them. I just wanted to read them for historical sake ;  thanx for reply russell, I knew "Scalable Search in Computer Chess",it''s out of stock in amazon.co.uk, does it actually teach you the skill of evaluate function? and is there any paradigms for different board games, such as Go, Othello.thanx again ;  Go is an entirely different ball game. You can get a lot of information on the ICGA journal. http://www.cs.unimaas.nl/icga/;  Theres a series of articles on this site abour coding up a chess game, I havent really looked at it properly so i dont know what it looks like. May be worth a look before you part with your money though.;  I think this is the first articticle on GameDev about chess programming.http://www.gamedev.net/reference/programming/features/chess1/Hope that helped. ;  Go under Articles and Resources, then under Artificial Intelligence, then under Gaming.  I think there are 5 in the series, and they are there.;  Oh... I guess you already have a link there... sorry.;  Scalable Search in Computer Chess is mostly about search  If you want to learn about evaluation, the best thing to do again is probably to read anything that is online about it, and read the source code for the evaluation functions of free chess programs. Another thing is to try and understand the role of the evaluation function within YOUR program. For instance, in one program (hypothetically) the search calls the quiescence search at the leaf nodes, then the quiescence search hands off "quiet" positions to be evaluated. So your evaluation function usually only has to worry about evaluating positions where things are not very likely to change much very soon. Maybe that will help you decide what you should evaluate and what you shouldn''t. Typically, people evaluate material on the board, the piece''s activity (is it on a useful square or is it stuck in a corner where it can''t do anything?), sometimes mobility (of various kinds), pawn structure, king safety, and sometimes people evaluate special cases. Special cases might include evaluation code to prevent a certain kind of "trojan horse attack" where the opponent offers a knight on g4 or g5 to open the h-file, and then the opponent has an easy mate. The program initially takes the knight because it thinks it is winning a piece. So sometimes you have to hand program things like that. Or you might want to program special evaluation for certain endgames. Things that apply in different portions of the game don''t apply in other parts. For instance, in the opening it is important to control the center of the board. In the endgame, it may or may not be important to control the center. Anyway, hope that helps. ;  Write your program with some simple evaluation function. Then let it play against a stronger program, let it get crushed and you will soon find ideas to improve your evaluation function. Does your program happily push the pawns in front of its king leaving it too naked? Add a bonus for having pawns around the king. Does it not push passed pawns to crown? Add a bonus for passed pawns that increases with the rank. And so on. 