How does a chess algorithm work?:
What a chess computer tries to do is
generate the board-position tree five
or 10 or 20 moves into the future.
Assuming that there are about 20
possible moves for any board position,
a five-level tree contains 3,200,000
board positions. A 10-level tree
contains about 10,000,000,000,000 (10
trillion) positions. The depth of the
tree that a computer can calculate is
controlled by the speed of the
computer playing the game. The fastest
chess computers can generate and
evaluate millions of board positions
per second.
Once it generates the tree, then the
computer needs to "evaluate the board
positions." That is, the computer has
to look at the pieces on the board and
decide whether that arrangement of
pieces is "good" or "bad." The way it
does this is by using an evaluation
function. The simplest possible
function might just count the number
of pieces each side has. If the
computer is playing white and a
certain board position has 11 white
pieces and nine black pieces, the
simplest evaluation function might be:
11 - 9 = 2
Obviously, for chess that formula is
way too simple, because some pieces
are more valuable than others. So the
formula might apply a weight to each
type of piece. As the programmer
thinks about it, he or she makes the
evaluation function more and more
complicated by adding things like
board position, control of the center,
vulnerability of the king to check,
vulnerability of the opponent's queen,
and tons of other parameters. No
matter how complicated the function
gets, however, it is condensed down to
a single number that represents the
"goodness" of that board position.
Source.
For building your own javascript 'engine' that's able to play chess at a basic level check Step by Step Javascript Chess with CPU oppo
If you scroll down it contains the source code of this, must say very limited, chess engine purely based on javascript. It also has a working version of the game to try out and all the necessary resources for building your own.
Some useful resources:
- First implementation of a chess engine in Javascript
- The Anatomy of
Chess Programs, by Tony Marsland, is a nice intro on how current
chess programs work.
- Chess Space
- Paul
Verhelst - Question and Answers
- Bibliography
on Minimax Algorithms (newer version).
- Crafty is a strong program
whose source code is freely available and, for a chess program, quite
readable.
- Unfinished Work and Challenges to Chess Programmers
- Is there a perfect algorithm for Chess? Discussion here on so
- How Computers Play Chess The best book I've found describing the theory behind chess AI algorithms