I've been corresponding with Matteo about programming this most
interesting game, but I thought I would share with the Zillions programmers
among the CV community. I have solved the first problem: rather than using
last-to? (which would allow the movement of the same piece on the first and
third moves of a turn) I set a has-moved attribute for the piece whenever
it moves, and verify that this attribute is clear before allowing the
move.
After each turn (three moves), I have a random player scan the board and
clear all has-moved attributes, so that all pieces can move freely on the
next turn. This technique will work for any number of multiple moves.
The drops restriction will require a board scan to find the friendly King.