One more option is to forbid Kings from occupying the same rank. This could be programmed by giving each King a checking move to every space in its rank. Being unable to occupy the same rank, Kings could not pass each other, and the impasse situation where each King has moved into the opponent's camp would never arise. If one King passed into his opponent's camp, the other King would have to be there too, which would leave that King vulnerable to attack. Additionally, the King in the opponent's camp would be unable to move to the last rank, which would leave it more vulnerable to some attacks.
I like how this option makes the game more decisive without fundamentally overturning gameplay. Unlike some options, it has no effect until the Kings come close together. Also, it's the easiest to program, it doesn't affect the movement of any piece but the King, and it doesn't add any new goals to the game.
One more option is to forbid Kings from occupying the same rank. This could be programmed by giving each King a checking move to every space in its rank. Being unable to occupy the same rank, Kings could not pass each other, and the impasse situation where each King has moved into the opponent's camp would never arise. If one King passed into his opponent's camp, the other King would have to be there too, which would leave that King vulnerable to attack. Additionally, the King in the opponent's camp would be unable to move to the last rank, which would leave it more vulnerable to some attacks.
I like how this option makes the game more decisive without fundamentally overturning gameplay. Unlike some options, it has no effect until the Kings come close together. Also, it's the easiest to program, it doesn't affect the movement of any piece but the King, and it doesn't add any new goals to the game.