My null move check (i am doing my engine in C#):
Code: Select all
int legal_moves = 0;
if (inCheck) _depth++;
if(_depth >= 3 && !inCheck && ply > 0 && _alpha == _beta -1)
{
// switch side
board.current_state.sideToMove ^= 1;
score = -Negamax(_depth - 1 - 2, -_beta , 1 -_beta , false);
// restore side & state
board.current_state.sideToMove ^= 1;
System.Console.WriteLine("After null make && undo score " + score + " beta " + _beta);
if (score >= _beta)
{
System.Console.WriteLine("cutoff");
return _beta;
}
}
r3k2r/p1ppqpb1/bn2pnp1/3PN3/1p2P3/2N2Q1p/PPPBBPPP/R3K2R w KQkq -
Code: Select all
After null make && undo score 24 beta 25
After null make && undo score 24 beta 25
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -15 beta -15
cutoff
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -15 beta -15
cutoff
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -15 beta -15
cutoff
After null make && undo score -15 beta -15
cutoff
After null make && undo score -16 beta -15
After null make && undo score -15 beta -15
cutoff
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
After null make && undo score -16 beta -15
bestmove e2a6 bestscore -15
nodes searched: 87522 in 561ms
Code: Select all
bestmove e2a6 bestscore -15
nodes searched: 36869 in 312ms
anyone has any idea on what could be happening?
what i have so far:
- tranposition tables
- Negamax + alpha-beta + Principal Variation search
- three fold repetition
- Basic material evaluation with piece tables + Mopup Evaluation
