Author: Bruce Moreland
Date: 18:29:59 10/16/98
Go up one level in this thread
On October 16, 1998 at 17:00:07, John Stoneham wrote: >To those even remotely interested :) the latest update in my GrimReaper Journal >discusses how I've "tackled" move generation. When I started the project, I >wasn't sure how I could make practical use of Bitboards, but now they have taken >over as the dominant data form in my program. My current quandry is whether to >include testing if a generated move, while otherwise legal, would leave the King >in check, or to leave this as a thing actually tested by DoMove (since the move >may be cut-off and not even searched). For more info on how I handle this, right >or wrong, check out the latest entry: >www.geocities.com/SiliconValley/Lab/4714/index.html You have two sane choices: 1) Check for check at the point you execute the move on the board. 2) Ignore check when you make the move, but when you generate moves at the next ply, if you find you are taking a king, return beta. If you need to, you might want to return some other suitably huge number that you can use to indicate a king capture (so you'll know you're mated at the previous ply, if you need to know this). You have an insane choice: 1) Check for check at point of move generation. You may find that at different points, either of the sane choices is the right choice. Your program may go faster with one or the other. There might be circumstances that would cause you to use one in one part of your program and the other in the other point. There may be cases where you find that the insane choice is best. There is no one right answer to any of this. If you are writing a "conventional" program, you may find that something works for you and doesn't work for someone else. bruce
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.