Check out Janggi (Korean Chess), our featured variant for December, 2024.


[ Help | Earliest Comments | Latest Comments ]
[ List All Subjects of Discussion | Create New Subject of Discussion ]
[ List Earliest Comments Only For Pages | Games | Rated Pages | Rated Games | Subjects of Discussion ]

Comments/Ratings for a Single Item

Earlier Reverse Order Later
Storm the Ivory Tower. Play this Smess adaptation of Chinese Chess by email.[All Comments] [Add Comment or Rating]
🕸💡📝Fergus Duniho wrote on Sat, Dec 10, 2005 02:22 AM UTC:
In developing the preset for Storm the Ivory Tower, I had to use some new
techniques, and they're worth passing along to any GAME Code developers
out there. In previous games, I have normally separated the code for
checking the legality of a piece move and for checking whether a piece is
checking the King. For the latter, I normally checked various locations
where checking pieces might be. Because Storm the Ivory Tower uses arrows
on squares to direct the movement of pieces, this approach would not work
without some added complication. So I took a different approach. I wrote a
subroutine, called checked, which simply loops through the enemy pieces,
checking in turn whether each one can legally move to the Brain's current
location. This subroutine made use of the same functions I wrote for
checking whether each piece can make a legal move. Since these functions
were now being used to evaluate potential moves, not just past moves, I
had to replace the capture operator in some functions with something like
'cond empty #0 capture (not empty #1)'. This first checks whether the
origin space is empty. It will be empty for a past move but not for a
potential move. For a past move, it just uses the capture operator to
check whether a capture has been made. For a potential move, it checks
whether a capture could be made at the destination by checking whether the
space is occupied. 

In presets for other games, I have taken the shortcut in the checkmated
subroutine of checking for check only from the piece moved and possible
revealed checks through the space it moved from. With the inclusion of a
hopper piece, the Clodhopper, I couldn't take this shortcut. If I tried
to, it would become less of a shortcut, for I would also have to check for
revealed Clodhopper attacks through both the origin and destination spaces
of a moved piece. So I took a different approach. Instead of using
separate checkmated and stalemated functions, I eliminated the checkmated
subroutine, and checked for checkmate simply by checking for check plus
stalemate with the separate checked and stalemated subroutines.

The upshot of all of this is that this is a streamlined approach to
writing code for enforcing game rules. It might not be as fast for the
server to execute, though I don't have benchmarks on this one way or the
other, but it will be easier for a programmer to write. It means skipping
the code for separately checking for check and checkmate and including
only one function apiece for how each piece moves. For examples of what I
have been describing, here is a link to the include file used for Storm
the Ivory Tower:

/play/pbm/includes/ivorytower.txt

🕸💡📝Fergus Duniho wrote on Mon, Dec 19, 2005 11:10 PM UTC:
I replaced the marble preset based on Michael Howe's design with one based on Larry Smith's design, and I added one more based on Larry's design. The other marble board is still available for those who want to use it, but I wanted to focus on the better board/piece combinations on this page. The half size images here won't do these presets justice. Look at the full size CSS versions to get a better idea of how these board/piece combinations work. Play around in Customize mode to try out other combinations. Let me know if there are any others worth showcasing.

🕸💡📝Fergus Duniho wrote on Tue, Dec 20, 2005 12:11 AM UTC:
I have added one more preset, which uses the Alfaerie pieces with a board that uses the colors David Howe used on boards he included with the Alfaerie pieces. I now have a board for each of the six piece sets I have included with the ZRF. Let me know if any of the boards here could be improved on or better tailored to a piece set.

🕸💡📝Fergus Duniho wrote on Wed, Dec 21, 2005 01:17 AM UTC:
I replaced the earthtones board in the GB preset with one that uses wood and leaves to approximate the colors of the Smess board. It uses wood for the spaces and both regular and autumn leaves for the arrows. I think that so far, this is the board that looks best with the GB set.

🕸💡📝Fergus Duniho wrote on Thu, Dec 22, 2005 05:16 AM UTC:
For the Big5 Chinese preset, I replaced the Wood/Marble board with a Wood board. The new board is still based on my modification of Michael Howe's design. With this new board finished, I now have a set of six boards, one for each piece set, that I am happy with and plan to use with the next version of the ZRF. I have even begun to prefer some of the new boards, specifically the three natural textured ones shown here, over my original Smess-style board. I am not especially into the two plain colored boards, but they do work with the piece sets I paired with them, and the goal here is to provide variety for people with different tastes and needs. So I'll probably leave them as is, though I am open to suggestions from people who use them more than I do.

5 comments displayed

Earlier Reverse Order Later

Permalink to the exact comments currently displayed.