So I’m making a chess engine and have an evaluation function that has material as (a large) part of the eval weighting. But the eval function (as if depth is 1) will think that one side is up a piece if a defended piece is taken and hasn’t been taken back yet.
You might think that’s not a problem as this is why we have search depth, but I have the issue that if the search ends with ‘half’ a trade then the program thinks this is a bad move when maybe it isn’t.
How do I implement something in the eval function to let it know the position is still equal.