A chess engine in 1326 bytes
nanochess.110mb.com
nanochess.110mb.com
Most people thinks that Deep Blue solved chess and as far as computer chess is concerned, the field is "finished". But it is far from the truth. The current top Chess engine (rybka) running on an off the self desktop computer could easily beat deepblue. Not because the current desktop hardware is equivalent or superior to deep blue (which it isn't) but because the chess knowledge of current top engine is much superior than deepblue running on a super computer.
Sorry for going a bit off-topic but I thought some of you might this interesting. Actually chess-engine field is a quite interesting field, as long as you are not trying to make money.
For UCI protocol the openbooks and TB are handled by the GUI - with an option to not use them. Same with the winboard protocol engine - but the engines handle the opening book and TB with the option to not use them if configured. Nothing is pre-programmed.
Opening book is the combination of best moves in the opening stages of the game taken from 1000s of games played by human players. Chess engine uses them to "minimize" the error in opening position. They can beat even the best grandmaster without opening book.
End-game Tablebases are every possible combination of moves at the end of the game. Currently only 3-4-5-6 pieces TBs are available (a combination of ~1.6 Terabyte of data).
Again, nothing is pre-programmed. Using them gives them an advantage of ~30-40 ELo points, which means little when you are already 300-500 elo points stronger than the strongest human opponent (fair guestimation IMO)
EDIT: Just realized you wrote "reprogrammed" not "preprogrammed", not sure what do you mean by "between rounds" and "Cheating". Most strong chess programs are binary builds and most of them use popular protocols like UCI and Winboard to handle GUI functions and everything is automated so I am kinda confused by the "reprogrammed" part.
I think Kasparov got overwhelmed by the numbers that DB was crunching and he lost the game psychologically even before the game started. If you actually studied the games he played against DB - you would see amateur mistakes made by one of the world's greatest grandmaster.
I think if he knew he wasn't playing a computer, he could have done a lot better.
Regardless, there is no comparison between deep blue and modern computer engines. To the best of my knowledge, most (popular) comp-comp tournaments and comp-human tournament, the binaries of the engines are given to the tournament organizers which are used in all games throughout the tournament. This is most definitely true for comp-human games; for comp-comp games it might depend on the participants and the organization hosting the tournament.
Kasparov believed that the Deep Blue team had spent a lot of time analyzing his style and looking for weaknesses. He felt it was unfair that Deep Blue was designed to beat him, personally, but he wasn't able to study it in the same way.
Kasparov decided to play an unusual defence in game 6 hoping to avoid any theoretical surprises his opponents may have prepared against his favourite defences, but it didn't work. At the same time, the pressure he was under no doubt contributed to his defeat.
Of course now Rybka doesn't need any 'help' from human handlers, it can comfortably beat strong Grandmasters (Rybka 3's ELO is over 3200).
If it is any consolation the surge in computer chess strength is largely thought to be due to modern engines evaluating positions more like a human would, rather than looking at more positions.
e.g. learning
That said, what interesting developments are you seeing in chess engines? I know that Rybka is aggressively pruning its search tree (its pos/s is an order of magnitude less than say Fritz), but question is how?
I'm about to start my first game. I'm going to laugh when it kicks my arse.
Edit: It prints out an ASCII-art board after every move. Apparently (since it's deterministic) it plays Scandinavian Opening against 1. e4. Anyhow, try it out.
Just kidding, probably not.