xbomb — a version of the popular minesweeper program with some novel features.

Synopsis

xbomb [-hexagon|-square|-triangle] [-1|-2|-3] [-hiscore]

Options

-hiscore
command line option displays the current hi-score table without starting the game.
-hexagon | -square | -triangle
Selects the type of grid to use when starting the game.
-1 | -2 | -3
Selects the level to use when starting the game.
The standard X window options also apply to this program.

Description

A game of logical deduction against the clock. The purpose of the game is to find the location of the hidden bombs in a grid. Each of the locations in the grid is initially covered, by uncovering a locations, a number or a bomb will be revealed underneath. If a bomb is revealed then the game is finished. A number indicates the number of adjacent locations that contain bombs. Locations that have not been uncovered but are thought to contain bombs can be marked as such so that they can be identified.

There is a choice of hexagonal, square or triangular units that make up the grid, the level of difficulty increasing as the number of sides decreases. In all cases the grids are of the same size and contain the same number of bombs for the same levels.

There are three levels to the game:

Easy
8 by 8 grid with 10 bombs.
Medium
16 by 16 grid with 40 bombs.
Difficult
30 by 16 grid with 99 bombs.

A high score table is maintained for each of the levels for each of the grid types, storing the username, the time to complete the puzzle and the date that it was finished.

Mouse operation

The game is played with the mouse, with all three buttons having different actions.
Left Button
Uncover the current location if it is hidden or uncover all surrounding locations marked as not containing bombs if the square is already uncovered. The first selection made in a game is always a 'safe' square.
Middle Button
Uncover all surrounding locations that are not marked as containing a bomb.
Right Button
Mark the current grid location as having a hidden bomb (toggle).

Keystrokes

There are a number of keystroke shortcuts for the game:
1 2 3
Select level 1, 2 or 3 for the next game.
s
Start a new game.
q
Quit the program.
h
Print the high-scores.
H or Control-H
Use the grid of hexagons for the next game.
S or Control-S
Use the grid of squares for the next game.
T or Control-T
Use the grid of triangles for the next game.

X resources

The name of the class used is XBomb, the widget hierarchy used is (Widget-Class:name):


        XBomb

                Form:form

                        Command:start

                        MenuButton:menu

                                SimpleMenu:levelmenushell

                                        smeBSBObject:Easy

                                        smeBSBObject:Medium

                                        smeBSBObject:Difficult

                        MenuButton:menu

                                SimpleMenu:typemenushell

                                        smeBSBObject:Hexagon

                                        smeBSBObject:Square

                                        smeBSBObject:Triangle

                        Command:hiscore

                        Command:quit

                        Core:grid

                        Command:clock

                        Command:uxb

The extra resources that are available for the grid are:

grid.bomb
The colour of the bombs - default black.
grid.bombreal
The colour of the real bombs - default red.
grid.bombmark
The colour of the bombs that are marked by the user - default orange.
grid.number
The colour of the number '1' when drawn in the grid - default navy blue.
grid.number2
The colour of the number '2' when drawn in the grid - default dark green.
grid.number3
The colour of the number '3' when drawn in the grid - default dark red. The other numbers up to 12 also have their own resources.
grid.hidden
The colour of the hidden squares - default grey50.
grid.correct
The colour of the squares that were correctly guessed - default green
grid.font
The font that is used for the number in the grid - default lucidasans-24

Bugs

None known.

Author

Andrew M. Bishop.