Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Comment on solving illegal moves, plz!

Author: Pham Minh Tri

Date: 17:53:51 02/11/01

Go up one level in this thread


On February 11, 2001 at 20:10:23, James Swafford wrote:

>On February 11, 2001 at 18:20:57, Pham Minh Tri wrote:
>
>>Hi,
>>I know there are three ways to deal with illegal moves (side to move is in check
>>after taking those moves):
>>1) Generate legal moves only.
>>2) Check and cut off illegal moves before taking a move.
>>3) Take a move without checking it and let program captures the king in the next
>>ply (if it is an illegal move).
>>
>>I am wondering which one is better (faster). Is there any other way?
>>Any comments would be appreciated.
>>
>>Pham
>
>Generating only legal moves obviously requires more code, and therefore
>takes more time.  On the other hand, you don't have to do a post-move test
>for a "king attack".
>
>I think most folks do the latter - just gen "pseudolegal" moves and do a
>post-move test for an attacked king.  (If you just moved, but your king
>is in check, your move was illegal.)
>
>There may be cases where generating strictly legal moves will save
>a bit of time.  At one time Bob did this when in check.  His reasoning
>was that when in check, most moves will be illegal, so using a subroutine
>designed specifically for generating check evasions would be more
>efficient than generating a lot of illegal moves, cycling through most
>of them, and "kicking back a ply" after the post-move test revealed
>the move wasn't legal. I assume he still does this, but I'm not sure.
>
>As usual, there is one way full proof way for you to find out for sure
>what works best with your code. :-)
>
Yes, but your and other comments will help me to save much time. Reading,
thinking and asking before coding seem to be the best way in computer chess ;-)

>Out of curiousity, what type of move generation are you using?
>(i.e. 0x88,  bitboards, ...?)

I use 0x88 type. First, I generated legal moves only. Now I have just changed to
second one and thinking about the third.

>
>--
>James



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.