Basic Moves
There are three types of basic moves in Impasse: the single slide, the double slide, and the transpose. If you have any basic move available you have to perform one and only one of them.
Single slide: A single checker can be slid diagonally forward (away from the owner), in a straight line along any number of consecutive, unoccupied squares. Your program has to output the coordinates of the piece he wants to move followed by its destination coordinate (e.g, c1a3 ).
Double slide: A double is a stack of two like-colored checkers. Doubles can be slid diagonally backward in a straight line along any number of consecutive, unoccupied squares. Your program has to output the start and end coordinates of the movement (e.g, g7d4 ).
Transpose: If you have a single adjacent to one of your doubles, and in a nearer row than the double, you can take the top checker (a crown) of that double and transfer it onto the single. Your program has to output the start and end coordinates of the crown (e.g, f8g7 ).
Bear Off
When you come to have a double in your nearest row (by way of a slide or a transpose), you must immediately bear off, i.e., remove the top checker of that double from the board (which increases your score).
This action is performed automatically by the referee. However, it can occur in the middle of your turn and impact further choices during this turn.
Impasse
If you have no basic moves available at the start of your turn you are at an impasse, and you must remove exactly one of your checkers from the board - either a single or the top checker of a double. You cannot make any of the three basic move types during your turn, but may need to perform a crown action after (see below). The winner’s last checker is removed via the impasse rule.
When the impasse occurs, your program has to output a single coordinate, pointing the piece (or crown of the piece) you want to remove from the board, (e.g, c5 ).
Crown
When you have a single in your furthest row (by way of a slide, a transpose, or the impasse), you must immediately crown that single with another one of your on-board singles. This action removes chosen on-board single, and makes the furthest row single a double.
If you don’t have another on-board single, nothing happens for now. If you obtain another on-board single during a later turn (via the bear off or impasse), and still have a single in your furthest row, you must immediately perform crowning action.
If crowning occurs during your turn, your program has to specify which piece you want to use for the crowning (even if it is the only choice). For this, you have to append to your program's so-far output a single coordinate, on which the piece that should become a crown is, (e.g, c5 ).