If the TT could return the number of legal moves for EXACT/ALPHA positions, what could that information be used for?
What comes to mind is if we know there is only one move available, but not sure what to do with it.
Ideas?
NumberOfMoves = 0
get next move ()
{
if !legal()
continue
increment NumberOfMoves
// do stuff
}
if NumberOfMoves = 0, return mate or draw
// if we make it all the way through to here
// we have tried every move....
if we have a best move
store TT (EXACT, NumberOfMoves)
else
store TT(ALPHA, NumberOfMoves)
I think the number is mostly superfluous, since you are probably going to generate the moves anyway.
It can have other uses as well, besides knowing if something is a singular move.
If you have {for instance} only 5 possible legal moves, you should prune less.
If you have {for instance} 150 possible legal moves, you can prune more.
If you do have a singular move, many engines make than an extension to search deeper.
Taking ideas is not a vice, it is a virtue. We have another word for this. It is called learning.
But sharing ideas is an even greater virtue. We have another word for this. It is called teaching.
MOBMAT wrote: ↑Fri Jun 15, 2018 3:27 am
If the TT could return the number of legal moves for EXACT/ALPHA positions, what could that information be used for?
What comes to mind is if we know there is only one move available, but not sure what to do with it.
Ideas?
My first engine set a bit in a position's TT entry if the search had figured out there was only one legal move. That bit was then used to trigger an extension the next time the position was encountered.