The game takes place on an n x m grid, representing an area of ocean. The two players are in command of some number of ships of varying size. The object is to destroy all of your opponent's ships before he does the same to you.
Before the game starts, each player must choose the initial positions of his ships. Ships must be placed in opposite halves of the board only; thus there is no chance that a player will try to place a ship on top of an opponent's.
After all ships have been placed, the game begins. The players take turns executing one of three possible commands: fire a missile, move a ship, or rotate a ship in place. After a command is successfully executed, control is transferred to the other player.
If a square containing a ship segment is fired upon, that ship has been hit. If all of a ship's segments are hit, it sinks into the ocean. Once all of a player's ships have been sunk, the game ends.
Ship movement is limited. If any part of a ship has been hit by enemy fire, it is immobile and cannot move or rotate. Two ships may not occupy the same square, nor can any ship move into a square that has already been fired upon.
Players have limited information about the game world. Initially, all that is known is where a player has placed his ships. Spaces directly adjacent to a player's ships are visible to that player. Thus, if your opponent fires and misses one of your vessels by just one square, you will see the explosion. If your opponent moves a ship so that it is adjacent to one of yours, you will see it also.