Greg Strong wrote on Mon, May 4, 2020 07:08 PM UTC:
In Zillions-of-Games, the Paladin could not split apart, because the code considered it attacked by the Dragon King, but in Game Courier, it could split apart, because the code recognized that the Dragon King could not pass the Rook's rank to capture the Paladin. This is a matter I hadn't thought about before, and I'm going to have to make a decision about how it works. I'll begin with an examination of the code for each to determine how easily one or the other could be changed.
I think as a general question of creating a chess engine to play this game, the far simpler option is for the paladin to not be able to split apart. The dragon king can reach the paladin by a pseudo-legal move. This is a simple (linear) determination. To go the other way, it becomes a recursive problem. ChessV could do the first pretty easily. The second option would be difficult at best and maybe borderline impossible (at least without violating the architecture's separation of responsibilities.)
I think as a general question of creating a chess engine to play this game, the far simpler option is for the paladin to not be able to split apart. The dragon king can reach the paladin by a pseudo-legal move. This is a simple (linear) determination. To go the other way, it becomes a recursive problem. ChessV could do the first pretty easily. The second option would be difficult at best and maybe borderline impossible (at least without violating the architecture's separation of responsibilities.)