Author: Daniel Clausen
Date: 12:06:09 11/25/99
Go up one level in this thread
Hi On November 25, 1999 at 08:42:29, leonid wrote: > >I am curious about your InCheck-MovesGenerator. Do you use it for producing all >the moves beside the moves of the King? And if you do so, how you start your >procedure that recognize the legality of the moves? Do you make this by finding >at the beginning of given ply position of the King? And do you make work this >generator before even finding one single move? I am asking this to recognize my >part of the logic that correspond to your generator. The inCheck-MoveGenerator will (once I have time to finish it..) produce all legal moves, so yes, it also produces king moves. The logic is approx as follows: if(inCheck(sideToMove)) { if(numberOfAttackers>1) { // Produce only king evasion moves. } else { // 1. Produce king evasion moves. // 2. Produce moves which capture moves which capture the // attacker. // 3. If the attacker is not a knight, produce also moves where the // target square is between king and attacker. (and adding Mr Hyatts // pinning-check) } } else { // Call normal move-generator. } I hope I didn't forget something, but I can't check the code atm. Btw: Sorry for the bad formatting of my last 2-3 postings - I just switched to a new browser. :) Kind regards, -sargon
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.