Abologna User's Manual

Version 1.70
March 14, 2000

By Douglas Fields
Copyright © 2000 Douglas Fields; All Rights Reserved.

Douglas Fields' Web Site

Table of Contents

Features
Compatibility
Rules
How to Play
Options
Game Commands
License
Revision History

Features

Abologna is an implementation or Palm Pilots (PalmOS 3.0 or later) of the board game Abalone. It has many advanced features:

Compatibility

This software runs on any PalmOS 3.1 or later operating system. Furthermore, it should also run on PalmOS 3.0, but this has not been tested.

Tested platforms include:

Additional untested platforms for which this should work:

Rules

Abologna is played on a hexagonal board with fourteen balls for each player, white and black. There are six adjacent spaces for each space.

The object is to push six of your opponent's balls off the board before he does the same to you.


Each player takes turns moving up to three of his balls. These balls must be adjacent to each other and in a straight line. They may be "pushed" along the direction they line up, or they may "slide" in one of the four other directions.

For example, the three white balls indicated with the green dots may push from right to left, one spot, into the empty space marked with the purple dot, leaving the rightmost green-marked ball's spot empty. Alternately, for example, they may slide together into the three empty spaces marked with red dots, leaving the old spaces empty.


When white and black balls meet, they have the opportunity to push one another, depending on their relative strength. For example, two white balls may push one black ball one space. Three white balls can push one or two black balls one space.

If a ball to be pushed is on the edge of the board, it is pushed off the board and scores a point for the person who pushed it off.

For example, the three black balls can push the one white ball into the shaded spot, or the three white balls can push the two black balls into the shaded spot, and finally, the the two black balls can push the one white ball into the shaded spot.

Note, however, the three white balls and three black balls with the purple line through them cannot push each other; their strengths are equal.


Here, we have two examples of balls that are just about to be pushed off. In one case, three black balls are just about to push one white ball (of two) off, and in the other case, three white balls can push a black ball off.

Additionally, there are several moves which push the enemy but do not push his balls off.

Finally, it must be remembered that all moves must push (or slide) into empty spaces or off the board. Hence, while the two white balls can push the black ball one space to the left, the three black balls cannot push the one white ball above them anywhere, as it is blocked by another black ball.

Eventually, one player pushes six of the opponent's balls off and the game ends; that player wins.

Here, for example, black has pushed off four of white's balls, while white has pushed off three. The game's not over.

How to Play


This displays the opening position of an Abologna game.

The current turn is displayed here and colors alternate. The score is displayed in the top corner, and the balls are moved on the hexagonal board which takes up most of the display.

If the computer is moving, the top corner will display the word "Moving" flashing black and white until it selects its move. It is important to note that the game does not prevent you from making menu selections or leaving the game (via the Applications icon) while it is thinking.


Moving your balls is quite simple.

To move the three white balls into the blue colored empty space, simply "drag" the stylus from the red ball to the blue space.

There is no moving ball animation.

If the move is invalid, an error message will appear.

To recap, to push balls, drag the ball on the far end of the line of balls (marked in red) in the direction you wish the push to go (towards the blue empty space).




Sliding balls is almost as simple.

To slide the three white balls into the adjacent three colored empty spaces, two steps are required.

First, a single ball must be tapped. This ball will become shaded, as indicated by the red arrow in the second picture.

Second, the ball at the end of the line of balls you wish to slide must be dragged in the direction you wish all balls to slide, as indicated in the third picture.

If you mistakenly select a ball you do not wish to move, you may tap another ball to select it, or tap the same ball to remove the selection entirely.

Note: You may always drag the stylus farther than you actually wish the ball to move. The system will interpet the direction of the motion of the stylus, not the distance. That having been said, it is better to drag two or three spaces so that the direction can most accurately be discerned; drags shorter than one space will be ignored.

Options

There are two choices in the options menu.

About Abologna displays the usual about box and has a button you can press to see directions on how to play.

Preferences... brings up the following menu:

You may tap the "circle-i" icon in the corner for a description of these options.

Difficulty refers directly to the number of moves the computer looks ahead while deciding what move to make. Level two is quite a challenge to the programmer. Level one is extremely fast and the computer will make its move in half a second. Level two is good for all-around play, and the computer will usually move in three to seven seconds. Level three is noticably slower, and in some cases can take the computer up to three minutes to move. If you wish to play on level three, it is recommended that you wait until both sides meet and the position becomes interesting, as it is able to determine good moves faster in that situation.

To play against the computer, it is possible to be either white or black, and have the computer be the other player. Set the White option to Human and Black to Computer, or vice-versa.

To play the computer off against itself, set both Black and White to computer. It really isn't all that fun unless you manually make several moves to get to an interesting position. You can exit computer vs. computer play by changing the options again; the menus and all other choices remain enabled while the computer is beating itself.

To play against another person on your pilot, set both the White and Black options to Human. You can take turns making moves.

To play against another human by beaming/infrared, you should of course first beam your friend the program! After that, you both should set White to Human and Black to Beam. Each of you will see the opponent as the black balls on your pilot, and you will be playing the white balls. After every move, it will be beamed to your friend. It receives the move very quickly, but the mover takes a few seconds longer.

To play against a friend by net, you need a Palm modem or a wireless modem such as the Novatel Minstrel III or V (with service from GoAmerica, AT&T, OmniSky, or similar). You can also play over the net with the Palm Emulator.

For this, you need your friend's IP address. Please see your modem's manual for how to retrieve this information and give it to your friend. At my office, we all have a "memo" with all our IP addresses.

Enter the IP address in the Opponent IP field as four numbers separated by three dots, with no leading zeros (which confuses the Palm operating system). For example, "1.2.3.4" is fine, but "1.02.03.04" may cause problems on some versions of the PalmOS.

When playing beam or net games, one player should reset the board as described below to start the game going.

Display Evaluator allows you to display the computer's evaluation of the current board and run through an enumeration of all possible moves for the current player:

Here, Eval is the evaluation. A higher number is better for white, and a lower number is better for black. The scale happens to be symmetric around zero.

The E Start button starts the move enumerator. The balls and the direction they will be slid or pushed will be displayed with every press of the E Next button. The move direction arrow is not erased if the option is turned off or a move is made, but don't worry about it. This option is useful to see what every possible move is as well as to get a feel for how well the computer thinks you (or it) is doing.

Commands

Game Commands

These commands are useful in all types of games, against friends, the computer, or network/beam games.

To begin a new game, use the Reset Board command. If you are playing an opponent by beam or net, it will ask you if you wish to go first or second, and will send a message to the opponent telling him that you wish to begin a new game and that he will go second or first, respectively. It is only necessary for one player to send the reset board message.

To skip a turn, you can use the Skip Turn command. Skipping a turn is not legally allowed by the Abologna rules; this is provided as a courtesy to the user as well as to re-sync a network game that has gotten out of sync.

To force the computer to move during a human turn, you can use the Force Computer Move command, which will start the computer thinking about the move at the configured difficulty level.

Swap Sides allows you to switch all the white balls for black, and vice versa. It also switches the color whose turn it is. Note: this command is not allowed during net or beam games. To swap colors for net and beam games, both players should switch the game to human vs. human, swap colors, then go back to net/beam game. The person who becomes white will then have the next move to make.

Net Commands

These commands are useful only during network or beam games.

Send Board will (re-)send the current board to your opponent. This is useful, for example, if he did not get your beam or net move, or if you have been playing against the computer and wish to continue the game against a friend.

Request Board sends a short message to your opponent that you have not received his move and that he should send it again. Of course, if he hasn't moved yet, this might remind him to get his act together!

Finally, Send Short Message allows you to send a short - and I do mean short at 20 characters - message to your friend.

License

Abologna is Copyright © 2000 Douglas Fields. All rights reserved.

By using this software, you agree to abide by the following simple terms:

There is no charge for licensing or using this software.

The use of this software is at your own risk. The author specifically disclaims any and all warranties and makes no assurance that this software will not cause damage to equipment or data loss. That said, the author does not know of any instance of such occurances as of the writing of this manual.

Revision History

Brief summary of changes over time (slightly inaccurate).

Version 1.70: March 17, 2000
Added "Switch Sides" to Game menu. Added "Net" menu and move some stuff. Code portability enhancements.
Version 1.60: March 10, 2000
Send Board, Request Board, Send Short Message commands. Removed Benchmark... command.
Version 1.50: Febuary 29, 2000
Optimization of all computer moves; speed improvements of 15% noted. Worked around compiler maximum optimization bug (caused by loop strength-reduction) for additional ~10% speed increase. Benchmark command.
Version 1.42
February 28, 2000: Reset board message sent to opponent. Provision for text messages.
Version 1.41
February 28, 2000: Rewrite of net/beaming code to a unified messaging layer.
Version 1.40
February 27, 2000: Play opponents by net. Enhanced preferences to allow any choice of players.
Version 1.30
February 27, 2000: Play opponents by beaming.
Version 1.20
February 26, 2000: Preferences to allow computer v. computer play and selection of computer level.
Version 1.11
February 22, 2000: Due to a compiler bug on optimization levels three or four, backed down to optimization level two. (Worked around in version 1.50.)
Version 1.10
February 22, 2000: Enhancements to computer move selection routine. Full compiler optimization turned on.
Version 1.0
February 21, 2000: Computer play using board evaluator with a minimax, alpha-beta pruned tree search. Average 42 moves per ply; alpha-beta pruning reduces this search approximately five times or more at three ply search.
Version 0.7
February 21, 2000: Move enumerator and board evaluator. High scores are better for white.
Version 0.6
February 21, 2000: Beginning of preferences menu,
Version 0.5
February 19, 2000: Slide move, full saving of position and preferences when the game leaves/starts,
Version 0.2
February 19, 2000: Enforcement for turn, turn annunciator, skip turn, etc.
Version 0.1
February 18, 2000: Initial version: board and move classes as well as user interface. Push moves implemented only.