From: Marco Costalba Date: Sun, 17 Jan 2010 13:55:53 +0000 (+0100) Subject: Order check moves used in qsearch X-Git-Url: https://git.sesse.net/?p=stockfish;a=commitdiff_plain;h=66d5c13a88f041247adf2ba62acdf936a6d6224e;ds=sidebyside 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 --- diff --git a/src/movepick.cpp b/src/movepick.cpp index f4f475fb..8d8060b5 100644 --- a/src/movepick.cpp +++ b/src/movepick.cpp @@ -141,7 +141,7 @@ void MovePicker::go_next_phase() { case PH_EVASIONS: assert(pos.is_check()); lastMove = generate_evasions(pos, moves); - score_evasions(); + score_evasions_or_checks(); return; case PH_QCAPTURES: @@ -150,8 +150,8 @@ void MovePicker::go_next_phase() { return; case PH_QCHECKS: - // Perhaps we should order moves move here? FIXME lastMove = generate_non_capture_checks(pos, moves); + score_evasions_or_checks(); return; 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 // destination square is not under attack, ordered by history // value, and at the end bad-captures and non-captures with a @@ -232,6 +232,10 @@ void MovePicker::score_evasions() { Move m; 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++) { m = cur->move; diff --git a/src/movepick.h b/src/movepick.h index b42f839b..a9a3561a 100644 --- a/src/movepick.h +++ b/src/movepick.h @@ -58,7 +58,7 @@ public: private: void score_captures(); void score_noncaptures(); - void score_evasions(); + void score_evasions_or_checks(); void go_next_phase(); const Position& pos;