Author: Robert Hyatt
Date: 20:02:45 07/24/00
Go up one level in this thread
On July 24, 2000 at 21:51:30, Ralf Elvsén wrote: >On July 24, 2000 at 21:42:54, Robert Hyatt wrote: > >>On July 24, 2000 at 19:16:01, Larry Griffiths wrote: >> >>>On July 24, 2000 at 17:51:37, Robert Hyatt wrote: >>> >>>> >>>>Think about this: 99%+ of all moves are perfectly legal. Do you want to >>>>do the incheck test on them to make sure they are legal, which means you do >>>>the incheck test for 100% of your moves. Or do you want to do the "I capture >>>>a king to prove your last move was illegal" which only happens 1% of the >>>>time. >>>> >>>>_that_ is the efficiency issue I mentioned. >>>> >>>>If you use null move you have to be careful, because null move will certainly >>>>fail high if you are mated. :) >>>> >>> >>>What I see Bob, is spinning through a piece list at the ply following a move >>>generating all capture moves and then searching to see if one of the pieces >>>captured was a King, and if so returning the move is illegal. >> >>You can do that efficiently. At the next ply, generate the moves. Now you >>want winning captures first, right? so analyze the material gain, and >>simply set your piece values so the king is _huge_. That will make it pop >>to the top of the list. Now all you do is after sorting the moves, see if >>a king is the first piece being captured. If so, return your special value. >>If not, return the move to try... > >What do you think about letting the movegenerator see that the victim >is a king and then terminate? It worked OK for me. I would do it at the place where it impacts performance the least, while not doing too much extra work before exiting... so if that is where it fits best for you, that is where I would do it. For me, it would mean testing for a king capture at several places, rather than in the place where I have already sorted the captures and I know that a king capture will be first in the sorted capture list. > >> >>I do this in my q-search and never check for "in check" there. I do check >>for legality in my normal search, as the null-move will embarass you if you >>don't.. >> >> >> >> >>> >>>My current method does not go to the next ply if the king is in check and is >>>done after each move is made. >>> >>>If I move my incheck routine to the next ply and say "is the opponents king in >>>check" then return your last move is illegal, then it is only a matter of the >>>efficiency of spinning thru a piece list generating all capture moves and >>>searching for a king capture VS. using bitboards to see if the king is in check. >>> >>>Am I still missing something here ? >>> >>>Larry.
This page took 0.01 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.