How can I get a piece to remove itself? Log Out | Topics | Search
Moderators | Register | Edit Profile

Zillions of Games Discussion Forum » Designing Games for Zillions » How can I get a piece to remove itself? « Previous Next »

Author Message
Roger J Cooper (Rogercooper)
Posted on Saturday, July 29, 2000 - 7:25 am:   

I am working on a chess variant where part of the board is off-limits initially (ranks 5 and 6). I can easily put neutral blocks there to prevent movement, but get ridding of them is a problem. Is there a way to give the piece the option of capturing itself (or promoting to nothing)? Or is there a better approach to the whole problem?
Marek Ctrnact (Marek14)
Posted on Saturday, July 29, 2000 - 3:41 pm:   

Try the same approach as for the previous message: Give each player a dummy piece (Reaper, say) with move looking like this:

(a1 (while (on-board? next) (if (piece? Block) capture add-copy) next))

Of course, this construction requires to have a direction called "next" which cycles through all squares on the board (or, in your case, maybe just the squares in the 5th and 6th rank), and also a dummy off-board square on which the cycle would end.
Roger J Cooper (Rogercooper)
Posted on Sunday, July 30, 2000 - 9:43 am:   

Thanks for the help. I improved upon your idea by making it a drop. The ZRF is:

(piece(name Reaper)
(drops((verify (piece? Block))capture add-copy)))

This eliminated the need for defining "next" or an off-board space.
Marek Ctrnact (Marek14)
Posted on Sunday, July 30, 2000 - 5:04 pm:   

Yes, that would work. Just remember to put at least one Reaper to off-board pool and, preferably, setting recycle-captures to true.

Add Your Message Here
Post:
Username: Posting Information:
This is a private posting area. Only registered users and moderators may post messages here.
Password:
Options: Enable HTML code in message
Automatically activate URLs in message
Action: