🕸Fergus Duniho wrote on Sat, Jan 22, 2011 04:23 PM UTC:
Okay, I have a plan for detecting conflicts between moves that rely on the activation power of the same Chieftain. I start with a set of all combinations of orders in which Chieftains may be used on the same turn. This is a 24 member set, just 4!, which is not too large. For each move, I identify the Chieftains on the board that could have activated that move. I then remove from the set any combinations that don't allow for the current move. If the set becomes empty at any point, then the move is illegal. If I go through all moves, and the set still has members, then a different Chieftain could be used to activate each piece that moved. This is all I need to know to tell that otherwise legal moves were all legal.
It is not important to tell which Chieftain activated which piece, but besides checking the legality of each move, I need to identify which Chieftains can still be used to activate moves. I can do this by checking the place in each combination for the next move. Any Chieftain mentioned in that place will still be good for activating a piece, and its vicinity can be colored.
This plan for telling which pieces can move ahead of time would be useful in writing a program to play the game. It might be doable in Zillions-of-Games by manipulating flags or piece attributes, but I don't think I will attempt it. Even if it can be done, I think it would overcomplexify things to the point where Zillions will not play it well. As in Shogi, as it was originally implemented in Zillions, there will be multiple moves it can make in the same turn that will lead to the same position at the end of the turn. This will make it more difficult for it to look ahead. In a dedicated engine, it would be helpful to group together all combinations of moves that lead to the same position and pick just one of them at random as representative of all of them when analyzing the position.