xmahjongg — colorful solitaire Mah Jongg game

Synopsis

xmahjongg [--display display] [options]

Description

Real Mah Jongg is a social game that originated in China thousands of years ago. Four players, named after the four winds, take tiles from a wall in turn. The best tiles are made of ivory and wood; they click pleasantly when you knock them together. Computer Solitaire Mah Jongg (xmahjongg being one of the sillier examples) is nothing like that but it's fun, or it must be, since there are like 300 shareware versions available for Windows. This is for X11 and it's free.

How to play

The object is to remove all Mah Jongg tiles from the playing field by taking one matching pair at a time. Generally, two tiles match if they have identical pictures on top. There are some exceptions: any season tile (spring, summer, autumn, or winter) matches any other season, and any flower tile (bamboo, orchid, plum, or chrysathemum) matches any other flower. There are 144 tiles in all -- one of each season and flower, and four copies of each of the following: 1 to 9 dots; 1 to 9 bamboo sticks; characters for 1 to 9; the four winds (north, south, east, and west); and three dragons (red, green, and white).

Only free tiles can be removed. A tile is free if its entire top face is unobstructed and either its left or its right edge is open. (When looking at the left and right edges, only tiles on the same level count.)

The rules are simple, but winning, it turns out, can be pretty hard. It's easy to make a move that causes a stalemate thirty or more moves later. What's worse, the --any-boards option lets xmahjongg create boards that cannot be solved at all!

Controls and appearance

To select a free tile, simply click it with the left mouse button and it will light up. Click it again to deselect it. If you try to select a non-free tile, xmahjongg will beep at you. To remove a matched pair, just select one of the pair and click on the other one. The number in the upper left corner tells you how many tiles you have left. This is all you really need to know to play the game.

Xmahjongg comes with several features that may dismay purists, but make the game more pleasant to play. First is the match count, an array of small gold coins in the upper middle. Each coin represents one potential match on the board. (If three mutually matching tiles are free, it counts as three matches, and if four are free, that's six matches.) This will let you know when the game is over (no gold coins means no matches -- a dead end) and when you're getting close.

The five buttons along the top right have the following functions:

New (keystroke: n)
Start a new game.
Quit (keystroke: q)
Quit xmahjongg.
Undo (keystroke: u)
Undoes your last move. You can undo multiple moves by clicking multiple times. If you change your mind about undoing a move, hold down Shift while you click the Undo button (or press r) to redo it.
Hint (keystroke: h)
Gives you a hint by flashing a set of free matching tiles. You can cycle through all existing matches by clicking multiple times. If you select a tile and then click Hint, xmahjongg will flash any free tiles that match that tile, or beep if there aren't any.
Clean (keystroke: c)
Cleans the board by automatically removing obvious matches. A match is obvious if it involves all the remaining tiles of a given type. (For example, if there are 2 green dragons left and they are both free, they form an obvious match; but if there are 4 left and only 3 are free, they don't.) Cleaning the board is guaranteed not to cause a stalemate later.
Solve (no button; keystroke: s)
If you get stuck, press the s key. After the board is restored to its original state, xmahjongg will show you one way to solve it by removing tiles two at a time. Press s again to speed up the solution, or press Esc to stop. This won't work if you gave the --any-boards option (see below).

Additionally, the Escape key deselects any selected tile.

Keyboard traversal

You can use the arrow keys and the spacebar to play xmahjongg without using the mouse. These keys control the cursor, which is shown as a flashing tile. The arrow keys move the cursor around on the board in the obvious directions. The spacebar is like clicking the mouse button on the cursor tile: it either selects the tile or removes a matching pair.

The hint key, `h', is also useful for playing without the mouse. Experiment with `h', the spacebar, and the Return key to see how this works. When a hint is active, the spacebar is like clicking on one of the flashing hint tiles, while the Return key is like clicking on two of them (so it removes the tiles in one stroke). This method gives the fastest playing speed.

Options

If you get bored with xmahjongg's original layout and appearance, never fear: it comes with several tilesets (tile images) and layouts (tile arrangements). In addition to these, xmahjongg can read layout files from the original xmahjongg, KDE Mahjongg, and Kyodai Mahjongg, and tilesets in KDE Mahjongg, Gnome Mahjongg, and Kyodai Mahjongg format. (However, tilesets must be converted to GIF format before xmahjongg can read them.) See the -l and -t options.

Long option names can be abbreviated to their unique prefixes.

--number N
-n N
Start with board number N.
-l layout
--layout layout
Use the specified game layout. xmahjongg comes with several layouts. The normal layout is called default; to see the other ones' names, run `xmahjongg --list'. You can also use an arbitrary layout by giving its filename. Xmahjongg can read layouts in its own simple format, in KDE kmahjongg format, or in Kyodai Mahjongg format. (Kyodai Mahjongg is one of the more popular Windows Mah Jongg solitaire games. It's got 3D tiles and all sorts of stuff. See http://www.kyodai.com for more information. You can download a zip archive with more than 100 different layouts, mostly usable with xmahjongg, from http://www.kyodai.com/.)

--tileset tileset
Use the specified tileset to draw the Mah Jongg tiles. Xmahjongg comes with several extra tilesets, particularly small (perfect for smaller screens). There are others too; run `xmahjongg --list' for a complete listing.

--background image
--bg image
The background image is set to image. Run `xmahjongg --list' to see the backgrounds that come with xmahjongg, or use an arbitrary GIF as a background image by giving its filename.

--list
Lists all the layouts, tilesets, and backgrounds that came with xmahjongg, then exits.

--solvable-boards
Always create solvable boards. This is the default.

--any-boards
Allow any legal board, some of which will be solvable and some of which won't.

--display display
Sets the X display to display.

--name name
Specifies the application name under which resources are found, rather than the default ``xmahjongg''. Since xmahjongg itself does not use the resource database, this is mostly useful for communication with your window manager.

--geometry geometry
This standard X option specifies the preferred size and position for the xmahjongg window.

--help
Prints usage information and exits.

--version
Prints the version number and some quickie warranty information and exits.

Bugs

Please email suggestions, additions, patches and bugs to eddietwo@lcs.mit.edu. The following features have not made it into 3.0 as of yet:

*
Tournament mode.
*
Board setup mode.

History

xmahjongg version 3 is a complete rewrite by Eddie Kohler <eddietwo@lcs.mit.edu> of xmahjongg versions 1 and 2 by Jeff S. Young <jsy@cray.com>.

The default tileset was originally created in color by Dorothy Robinson <mokuren@teleport.com> with Mark A. Holm <markh@aracnet.com>. The publicly available version was in black-and-white. Holm copyrighted the tiles in 1988, giving permission to copy and distribute for non-profit purposes. The significantly altered color version that comes with xmahjongg was created by Eddie Kohler in 1993. The `small' tileset was found at http://www.mahjongg.com/, and is presumably by Berrie Bloem. The `gnome' and `gnome2' tilesets were created by Jonathan Buzzard and Max Watson. The `dorothys' and `dorwhite' tilesets were made by Dorothy Robinson <mokuren@teleport.com>. The `real' tileset was scanned by Mark Sanctuary <sanctuary@jps.net>.

Many of the layouts are based on layouts designed for Kyodai Mahjongg, a fun Windows Mah Jongg game. In particular, `arena', `ceremonial', `deepwell', `farandole', and `theater' are by Naoki Haga, and `hourglass' and `papillon' are by Vincent Krebs. Kyodai Mahjongg's Web homepage is http://www.kyodai.com/.

Author

Eddie Kohler, eddietwo@lcs.mit.edu
http://www.pdos.lcs.mit.edu/~eddietwo/

http://www.lcdf.org/~eddietwo/xmahjongg/
The xmahjongg home page.