1
0
Fork 0
mirror of https://github.com/sockspls/badfish synced 2025-04-30 16:53:09 +00:00

Order check moves used in qsearch

Use the same scoring system used for evasions. Small if any
increase, but should be in at least for completeness.

After 999 games at 1+0
Mod vs Orig +208 =601 -190 +6 ELO

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba 2010-01-17 14:55:53 +01:00
parent 0edad63b44
commit 66d5c13a88
2 changed files with 8 additions and 4 deletions

View file

@ -141,7 +141,7 @@ void MovePicker::go_next_phase() {
case PH_EVASIONS: case PH_EVASIONS:
assert(pos.is_check()); assert(pos.is_check());
lastMove = generate_evasions(pos, moves); lastMove = generate_evasions(pos, moves);
score_evasions(); score_evasions_or_checks();
return; return;
case PH_QCAPTURES: case PH_QCAPTURES:
@ -150,8 +150,8 @@ void MovePicker::go_next_phase() {
return; return;
case PH_QCHECKS: case PH_QCHECKS:
// Perhaps we should order moves move here? FIXME
lastMove = generate_non_capture_checks(pos, moves); lastMove = generate_non_capture_checks(pos, moves);
score_evasions_or_checks();
return; return;
case PH_STOP: case PH_STOP:
@ -224,7 +224,7 @@ void MovePicker::score_noncaptures() {
} }
} }
void MovePicker::score_evasions() { void MovePicker::score_evasions_or_checks() {
// Try good captures ordered by MVV/LVA, then non-captures if // Try good captures ordered by MVV/LVA, then non-captures if
// destination square is not under attack, ordered by history // destination square is not under attack, ordered by history
// value, and at the end bad-captures and non-captures with a // value, and at the end bad-captures and non-captures with a
@ -232,6 +232,10 @@ void MovePicker::score_evasions() {
Move m; Move m;
int seeScore; int seeScore;
// Skip if we don't have at least two moves to order
if (lastMove < moves + 2)
return;
for (MoveStack* cur = moves; cur != lastMove; cur++) for (MoveStack* cur = moves; cur != lastMove; cur++)
{ {
m = cur->move; m = cur->move;

View file

@ -58,7 +58,7 @@ public:
private: private:
void score_captures(); void score_captures();
void score_noncaptures(); void score_noncaptures();
void score_evasions(); void score_evasions_or_checks();
void go_next_phase(); void go_next_phase();
const Position& pos; const Position& pos;