Zillions of Games

Zillions of Games

Infobox Software
name = Zillions of Games



caption =
developer = Zillions Development Corp.
latest_release_version = 2.0.1
latest_release_date = 2003
latest_preview_version =
latest_preview_date =
operating_system = Microsoft Windows
genre = General Game Playing
license =
website = [http://www.zillions-of-games.com/ www.zillions-of-games.com]

"Zillions of Games" is a commercial General Game Playing system developed by Jeff Mallett and Mark Lefler in 1998. The game rules are specified using LISP-like syntax, "Zillions rule language". It was designed to handle mostly abstract strategy board games or puzzles. [ [http://www.zillions-of-games.com/supportedFAQ.html "Can Zillions Support This Game?" FAQ] by Zillions Development Corp.] After parsing the rules of the game, the system's artificial intelligence can automatically play one or more players. It treats puzzles as solitaire games and its AI can be used to solve them.

Scripting language

The scripting language of "Zillions-of-Games" allows exactly define rules of a board game in LISP-like language. The rules are stored in a text file with extension ".zrf" (zillions rules file). The users can create their own ZRF-files and make the AI of "Zillions-of-Games" play their newly created game.

Here is an example of rules for Tic-Tac-Toe (copyright by Zillions Development Inc.) [The example of Tic-Tac-Toe is taken from "TicTacToe.zrf" in "Zillions-of-Games" installation and slightly simplified. The usage in Wikipedia is for illustration purpose and is believed to be according to fair use U.S. law.] :

(define add-to-empty ((verify empty?) add))

(game (title "Tic-Tac-Toe") (description "...") (history "...") (strategy "...") (players X O) (turn-order X O) (board (image "imagesTicTacToeTTTbrd.bmp") (grid (start-rectangle 16 16 112 112) ; top-left position (dimensions ;3x3 ("top-/middle-/bottom-" (0 112)) ; rows ("left/middle/right" (112 0))) ; columns (directions (n -1 0) (e 0 1) (nw -1 -1) (ne -1 1)) ) ) (piece (name man) (help "Man: drops on any empty square") (image X "imagesTicTacToeTTTX.bmp" O "imagesTicTacToeTTTO.bmp") (drops (add-to-empty)) ) (board-setup (X (man off 5)) (O (man off 5)) )

(draw-condition (X O) stalemated) (win-condition (X O) (or (relative-config man n man n man) (relative-config man e man e man) (relative-config man ne man ne man) (relative-config man nw man nw man) ) ))

The result of loading of this ZRF into Zillions-of-Games and playing against the computer is shown in screenshot at right.

The definition of games is usually contains the following pattern [Complete specification of the "Zillions-of-Games" scripting language can be found in "Zillions Language Reference", which can be found in "Zillions" installation.] :
* Game title. One ZRF can contain more than one game and game title allows the user to select a certain game.
* Description, history and strategy of the game. This is a text which shown to the user on demand to explain game rules, history and to give general gameplay advice.
* Players. This is a list of player names used in the game. For example, for chess it would be "White", "Black". The player name is used in some further places, for example in initial position or game goal definitions. There could be just one player (e.g. for puzzles), two or more.
* Turn order This specifies the order of moves made by the players. In the example above, the player "X" starts, the player "O" moves and then the whole sequence repeats. The definition of turn-order can be more complex, for example for balanced double-move chess it would be: "(turn-order White repeat Black Black White White)", which specifies the following order of moves: White, Black, Black, White, White, Black, Black, White, White, etc.
* Board definition. This sections specifies geometry of the playing board, separate positions of the board and connections between them. The board definition in the example above first specifies a bitmap image to be used for the board. A 2-dimensional board is defined using pixel coordinates from the bitmap. The definition "("top-/middle-/bottom-" (0 112))" specified notations to be used for rows as well as an offset in pixels between rows. The text notation is used in move list, as well for saving the played game into ".zsg" (zillions saved game) file. The connections between board position is specifed in "(directions ...)" statement. The example above defines four directions: n (north) - one step up, e (east) - one step right, nw - diagonally up-left and ne - diagonally up-right. The directions are used in move definitions as well as in game goal definitions.
* Piece definition. Defines pieces used in the game, their names and how they moved. In the example above one pieces is defined, "Man", which can be dropped on any empty position of the board. Besides this two bitmaps for "X" and "O" players are specified.
* Board setup. Specifies initial position of the game. The example above defines that the board is empty initially and each side has 5 pieces off the board, which can be dropped.
* Goal of the game. Condition when one of players wins or when draw occurs. In Tic-Tac-Toe win condition (3-in-a-row) is defined as relative piece configurations, using directions n, e, ne and nw from board definition.

Implemented games

"Zillions of Games" is so called because of its potential to play a very large number of user-programmed games. The system is shipped with over 200 games and puzzles. These include a lot of popular board games, such as "Alquerque", "Fox and geese", "Go", "Gomoku", "Jungle", "Halma", "Nim", "Nine Men's Morris", "Reversi", "Tafl" and "Tic-tac-toe". The package includes many checkers variants, for example "Chinese", "Russian" and "Turkish Checkers". Besides standard FIDE chess, "Zillions of Games" contains many national chess variants such as Shogi, Xiangqi, Janggi, as well as a number of popular chess variants like Ultima, Extinction chess, Losing Chess, Shatranj, Berolina chess, Grand chess and others. It also include some puzzles, such as 15-Puzzle, Towers of Hanoi, eight queens, and a variety of Solitaires.

Not long after it came to market in late 1998, users of "Zillions of Games" began to program new games and puzzles for it, creating many of them themselves. Two large collections of Zillions Rules Files (ZRFs) soon began to appear. One was at the "Zillions-of-Games" website, and the other was at the Chess Variant Pages website [ [http://www.chessvariants.org/programs.dir/zillions/ "Zillions of Games"] - The Chess Variant Pages collection of chess variants for "Zillions of Games"] . The former collected together every kind of ZRF, whereas the latter focused on ZRFs for chess variants. As of 2006, the "Zillions" collection had 1350 ZRFs [ [http://www.zillions-of-games.com/games/index.html Free add-on games] for Zillions-of-Games] , and the Chess Variant Pages collection had almost 800 ZRFs of chess variants.

The games programmed by the users include such games as 4D Tic-Tac-Toe, FreeCell, Rubik's Cube, Teeko, Mancala, Alice chess, Chess960, Hexagonal chess, Star Trek Tridimensional Chess and Sokoban. Besides various games and puzzles, there are also educational ZRFs, such as the cellular automata Game of Life, a calculator, and some Turing machine simulations.

Uses

"Zillions of Games" can be used for the following:

*Playing any of the games or puzzles that come with it.
*Playing any of the thousands of free games and puzzles that have been programmed for it by users.
*Playing games with remote users through the internet or a dialup connection.
*Playing games by emailing ZSG files back and forth.
*Programming it to play new games and puzzles.
*Using it as a development tool for the creation of new games and puzzles.
*Testing new games for drawishness and other qualities by having Zillions play them against itself.
*Solving puzzles or making sure that newly created puzzles can be solved.
*Creating diagrams that can be cut out of screen captures.

Benefits

Since "Zillions of Games" is principally for puzzles and strategy board games, playing almost any game or puzzle on it is good for exercising logical and strategic thinking. In addition, some of its games are intended to be educational. Its use of a programming language for creating new games encourages creativity, ingenuity, and logical thinking. And, of course, there is the simple pleasure of playing games and solving puzzles on it.

"Zillions of Games" is also very helpful for learning new games. Each ZRF normally displays text descriptions of a game's rules, history, and strategy in separate menu items. When you hover the mouse over a piece, it will give a brief description of the piece and how it moves, and the mouse cursor will indicate whether you can move that piece. You can right click on a piece for a more detailed description. When you left click on a piece, which is how you pick up a piece to move it, it will place a green dot over every space the piece can move to. One more way an advanced user can use Zillions to learn a new game is by programming it, which requires careful attention to all of a game's rules.

For game designers, programming a game helps the designer cover every detail of the rules that needs covering. In the past, game designers have sometimes failed to think through all the implications of their rules, thereby leaving some details to be ruled on later or even post-mortem, such as the details concerning en passant in Parton's Alice chess. By describing the rules in a programming language, a game designer is forced to consider every minute detail, some of which might get overlooked by writing only a verbal description. Once a game is coded, one more benefit for the game designer is the ability to playtest new games before making them public. This provides feedback for making a game better, which enables a game designer to more reliably release only good games to the public.

Capabilities

By using bitmap images for boards, it can use any type of board that can be represented with two-dimensional computer graphics. It provides a grid command for quickly defining the spaces on a board; for boards with very unusual shapes, it allows the individual creation and linking together of spaces. By these means, it can use many kinds of boards, including the usual 8x8 Chess board, smaller and larger boards, hexagonal boards, triangular boards, circular boards, boards for three-dimensional and even four-dimensional games, and boards of even more unusual shapes.

Its ZRF programming language allows the specification of such details as spaces, pieces, piece positions, turn order, and win, loss, and draw conditions. Spaces have specific locations and are linked to other spaces by directions of movement. Pieces are given graphic images and powers of movement. The win, loss, and draw conditions include checkmate, stalemate, repetition, piece capture, absolute configuration, relative configuration, and various types of piece count. These allow the creation of a variety of different games and puzzles.

Powers of movement are defined algorithmically. They may be as simple as letting a piece move in certain directions, such as a Bishop does in Chess, or very complicated. The most complicated example in Chess is castling, which involves keeping track of whether the King or Rook have moved, and also of performing the castling move itself. En passant is another example of a complicated move in Chess. More examples come from Ultima, whose pieces normally capture by means other than displacement, the most complicated one being the Chameleon, which captures another piece by its own powers of capture. The movement powers of this piece involve lots of complicated ZRF code, but the ZRF language is up to the task. Pieces may even be given the power to move other pieces. For example, "Zillions" can be used for Magnetic Chess, which moves pieces toward or away from the piece that just moved, and in games like Shogi, it can allow a single piece, such as the King, to handle all piece drops instead of giving that power individually to every piece. Piece movement can also be programmed to be dependent on board location. This is used in Chess for en passant and Pawn promotion, and it has made it possible to program the rules of Smess. Pieces may change into other pieces, which is used in Chess for Pawn promotion, but which can be used to even greater effect in games that let pieces combine, split apart, or more freely change into other pieces. By using blank space-shaped pieces, parts of the board can be covered for games with moving or changing terrain, such as Parton's Cheshire Cat Chess.

Besides defining how pieces move, "Zillions" can define how pieces may be dropped. This is for introducing new pieces into a game. It is not useful for Shogi, which "drops" captured pieces stored on the sides of the board. It is for games like Go, Reversi, and Tic-Tac-Toe, which routinely allow users to add new pieces to the board. As with piece movement, this is defined algorithmically, and it can be something as simple as letting a new piece drop only on an empty space or follow more complex rules.

Limitations

Despite its versatility, "Zillions of Games" has a number of non-trivial limitations:

* Its programming language lacks support for arithmetic, for functions, and for variables beyond some boolean flags.
* In some vital respects, the program is too restrictive in what it allows.
** Although it can recognize repetition, the only kind it can recognize is threefold repetition.
** Although it can check for various win, loss and draw conditions at the end of a move, it cannot check for any of them when evaluating possible moves for a piece. Consequently, in Shogi, for example, it cannot be programmed to always accurately enforce the rule against checkmating a King with a Pawn drop.
** Many multi-person chess variants cannot be played because it will immediately stop the game when the first player is checkmated or stalemated.
* In some cases, the quality of gameplay is compromised due to the AI automatically calculating piece values inaccurately with no option available for manually overriding it with accurate piece values.
* Zillions Of Games is designed to play perfect information games exclusively. This renders it of little or no use in fairly playing imperfect or hidden information games, such as card games or board games with hidden piece values like Stratego. Instead, the program will automatically use all information available to itself, including the cards in the deck and the cards in the hands of all other players.
* Zillions of Games is designed as a universal gaming program. As such, it nearly always lacks the potential to play as well as programs designed exclusively to play one particular game incisively well. Its playing strength is compromised mainly by its inability to utilize an opening book or any other game-specific information. However, you can write a zrf to use opening books (as demonstrated by Karl Scherer's "Chess with Opening Books") and you can write and plug-in your own game-specific playing engine (as demonstrated by e.g. Greg Schmidt's "Sudoku Solver").

ee also

* General Game Playing

References

External links

* [http://www.zillions-of-games.com/ Zillions of Games homepage]
* [http://www.chessvariants.org/programs.dir/zillions/review2.html A review of Zillions of Games] by Hans Bodlaender
* [http://karl.kiwi.gen.nz/swindex2.html Zillions Games] by Karl Scherer.


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Look at other dictionaries:

  • Zillions of Games — Тип Универсальная игровая программа Разработчик …   Википедия

  • Tafl games — Infobox Game subject name = Tafl image link = image caption = A reconstructed Hnefatafl board. players = 2 setup time = < 1 minute playing time = Typically 5–20 minutes random chance = None skills = Strategy, ObservationTafl games were a family… …   Wikipedia

  • A Gamut of Games — written by Sid Sackson and first published in 1969, contains rules for a large number of paper and pencil, card, and board games. Many of the games in the book had never before been published. It is considered by many to be an essential text for …   Wikipedia

  • Bear games — is a category of board games of which many have historical roots to the Roman empire. They are still played today especially in Italy. They were played in many parts of the Roman empire as far away as Turkey and France. All of the games are two… …   Wikipedia

  • List of puzzle video games — Part of a series on Puzzles …   Wikipedia

  • List of games supporting force feedback — This is a list of PC games that support force feedback.PC GamesAction/Adventure* Abomination * * Allegiance * * * B.F.R.I.S. * Black White * BreakNeck * Bugriders * Carmageddon II * Carmageddon TDR2000 * * * Cold Fear * Colin McRae Rally 2 * Colt …   Wikipedia

  • Variante del ajedrez — Una variante del ajedrez es un juego derivado, relacionado o similar al ajedrez en al menos un aspecto.[1] La diferencia del ajedrez puede incluir una o más de las siguientes: Tablero diferente (mayor o menor, forma no cuadrada o diferentes… …   Wikipedia Español

  • General Game Playing — refers to the design of Artificial Intelligence programs to be able to play more than one game successfully. [ [http://games.stanford.edu/competition/misc/aaai.pdf General Game Playing: Overview of the AAAI Competition] by Michael Genesereth and… …   Wikipedia

  • Chess variant — Gliński s hexagonal chess – one of many chess variants A chess variant is a game related to, derived from or inspired by chess.[1] The difference from chess might include one or more of the following: different board (larger or smaller, non… …   Wikipedia

  • List of game engines — Many tools called game engines are available for game designers to code a game quickly and easily without building from the ground up. Contents 1 Free and open source 2 Proprietary 2.1 Commercial 2.2 Freeware …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”