mirror of
https://github.com/sockspls/badfish
synced 2025-05-01 09:13:08 +00:00
Add Null move support to MovePicker.
No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
parent
268c53ac51
commit
f6d2452916
2 changed files with 7 additions and 3 deletions
|
@ -43,7 +43,7 @@ namespace {
|
||||||
/// Variables
|
/// Variables
|
||||||
|
|
||||||
CACHE_LINE_ALIGNMENT
|
CACHE_LINE_ALIGNMENT
|
||||||
const MovegenPhaseT MainSearchPhaseTable[] = { PH_STOP, PH_TT_MOVES, PH_GOOD_CAPTURES, PH_KILLERS, PH_NONCAPTURES, PH_BAD_CAPTURES, PH_STOP};
|
const MovegenPhaseT MainSearchPhaseTable[] = { PH_STOP, PH_NULL_MOVE, PH_TT_MOVES, PH_GOOD_CAPTURES, PH_KILLERS, PH_NONCAPTURES, PH_BAD_CAPTURES, PH_STOP};
|
||||||
const MovegenPhaseT EvasionsPhaseTable[] = { PH_STOP, PH_EVASIONS, PH_STOP};
|
const MovegenPhaseT EvasionsPhaseTable[] = { PH_STOP, PH_EVASIONS, PH_STOP};
|
||||||
const MovegenPhaseT QsearchWithChecksPhaseTable[] = { PH_STOP, PH_TT_MOVES, PH_QCAPTURES, PH_QCHECKS, PH_STOP};
|
const MovegenPhaseT QsearchWithChecksPhaseTable[] = { PH_STOP, PH_TT_MOVES, PH_QCAPTURES, PH_QCHECKS, PH_STOP};
|
||||||
const MovegenPhaseT QsearchWithoutChecksPhaseTable[] = { PH_STOP, PH_TT_MOVES, PH_QCAPTURES, PH_STOP};
|
const MovegenPhaseT QsearchWithoutChecksPhaseTable[] = { PH_STOP, PH_TT_MOVES, PH_QCAPTURES, PH_STOP};
|
||||||
|
@ -63,7 +63,7 @@ namespace {
|
||||||
/// move ordering is at the current node.
|
/// move ordering is at the current node.
|
||||||
|
|
||||||
MovePicker::MovePicker(const Position& p, Move ttm, Depth d,
|
MovePicker::MovePicker(const Position& p, Move ttm, Depth d,
|
||||||
const History& h, SearchStack* ss) : pos(p), H(h) {
|
const History& h, SearchStack* ss, bool useNullMove) : pos(p), H(h) {
|
||||||
ttMoves[0] = ttm;
|
ttMoves[0] = ttm;
|
||||||
if (ss)
|
if (ss)
|
||||||
{
|
{
|
||||||
|
@ -115,6 +115,9 @@ Move MovePicker::get_next_move() {
|
||||||
phasePtr++;
|
phasePtr++;
|
||||||
switch (*phasePtr) {
|
switch (*phasePtr) {
|
||||||
|
|
||||||
|
case PH_NULL_MOVE:
|
||||||
|
break;
|
||||||
|
|
||||||
case PH_TT_MOVES:
|
case PH_TT_MOVES:
|
||||||
movesPicked = 0; // This is used as index to ttMoves[]
|
movesPicked = 0; // This is used as index to ttMoves[]
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -38,6 +38,7 @@
|
||||||
struct SearchStack;
|
struct SearchStack;
|
||||||
|
|
||||||
enum MovegenPhase {
|
enum MovegenPhase {
|
||||||
|
PH_NULL_MOVE, // Null move
|
||||||
PH_TT_MOVES, // Transposition table move and mate killer
|
PH_TT_MOVES, // Transposition table move and mate killer
|
||||||
PH_GOOD_CAPTURES, // Queen promotions and captures with SEE values >= 0
|
PH_GOOD_CAPTURES, // Queen promotions and captures with SEE values >= 0
|
||||||
PH_KILLERS, // Killer moves from the current ply
|
PH_KILLERS, // Killer moves from the current ply
|
||||||
|
@ -64,7 +65,7 @@ class MovePicker {
|
||||||
MovePicker& operator=(const MovePicker&); // silence a warning under MSVC
|
MovePicker& operator=(const MovePicker&); // silence a warning under MSVC
|
||||||
|
|
||||||
public:
|
public:
|
||||||
MovePicker(const Position& p, Move ttm, Depth d, const History& h, SearchStack* ss = NULL);
|
MovePicker(const Position& p, Move ttm, Depth d, const History& h, SearchStack* ss = NULL, bool useNullMove = false);
|
||||||
Move get_next_move();
|
Move get_next_move();
|
||||||
Move get_next_move(Lock& lock);
|
Move get_next_move(Lock& lock);
|
||||||
int number_of_moves() const;
|
int number_of_moves() const;
|
||||||
|
|
Loading…
Add table
Reference in a new issue