Could this be the problem? I had this check just after "if depth == 0", so it would make the move, possibly hit depth 0, go into QSEARCH, and return a score from there, and thus never reach the repetition check.Ras wrote: ↑Tue Oct 27, 2020 9:56 pmBecause QS should deal with capture moves which would reset the draw counter anyway. Doing the move history check in QS looks like a waste of time. That should only be done in main search before and instead of iterating any deeper. So, in the move loop after making the current move, but before the recursion.
Damn. So I was right. I've looked it up in the VICE tutorials again because I wasn't sure anymore (it's a long time I watched those). VICE implements it the way I described, or I'm understanding the explanation the wrong way. I was thinking I should be searching the list backwards for the length of the move counter, because the repetition can't come BEFORE the last 0.
I'll change it to work like that, and also put the check directly behind the make_move, instead of after the depth == 0 check.
