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:
parent
0edad63b44
commit
66d5c13a88
2 changed files with 8 additions and 4 deletions
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Add table
Reference in a new issue