v1.8 Copyright (c) 2002-2003 by Brian Nenninger
Gridlock is free, but if you would like to make a donation, click here.
Gridlock source code is available at http://www.dozingcat.com.
Gridlock is a collection of several grid-based strategy games. The games include Ataxx, Reversi, Checkers, Gomoku, Connect Four, Breakthrough, Glass Bead, and Life; they are individually described in the "Games" section.
After launching the application, the game window will appear. Select the game you want to play from the "Game" popup menu in the upper right. Some games have different variations (board size, layout, etc); when one of those games are selected a "Variations" popup menu will appear from which you can select a variation.
The bottom right displays the color and status of the two players. Each player's color is shown by a circle; the player whose turn it is has a filled circle. For games in which players have a score, the scores are shown next to the player labels. Popup windows underneath each player's label allow you to specify whether each player is human or computer-controlled, and the difficulty of computer players. (Note that "Hard" computer opponents may take several seconds to make each move).
The rest of the window contains the game board. To make a move, click on the cell where you wish to place a piece. Some games require that you move from one cell to another; to do this first click on the cell you wish to move from, then click on the cell you wish to move to. (In Checkers you may be able to make a move containing several jumps; to do this click on each cell you wish to jump to in sequence). For all games, cells that are legal moves will become highlighted when you move the mouse over them. A black dot indicates the position of the last move. If you are unable to make a move, you can pass by clicking the "Pass" button on the right. The "Restart" button will restart the game, requiring confirmation if a game is in progress.
The "Preferences..." menu item in the main Gridlock menu opens the Preferences window, which allows you to change the appearance of the game pieces, and to enable or disable the animation when they are captured. Game pieces can either be bitmap images chosen from the popup menus, or solid colors chosen from the color wells.
Games can be saved and restored using the "Save" and "Open" commands in the Game menu. Games are saved with their full move history, so you can save a game after it is finished, open it later, and undo moves back to the beginning.
The Edit menu contains Undo and Redo commands. Selecting Undo will back the game up to the last time it was a human player's turn. There is no limit to how many moves can be undone. Selecting Redo will redo a move that was previously undone, but only if no new moves were made after the undo.
The Window menu contains commands to toggle the display of network and statistics drawers. The network drawer is described below and is primarily used to chat with your opponent during a network game. The statistics drawer shows a table listing all the moves that have been made in the current game, and information on the analysis performed during the last move made by a computer player.
Additional information for many of these games is available at The World of Abstract Games.
Ataxx: The object of this game is to capture your opponent's pieces by moving your pieces next to them. There are two types of moves you can make. A normal move consists of starting from a piece that you own and creating another piece one cell away from it (horizontally, vertically, or diagonally). The starting piece remains, and you capture any of your opponent's pieces that your new piece borders. A jump move consists of moving a piece you own two cells in any direction. As with a normal move, any opponent's pieces that border the ending position are captured. To make either kind of move, first click on a piece that you own, then click on the empty cell you want to move to. The game is over when all the cells are filled, and the player owning the most pieces is the winner.
Quad Wrangle: This game is similar to Ataxx. There are three types of moves. The first type consists of starting from a piece that you own and creating another piece one cell away from it. The starting piece remains, and you capture any of your opponent's pieces that your new piece borders. (This is the same as non-jump move in Ataxx). The second type consists of sliding a piece you own any number of squares horizontally, vertically, or diagonally. Any opponent's pieces that border the ending position are captured. The third type is a drop of a piece to any empty cell. Unlike the other move types, no pieces are captured with this move type. To make a normal or slide move, first click on a piece that you own, then click on the empty cell you want to move to. To make a drop, click on an empty cell. The game is over when all the cells are filled, and the player owning the most pieces is the winner.
Reversi: (also known as Othello). The object is to capture the other player's pieces by enclosing them between two of your pieces. You make a move by placing a piece in an empty cell. You capture any of your opponent's pieces that are in a horizontal, vertical, or diagonal line between the new piece and another of your pieces. Every move must result in the capture of at least one piece; you must pass if you cannot capture any pieces. The game is over when the board is full or neither player can move; the player owning the most pieces is the winner.
Checkers: The object is to remove your opponent's pieces or prevent them from moving. Pieces move forward and diagonally, and can jump and remove opposing pieces by landing in the empty space directly behind them. When a piece reaches the last row, it is promoted to a king (represented by two stacked game pieces). Kings can move backwards and well as forwards. Whenever you can make a jump, you must do so. See http://www.triplejump.net/usrules.shtml for more detailed rules.
Gomoku: This is an expanded form of tic-tac-toe. Players move by placing a piece at any empty cell. A player wins by forming a straight line of 5 pieces horizontally, vertically, or diagonally.
Connect Four: Similar to Gomoku, a player wins by forming a straight line of 4 pieces horizontally, vertically, or diagonally. However, you may only place a piece at the lowest empty cell in each column.
Gravity: A player wins by forming a straight line of 4 pieces horizontally, vertically, or diagonally. The board has a "gravity field", which pulls pieces toward the edges or corners. If a cell is on a main diagonal (indicated by a gray background), a piece may be placed there only if there are no empty cells between that cell and the nearest corner. If a cell is not on a diagonal, a piece may be placed there only if there are no empty cells between that cell and the nearest edge.
Hexapawn: The object of this game is to move one of your pieces (pawns) to the other side of the board. In the normal game, pawns move as standard chess pawns; moving forward one square to an empty position, or capturing diagonally forward. Berolina and Berolina Plus pawns can be used in variations of this game. Berolina pawns move diagonally forward and capture directly forward. Berolina Plus pawns are the same as Berolina pawns, except they can also capture sideways. For all variations, a player wins when one of his pawns reaches the final row, or when his opponent is unable to move.
Breakthrough: The object of this game is to move one of your pieces to the other side of the board. Player 1's pieces start in the bottom two rows and move up; player 2's pieces start in the top two rows and move down. Pieces move one cell forward or diagonally forward. Pieces may capture opposing pieces when making a diagonal move, but not when making a direct forward move. A player wins when one of his pieces reaches the final row. Breakthrough was designed by Dan Troyka, the winner of the 2001 8x8 Game Design Competition; thanks to Dan for permission to include it.
Zonesh: The object of this game is to move one of your pieces to the opposite corner. The set of cells where a player's pieces start the game is that player's home zone; these cells are indicated with a tinted background. Pieces in their home zone move and capture one square horizontally or vertically. Pieces outside their home zone may additionally move and capture one square diagonally. A player wins by moving one of his pieces to the corner cell in his opponent's home zone. Zonesh was also created by Dan Troyka.
Glass Bead: The object of this game is to control the most cells. You control a cell if either you have placed a piece on the cell, or if the cell borders more of your pieces than your opponent's pieces. Players alternate placing pieces on cells that are not controlled by either player. Cells which do not contain pieces but which are controlled by a player are tinted with that player's color. The game ends when all cells are controlled by one of the players, and the player controlling the most cells wins. See here for more detailed information.
Cats & Dogs: Players take turns placing pieces ("cats" and "dogs") on empty cells. A piece cannot be placed in a cell that is horizontally or vertically adjacent to an opposing piece. When a player places a piece on a cell, the adjacent cells will be tinted with his color to indicate that his opponent can no longer play there. If an empty cell becomes adjacent to pieces of both players, it will turn gray to indicate that neither player can play there. A player wins when his opponent is unable to move.
Moray Eels: The object of this game is to capture the opposing pieces. Player 1's pieces are "Octopussies". They move one cell forward or diagonally forward. Player 2's pieces are "Eels". Like Octopussies, they can move one cell forward or diagonally forward. They can also move one or two cells sideways, or one or two cells sideways and one cell back. All moves must be to empty cells, and Eels can jump over friendly or opposing pieces. After a player moves, he gains control of all his opponent's pieces that are adjacent (horizontally, vertically, or diagonally) to his moved piece.
Life: This game is based on the Game of Life cellular automaton. Both players take turns placing a piece on an empty cell. After a player places a piece, an iteration of the Life algorithm is executed. A piece survives if it has exactly 2 or 3 neighbors (pieces adjacent to it horizontally, vertically, or diagaonally). A piece is removed if it has less than 2 or more than 3 neighbors. A new piece will be created in an empty cell if it has exactly 3 neighbors; the new piece will be owned by the player who owns the majority of the neighbors. A player wins by owning at least three times as many pieces as the other player after a Life iteration.
To host a network game, select "Host Network Game" from the Gridlock menu. A window will appear allowing you to select the game and variation (if applicable) that you wish to play. If you want to restrict who can join your game, you may enter a password in the "Password" text field. Anyone attempting to join your game must provide this password or they will be unable to connect. (Obviously, do not use any of your real passwords). The "Port" field should usually be left at the default value of 27500; change it only if you get an error when attempting to host. The "Username" field is the name you will be identified as to your opponent. The default is your user account name, but you can change it to anything. To begin hosting, click the "Host" button. The game will automatically begin when someone connects to your computer. Close the window or click the Stop button to stop waiting for connections.
To join a network game, select "Join Network Game" from the Gridlock menu. Enter the hostname or IP address of the computer you wish to connect to in the "Address" field, and change the port number if the computer is not using the default of 27500. If your machine supports Rendezvous and one or more Rendezvous-enabled machines are hosting games on your local network, you will see a popup menu listing all of them. To connect to one of them, select the "Rendezvous" radio button and choose the game you want to join from the popup menu. If the game you are joining requires a password, enter it in the "Password" field. The "Username" field has the same purpose as when hosting, to identify you to your opponent. Once you have manually entered an address or selected a Rendezvous host, click the "Connect" button to connect to the selected machine. If the connection is successfully established, the game will begin immediately.
When a network game begins, a drawer will open from the game window allowing you to chat with your opponent. To send a message, type into the text field at the top of the drawer and press the Return key. Game moves are made in the same way as when playing against a computer opponent. Either player may restart the game or start a different game and/or variation. The player who initially hosted the game is always player 1, and the player who connected is player 2. When playing against a network opponents, the popup menu next to their player labels will have "Network" selected. Changing either player's type will end the network game and disconnect. You can also disconnect from a network game using the "Disconnect" button in the network drawer.
1.8, Sep 28 2003
1.7, Aug 10 2003
1.6.1, Jul 1 2003
1.6, Jun 15 2003
1.5, Apr 27 2003
1.3, Nov 16 2002
1.2, Aug 25 2002
1.1, Jul 20 2002
1.0, Apr 2 2002: initial release
Contact me with any bug reports, comments, or suggestions at brian@dozingcat.com.
While this program is free, donations are very much appreciated, and will encourage me to continue to improve it. To make a donation using PayPal, click here.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Gridlock contains code from the EDCommon framework, which is Copyright (c) 1997-2001 by Erik Doernenburg. The following applies to such code:
Permission to use, copy, modify and distribute this software and its documentation is hereby granted, provided that both the copyright notice and this permission notice appear in all copies of the software, derivative works or modified versions, and any portions thereof, and that both notices appear in supporting documentation, and that credit is given to Erik Doernenburg in all documents and publicity pertaining to direct or indirect use of this code or its derivatives.THIS IS EXPERIMENTAL SOFTWARE AND IT IS KNOWN TO HAVE BUGS, SOME OF WHICH MAY HAVE SERIOUS CONSEQUENCES. THE COPYRIGHT HOLDER ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" CONDITION. THE COPYRIGHT HOLDER DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING DIRECTLY OR INDIRECTLY FROM THE USE OF THIS SOFTWARE OR OF ANY DERIVATIVE WORK.