Author: Robert Hyatt
Date: 08:18:07 02/22/99
Go up one level in this thread
On February 21, 1999 at 18:48:16, Nobuhiro Yoshimura wrote: >>On February 20, 1999 at 21:31:13, Nobuhiro Yoshimura wrote: >> >>>I have a question for how other programmers are implementing it. >>>When we use iterative-deeping and transposition table, it is very likely >>>to get a good move from a hash table. Since we get the move without >>>calling a move-generator and start searching, I have no idea whether or >>>not the node has only one move. >>> >>>How do you know ? >>>Do you call a special check routine in order to know the node has a sinlge move >>>when king in check? >> >> >>In my case, when in check, I have a special legal move generator that I use >>even before trying the hash move. This is a pretty rare case overall, and >>doing this lets me catch the case you are looking at.. because I know how >>many legal moves there are before I ever search the first move, if I start >>off in check. If I don't, I never trigger a one-reply extension anyway. > >Thank you. >Before I asked this question, I looked at the Crafty source-code, but >I missed finding that codes. look at movgen.c, procedure=GenerateCheckEvasions(). Shows you what you can do with the wizardry of bitmaps. :) And it solves this problem. I did this same sort of extension in Cray Blitz, but less efficiently.. what I did was to set a counter to 0, and then for each move I searched, when I found that the move was _not_ illegal, I incremented the counter. When I finished searching at that ply, and the counter was == 1, I re-searched that one move again, with 1 more ply of search. This is somewhat inefficient, but the move ordering is better, so it wasn't bad overall. And since we didn't have a legal move generator like I do in Crafty, we had no other choice there.
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.