Planes is a strategy game for two persons and a variant of the Battleships game. It is currently available for the Linux, Windows and Android operating systems. It is open source, free and ad-free. Currently the game can be played either in single-player modus (agains the computer) or in multiplayer modus (against other human players).
The game is played on a 10x10 board. Each player has his / her own board where he / she places 3 planes. The planes consist of 10 grid squares representing wings, body, tail and cockpit. The planes are not allowed to overlap on the board. The goal of the game is to guess the position of the opponent's plane cockpits before the opponent guesses the same for your planes. The players do not see the opponent's board, they are only allowed to make (educated) guesses on where the cockpits might be.
After each player has positioned his / her planes a set of guessing turns are performed. Each player is allowed to unveil a square on the opponent's board and the opponent tells what was unveiled: a miss, that means there was no plane there, a hit, that means a part of the plane is there but it is not the cockpit, and dead, that means a cockpit was found.
It is possible to have a draw when both players guess the other player's cockpits in the same number of turns.
A variation of the game specifies that when a cockpit was guessed all the grid squares corresponding to that plane are communicated to the player who made the correct guess.
The algorithm of the computer playing the game is based on a sequence of decisions meant to guess a new cockpit position, find out about the real plane position for a guessed cockpit position, or simply gather more data.
For guessing a new cockpit position a so-called choice map is created and updated with each made guess. This choice table keeps for each plane position on the board how many sources of information confirm its existance. Planes positions which are already known as impossible are marked accordingly.
Once a cockpit position is found an entry in a data structure called head data is created. This structure keeps for each cockpit and for each plane orientation with that cockpit position a list of points on the plane which were not already tested. In case one plane orientation for one found cockpit is found impossible this information is saved accordingly.
In each step of the algorithm one of three possible methods to compute the next guess are chosen randomly (with set probabilities):
After each guess, based on the received response from the player, the computer updates the choice map and the head data
The probability for making the random point (the third method above) can be controlled by chosing the difficulty level in the Options screen of the app. If an easy difficulty level is chosen the probability for random guessing will be kept high, in an advanced difficulty level the probability for random guessing is low, the computer will act more based on the choice map and list of found cockpit positions.
For the multiplayer version of the game an user account is required. In order to comply with Google's Policy we offer here the possibility to delete your own user account provided that you submit the account credentials.