Author: Tord Romstad
Date: 10:47:30 02/23/05
Go up one level in this thread
On February 22, 2005 at 20:28:21, Scott Gasch wrote: >First of all, why even decide whether a move is checking until you play it? (I >ask that rhetorically because I do flag moves as checking or not before they are >played). But it seems reasonable to me to not know whether the move is check >(or legal, for that matter) until you send it to MakeMove. Unless, for some >reason, you want the check flag information before the move is made (to decide >pruning? to score the move?) then don't bother with this stuff. Pruning is indeed the most important thing. I never want to prune a check. Knowing whether a move is a check before you make it is also useful if you want to use ETC or related techniques. >If, however, you decide you do want to know if a move is checking before you >play it (as you generate it? when you select it in search?) then Uri's advice >is good. However it's not fast. It is the fastest way I know to tell if a move >checks the king but it's still about 8% of my program's runtime overhead. 8 percent? Are you sure? On my profiler outputs, the is_check() and is_legal() functions are so far down the list that I have never even noticed them. Legality checking and check detection (before or after the move is made) is virtually free. If this really consumes 8% of your CPU time, your implementation must be inefficient, or the rest of your program must be incredibly fast. Tord
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.