welcome: please sign in

Upload page content

You can upload content for the page named below. If you change the page name, you can also upload content for another page. If the page name is empty, we derive the page name from the file name.

File to load page content from
Page name
Comment

Revision 1 as of 2012-11-05 16:10:09

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)