I'm developing improvements to my chess engine (Source code for original version https://github.com/m24gstevens/Chess/tr ... /m24gc/1.0). In my latest (test) version, I wrote a specialized capture generator for the quiescence search, and used PeSTO's evaluation function (Temporary, for testing). Finally, I implemented a basic "delta pruning" procedure in the quiescence search:
Code: Select all
 int quiesce(int alpha, int beta)	// Quiescence, in the "fail hard" framework
 ...
 static_eval = evaluate()
 if (static_evaluation >= beta)		// Fail high
 	return beta
 // This is the "delta pruning"
 int delta = 975 	// Queen value
 if (pawn_might_promote())
 	delta += 775
 if (static_evaluation < alpha - delta) 	// I.e. a "hopeless" position
 	return alpha 
 ...
 < rest of quiesce>
 ...
What could be the reason for this shortcoming? Does it indicate some error in the evaluation function?

