Already a long time ago, when it turned out that some large games (Tenjiku Shogi?) took unacceptably long time at 2 ply.
It also had to do with an improvement in the AI. Originally I did not want depths so low that the AI would not be able to see checkmate in 1. And it only sees checkmate if it searches deep enough to see the capture of the King. More specifically, in a leaf node, when it generates moves to see if there still is any move it should search (but none other qualify), it would notice capture of a King (but then not search that, but just declare victory). That means it needed 2 ply to see if it can deliver such a mate, and 3 ply to see that the opponent could deliver it. But this is ameliorated by the fact that logical continuations of the previous two ply (i.e. moves that were not possible 2 ply earlier, also when this was in the game history) get an extension. So if you move a piece to a position where it can deliver checkmate on the next move, it would recognize the threat.
But at some point I made the AI aware of check in leave nodes that were delivered by the moved piece, by generating the moves of only that piece for the side that is not on move. And if this could capture the King, extend the search one ply to see if evasion was possible. This took off one ply of the depth needed to recognize checkmate. At least, if it wasn't delivered by a discovered check. I considered that justifiable, as humans can often also be tricked by discovered checks. So it makes the weakness of the AI more human-like.
Already a long time ago, when it turned out that some large games (Tenjiku Shogi?) took unacceptably long time at 2 ply.
It also had to do with an improvement in the AI. Originally I did not want depths so low that the AI would not be able to see checkmate in 1. And it only sees checkmate if it searches deep enough to see the capture of the King. More specifically, in a leaf node, when it generates moves to see if there still is any move it should search (but none other qualify), it would notice capture of a King (but then not search that, but just declare victory). That means it needed 2 ply to see if it can deliver such a mate, and 3 ply to see that the opponent could deliver it. But this is ameliorated by the fact that logical continuations of the previous two ply (i.e. moves that were not possible 2 ply earlier, also when this was in the game history) get an extension. So if you move a piece to a position where it can deliver checkmate on the next move, it would recognize the threat.
But at some point I made the AI aware of check in leave nodes that were delivered by the moved piece, by generating the moves of only that piece for the side that is not on move. And if this could capture the King, extend the search one ply to see if evasion was possible. This took off one ply of the depth needed to recognize checkmate. At least, if it wasn't delivered by a discovered check. I considered that justifiable, as humans can often also be tricked by discovered checks. So it makes the weakness of the AI more human-like.