Author: Anthony Cozzie
Date: 05:27:40 10/07/03
Go up one level in this thread
On October 06, 2003 at 22:24:18, macaroni wrote: >What are the usualy ways of pruning the quiescent search. I don't use bitboard, >so that cuts out some stuff, and makes a swap function heaps harder. At the >moment, I just say a capture is no good if it doesn't increase the score above >alpha-margin (50 centipawns for position stuff at the moment). Are there any >other simple, or sort of simple ways? >Cheers 1. You stepped on a mine here. Your "I don't use bitboards, because ____" will start a huge flamewar. Mark my words. 2. When you say "swap-off" function, I think you mean a capture evaluator. However, there is no reason you can't write a capture evaluator without bitboards (actually, there isn't really a good way to do it _with_ bitboards IMO). All you do is scan down each ray looking for pieces. Stop if you hit the edge or a piece that can't attack. There will need to be some special logic for pawns. This will give you data such as: White: attacks square with Q, B, P, N Black: attacks square with R, K, P, P So, from there you can write another function that guesses how much material the attacker will win/lose. Neither of these functions is easy to write actually, but IMO they are extremely necessary to writing a semi-strong chess program. Zappa in Q-search simply does not try losing captures. I personally do not like futility pruning. I am in the process of removing all alpha-beta dependent stuff from Zappa with the exception of null move. However, in an engine without significant position evaluation (beancounter) you may be able to get away with it <shrug>. I would *definitely* avoid extended futility pruning and razoring though. anthony
This page took 0.02 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.