welcome: please sign in

Revision 2 as of 2012-11-05 16:10:31

Clear message
location: Solitaire

Solitaire

Problem Description

Solitaire is a single player game played on a 7x7 board with 2x2 corners omitted. Each position is either full (containing a peg / marble) or empty. With 'O' representing full positions and '.' representing an empty position, a possible board configuration is:

  OOO 
  OOO 
OOO.OOO 
OOOOOOO 
OOOOOOO 
  OOO 
  OOO 

Each turn the player must jump (orthogonally but not diagonally) a peg over an existing peg and removed the 'jumped' peg. For example, numbering the board from the top left, moving peg (6,3) left would give the following board configuration:

  OOO 
  OOO 
OOOO..O 
OOOOOOO 
OOOOOOO 
  OOO 
  OOO 

The task is, given an initial board configuration, to find a sequence of the given number of moves.

Predicates

Input format

Thirty two facts giving the initial board configuration, each of which is either:

full(X,Y). or empty(X,Y).

indicating that position (X,Y) is either full or empty.

A number of time facts, in the form time(i), specifying the number of moves that must be found. These are given as a range of consecutive, ascending integers, starting at 1.

Output format

The input facts plus a number of move facts equal to the number of time facts. Each move fact is of the form: move(T,D,X,Y).

indicating that to get to time step T from time step T-1 (the initial conditions are regarded to be time step 0), the peg in position (X,Y) is moved in direction D (up, down, left or right).

Example(s)

Comment

This problem took part in the Second ASP Competition and was proposed by Martin Brain.

Notes and Updates

Author(s)