I have the time to post it, now. I'd also like to point out that the
method is probably more Peter Aronson's and Jeff Mallett's than mine
(except I think for the unlinked squares method), since I would not found
it if I had not discussed my concerns with them.
In the game definition section, put in (turn order (White real-move)
(Black real-move))
Then, in each piece's definition, put in
(moves
(move-type real-move)
(leap2 n ne)
etc., putting in what definitions you normally would for that piece.
Then, still in the same moves section put in
(move-type pseudo-move)
(add add add)
the more 'add's you put in, the greater the inflated piece value. And
because they are pseudo-moves and not real-moves, they will never actually
be generated. If a single 'add' inflates the value too much, you can put
in duplicates of the moves used to define the piece.
In fact, if you stick to using only duplicates of the piece's definition,
you don't need the two move-types at all. In my orthochess zrf, for
example, I have added a single extra (leap2 n ne) to the move section of
the knight so that Zillions now values it as almost worth a bishop. I
use the two move-types in my highly unorthodox variant because I often
need to put in long strings of 'add's to adjust piece values by huge
amounts and it's easier than duplicating long strings of piece moves.
You should not put in any moves that are not either simple 'add's or
duplicates of the piece's move, though, even if you are using the two
move-types, because of a bug I found and that was confirmed by Jeff.
Zillions will look at the pseudo-move definitions when determining check,
even though the pieces can not actual make those moves because of the
turn-order.
Another method you can try is to create an extra file on your board and
then unlink the squares. In your board def macro, add a /z to the files
string and then unlink the squares with (unlink z1 z2 z3 z4 z5 z6 z7 z8).
Now in your pseudo-move section, you can put in things like (z1 add) or if
that adds too much value you can try (z1 (if empty? add)) which seems to
add less value than a simple add. Experiment. And with the unlinked
squares method you don't have to worry about the check bug since the king
can never be on z1 because it would take a pseudo-move to get there and a
pseudo-move will never be generated. This method might give you more
flexibility because you don't have to stick to simple 'add's or duplicate
moves.
I hope those who read this can make use of it.
Regards,
Mike