Author: Tim Foden
Date: 23:40:13 04/13/03
Go up one level in this thread
On April 13, 2003 at 18:38:03, Landon Rabern wrote: >On April 13, 2003 at 12:22:15, Martin Bauer wrote: > >>Hi all, >> >>I am looking for an easy to understand code how to generate only legal moves >>when king is in check. I think there must be many optimizations when king is in >>check... >> >>Language C, Pascal or Basic like or psedocode. I want to see the principles of >>generating legal moves. >> >>Bye >> >>Martin > >This is what I do currently in Betsy when in check to generate moves. > >First find all the squares the king can move to that are not occupied by your >own pieces. This is quick with bitBoards, just: > >bitBoard escapeSquares=kingMoves[board->blackKing]&(~board->blackPieces); > >now see which of these squares are attacked by the enemy, store in bitBoard >attacked. > >Then the legal king moves are: > >toMap=escapeSquares&(~attacked); > >If there was more than one enemey checking the king, then these are the only >legal moves and we are done. Just a quick question... What about the square opposite of the direction from a sliding attacker? For instance... [d]8/8/k7/8/8/R7/3K4/8 b - - 0 1 Do you generate a king move to a7, or not? :) Cheers, Tim.
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.