I order you to forgive yourself!
I am currently writing a chess engine that will work under the UCI protocol; it means that it can work under a UCI chess interface therefore I don't need to write my own. At this point, almost everything is done (Move generation, checkmate and stalemate, ply and so on), all what is left is to make an analysis that will tell the engine if it should play a certain move more than an other one. This is how I think I will do it:
In order to make it stronger, I will have to experiment. My first idea is to give a value for each move. The move with the highest value is then played.
To calculate the move value, I will add all of whites's pieces (Positive numbers) with black's pieces (negative numbers) and if the result is positive, white is winning. The value each piece will have will change during the game.
At the start of the game, pieces in the middle will have a bigger value. Therefore, if a move brings a piece in the middle, and an other brings it to the side, the one in the middle will be chosen. (Of course, there will be more criteria, but that's the basic.)
Cool facts I found about chess using my chess engine:
At move 0, there are 20 possible moves.
After move 1, there are 400 possible moves.
After move 2, there are 8902 possible moves.
After move 3, there are 197281 possible moves.
I will probably post then engine when it starts playing move that are fairly good.
Make sure you add animations, and have the queen shake her butt when she walks.
I know the number of moves eventually hits a low point, but you can't just go by the best value, since you also have to think 3-4 moves ahead. I can't help with the theory at all, though I would expect things like deep blue run on pretty sophisticated software.
"Parliamentary inquiry, Mr. Chairman - do we have to call the Gentleman a gentleman if he's not one?"
We can't explain the universe, just describe it; and we don't know whether our theories are true, we just know they're not wrong. >Harald Lesch
I order you to forgive yourself!
I'll have to rethink what I've been working on, it can now play, but it does it way too slow.