The display consists of two main areas: the field at the top and the information windows at the bottom. The field is divided into a 40x25 grid of squares. You are the man (indicated by the number 0) at the top-left corner. Your objective is to traverse the field and arrive safely at the goal (the flag) at the bottom-right corner. Along the way, hidden bombs are scattered across the field. As you determine which squares are safe and which are unsafe, you may make appropriate marks using the middle and right mouse buttons.
You can only move across the field one square (horizontally, vertically, or diagonally) at a time. You are also allowed to immediately move to any square you have previously been to (such squares will be shaded gray), or any square that you have marked as safe and which is adjacent to a square already traversed. If you land on a square with a bomb, then you will blow up. Any bombs that are horizontally or vertically (but not diagonally) adjacent will also blow up. This causes a possible "chain reaction" of bomb explosions.
To aid your traversal of the field, you will be told how many of the adjacent (up to eight) squares contain bombs. This information will usually be sufficient to determine where the hidden bombs are. Instead of having the number of adjacent bombs shown in the square where you currently are (this option is called showfig ) you can choose to have your current position marked by a man. To toggle this option, click on the square labeled "Show=?".
As an additional aid, sanity checking is available. This means that if you mark too many adjacent squares as being either safe or unsafe, then you will be warned. Since, such "insane" marking is the cause of many undesired explosions (especially after you have been playing for a while, and fatigue makes counting become difficult), there is a 1% point penalty for using sanity checking on a particular level.
Automarking is a feature that automatically marks all eight adjacent squares as safe if there are no bombs in those adjacent squares. This feature has been extended to be recursive (ie. if appropriate, automarking will be performed on any of the eight squares that have been marked as safe). The extended automarking is only available starting with the level of lieutenant (otherwise, on the grunt level, the complete path from start to finish would usually be shown). During extended automarking, if any squares are found to be free of surrounding bombs, then it will be shaded to mark it as though you had already traversed that square. This will allow you to immediately skip to the "frontier" on the extended automarking. By pressing the space bar, "automarking" can be forced. However, if you do this, no check is performed to make sure that there are no adjacent bombs; thus, squares could be incorrectly marked. Extended automarking is disabled for space-bar-forced automarking. There is a 10% point penalty for each level on which you use extended automarking.
You are also given three grenades with which you can blow up bombs. These grenades can only be thrown a distance of five squares (count off the five squares by counting the number of horizontal and vertical moves you would have to make to go to that square). Again, there is a possible chain reaction of explosions, and if you happen to be next to a square that explodes, then you will also explode. When you explode and die, a tombstone is placed on that square, and you can no longer enter that square. There is always a guaranteed safe path from start to goal. This means that it is always possible to reach the goal without removing any bombs from the field by exploding them.
When you reach the goal safely (ie. with at least one life left), then you will receive points based on the time you have left, the number of bombs left unexploded, the number of grenades left, the number of times you died, and whether or not you used sanity checking or extended automarking. If your current rank is at least lieutenant and your current score is at least 3000, then you will receive an extra life and an extra grenade (you can have at most three grenades at the start of any level). Also, when you reach the goal, all hidden bombs will be shown. If you have marked any squares incorrectly, then those squares will be highlighted.
Once you attain the rank of angel and reach the goal as a angel, you are promoted to the rank of god, and the game ends. Also, if you run out of time or lives, the game ends. A high scores list is implemented and is shown and updated at the end of every game. Since very high scores can be attained by simply starting out at the angel level, a maximum of five high scores from the angel starting level are permitted. To quit the game, you must explicitly quit (ie. you must either click on the Quit button or hit 'q' or 'Q'). Otherwise, you will be allowed to continue moving around on the field, being able to blow up bombs and yourself and being able to throw any remaining grenades. The timer will stop, and you will not be able to advance to the next level or gain points. The reason for allowing this is to permit you to analyze your position once the game ends.
Below the field is a set of windows with information. The topmost window below the field is the status window. Error messages and more importantly, adjacent bomb information will be given here. If you require the adjacent bomb information without moving, click on your current position.
The third row of window contain the contain buttons (which you can click on):
The fourth row of window contain the contain buttons (which you can click on):
The high scores file is not secure the way it is created. If you don't have root privileges, you should set the set-user-id bit for the xtmines executable file by using "chmod u+s xtmines.hiscores" (without the quotes, of course). If you do have root permissions, then you should probably place the executable in the games directory and the high scores file in the games/lib directory. The group for the executable should be games, and the set-group-id bit should be set.
Please report bugs to ttsai@uiuc.edu (Timothy Tsai).
The idea for xtmines came from the UNIX PC game called mines. The high scores list functions are pretty much those used by Wayne A. Christopher in his tetris game. Thanks are also due Benjamin Tsai and Dane Dwyer for their suggestions and time spent testing out the program.