
Lets ignore extensions and tablebases for a moment. This is just a simple example
Qxg2 is obviously bad since Bc6 pins the queen and black has an easily won game from there, yes?
In a 2 ply search, Qxg2 Bc6, enter q-search which finds QxB bad and returns +5, which is very wrong.
In a 3 ply search, q-search would catch the pin and it would select Kxg2 instead, securing a draw at the least.
I was trying to figure out how to detect Qxg2 is bad in a 2 ply search.
Ideas? Is it worth it to try and detect this?
I had some crazy idea about doing a null move for verification when eval() fails high in a q-search, but then I figured I'm probably walking down well travelled roads and people have already examined this issue.
