[ Help | Earliest Comments | Latest Comments ][ List All Subjects of Discussion | Create New Subject of Discussion ][ List Latest Comments Only For Pages | Games | Rated Pages | Rated Games | Subjects of Discussion ]Comments/Ratings for a Single Item Later ⇩Reverse Order⇧ Earlier Storm the Ivory Tower. Play this Smess adaptation of Chinese Chess by email.[All Comments] [Add Comment or Rating]Fergus Duniho wrote on 2005-12-22 UTCFor 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. Fergus Duniho wrote on 2005-12-21 UTCI 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 2005-12-20 UTCI 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 2005-12-19 UTCI 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 2005-12-10 UTCIn 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 5 comments displayedLater ⇩Reverse Order⇧ EarlierPermalink to the exact comments currently displayed.