| Author |
Message |
Dan Troyka (Dtroyka)
| | Posted on Monday, April 16, 2001 - 9:14 pm: | |
Wish List - Episode I I've been taking notes on zrf language additions that I would like to see. It's quite a long list (you know, z-axis ordering, telepathic interface, etc.) so I pared it down to those changes which, I think, would add the most flexibility with the least complication. And the winners are: LINKS (links n (a1 a2 a3 a4 ...)) Links north a1 to a2, a2 to a3, etc. This is compatible with current syntax and corresponds to how most boards are designed. (links n s (a1 a2 a3 a4 ...)) Links north a1 to a2, a2 to a3, etc. and south a2 to a1, a3 to a2, etc. The second direction is the opposite of the first. TESTS (empty? $1 $1 $1 . . .) Tests whether the square three steps in the $1 direction is empty. This eliminates the need to move the current square. This syntax should apply to other tests (piece?, enemy?, friend?, etc.) where it makes sense. (empty? or $1 $1 $1 . . .) Same concept, except that it tests whether any of the squares in that sequence are empty. (empty? and $1 $1 $1 . . .) Same concept, except that it tests whether all of the squares in that sequence are empty. Together, these slight enhancements to empty? and similar commands would eliminate a lot of bulky coding (well, I can only speak for myself). Again, this is compatible with current syntax. (if White? ...) Tests whether a piece belonging to the named player is on the current square. PIECES AND TURN-ORDER (piece ... (image White Black "images\game\pod.bmp") ...) Creates a common piece that can be moved by either player. (turn-order (or (White (White Neutral))) (or (Black (Black Neutral)))) Allows player to move their own pieces or neutral pieces optionally. Generally the turn-order would be improved by permitting Booleans. add-turn, add-copy-turn Works just like add-partial except that effect is to give player a new turn (not limited to the piece that just moved). New turn can be limited to designated move-type, as with add-partial. add-copy Make it work logically. When you select a piece, the squares to which a copy can be added should be highlighted, and when a move is made a copy should be placed on the to square and the original remain on the from square. Currently if you select a piece on the board whose only move is an add-copy, Zillions will tell you that it can't move. add-partial Make it work with moves in which the moving piece remains on the from square. (meta) Allow a move generation block to be designated a "meta" block. The operations in the meta block would be executed once and serve as the starting point for all subsequent move generation blocks for that piece. This would eliminate a lot of costly repetition. The meta block could also be placed in the game block (not with a particular piece), in which case it would be executed once prior to any move generation. (if (player? White)) Tests whether White is the moving player. END-CONDITIONS (draw-condition (White Black) (moves 100)) Declares a draw when 100 moves are reached. Should also work with count, win, and loss conditions. Perhaps it could take move-type arguments that would reset the counting (e.g., pawn promotion or capture of a piece). (repetition true/false) Controls whether 3-move repetition ends a game. When repetition is true, test after each partial move as well as after each move. (loss-condition-partial...) In multiplayer game, allows remaining players to continue game when one player loses. (last-move White Black) Gives one last move to designated player after end-condition reached. There are a number of games that give the second player a final move to compensate for the first-move advantage. (goal-type) & (goal-priorities ...) Works like move-type and move-priorities. Applies only when single move generates multiple end-conditions. It is currently very difficult to code for this situation. Some other comments. It appears that Zillions corrupts the midi-mapper whenever two games are opened with the music option on. After this happens, no application can play midi unless you reboot. (At least this has been my experience on the two computers I've tested it on.) Graphics don't always refresh properly. The "invisible" (green 255) part of a piece graphic will sometimes cut off other pieces (or else the parameters of the start square will clip other pieces). This can never be useful and should be eliminated. The change-type parameter should be increased. Currently Zillions will permit 256 (or thereabouts) change-type statements in an expanded move generation block. This limit is reached quickly in certain types of games. I would also recommend a search-by-author function for the games list, like the one at the Zillions section of chessvariants.com. |
Jeff Mallett (Jeffm)
| | Posted on Friday, December 13, 2002 - 9:40 pm: | |
In Zillions of Games 2... * Move generation was rewritten to remove the limitation on change-type's * Several fixes addressed display problems that might occur when piece graphics were nearly the same size as their position * MIDI was changed to work around buggy MIDI drivers :-) |
Jeff Mallett (Jeffm)
| | Posted on Wednesday, March 17, 2004 - 1:37 pm: | |
>I would also recommend a search-by-author function for the games list, >like the one at the Zillions section of chessvariants.com. This has been added to our website now. |
|