that's what I do:tcusr wrote: ↑Wed Sep 08, 2021 2:03 pm after i get out of the move/unamake loop with no moves played, what do i need check for?this seems correct but i have no way to detect stalemate in quiescenceCode: Select all
if (no_moves && in_check) return -MAX_EVAL
Code: Select all
//checkmate?
if (expandedNodes == 0 && inCheck)
return Evaluation.Checkmate(color, ply);
//stalemate?
if (expandedNodes == 0 && !LegalMoves.HasMoves(position))
return 0;
//can't capture. We return the 'alpha' which may have been raised by "stand pat"
return alpha;
}
maybe I underestimated the amount of features you already have. My point was: do it now. The best way to know that a feature works as expected is if it made your engine stronger within the expected ELO range.tcusr wrote: ↑Wed Sep 08, 2021 2:03 pm i really hope im not at 1000 elo because even though i only have the most basic features the engine works correctly and is fast (it's written in C++ vs algerbrex's engine which is written in Go, so even when i'll reach his amount of features i expect (hope) my engine performs a bit better)