PicturePuzzle Class Reference
[Example scripts (models)]
Inherits Example.
Detailed Description
Example: Picture puzzlesThis example solves picture-puzzles. A picture-puzzle is composed of a matrix of markers. For each row/column there is a specification on how many groups of markers (separated by one or more unmarked spots) and their length. The objective is to find a valid assignment, which incidentally may also produce a pretty picture.
Picture puzzles are also called Nonograms.
Problem 12 at http://www.csplib.org/.
Definition at line 44 of file picture-puzzle.cc.
Picture specifications | |
A specification is given by a list of integers. The first two integers (w and h) specify the number of columns and rows respectively. Then w + h groups of integers follows. Each group is started by the number of integers it contains (n), followed by n integers specifying the sizes of the stretches of markers in that row/column. | |
static const int | heart [] |
Specification for a heart-shaped picture. | |
static const int | bear [] |
Specification for a bear/bunny-shaped picture. | |
static const int | crocodile [] |
Specification for a crocodile-shaped picture. | |
static const int | unknown [] |
Specification for an unknown picture. | |
static const int | pinwheel [] |
Specification for a pinwheel-picture. | |
static const int | difficult [] |
Specification for a more difficult picture. | |
static const int | non_unique [] |
Specification for a non-unique picture. | |
static const int | dragonfly [] |
Specification for a dragonfly-picture. | |
static const int | p200 [] |
Specification for a picture of a flower. | |
const int * | specs [] |
List of specifications. | |
const unsigned | n_examples = sizeof(specs)/sizeof(int*) |
Number of specifications. | |
Public Member Functions | |
PicturePuzzle (const Options &o) | |
Construction of the model. | |
PicturePuzzle (bool share, PicturePuzzle &s) | |
Constructor for cloning s. | |
virtual Space * | copy (bool share) |
Copy space during cloning. | |
virtual void | print (void) |
Print solution. |
Constructor & Destructor Documentation
PicturePuzzle::PicturePuzzle | ( | const Options & | o | ) | [inline] |
PicturePuzzle::PicturePuzzle | ( | bool | share, | |
PicturePuzzle & | s | |||
) | [inline] |
Member Function Documentation
virtual Space* PicturePuzzle::copy | ( | bool | share | ) | [inline, virtual] |
Copy space during cloning.
Implements Gecode::Space.
Definition at line 110 of file picture-puzzle.cc.
virtual void PicturePuzzle::print | ( | void | ) | [inline, virtual] |
Friends And Related Function Documentation
const int heart[] [related] |
Initial value:
{ 9, 9, 1, 3, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 1, 3, 2, 2, 2, 2, 4, 4, 3, 1, 3, 1, 3, 2, 1, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 1, 3, 1, 1 }
Definition at line 163 of file picture-puzzle.cc.
const int bear[] [related] |
Initial value:
{ 13, 8, 1, 2, 2, 2, 1, 2, 3, 2, 1, 6, 2, 1, 4, 1, 3, 1, 4, 1, 4, 1, 4, 1, 5, 1, 4, 2, 1, 3, 1, 2, 1, 1, 1, 2, 2, 4, 4, 1, 12, 1, 8, 1, 9, 2, 3, 4, 2, 2, 2 }
Definition at line 188 of file picture-puzzle.cc.
const int crocodile[] [related] |
Initial value:
{ 15, 9, 1, 3, 1, 4, 2, 2, 2, 2, 3, 1, 2, 2, 3, 2, 3, 2, 2, 2, 3, 2, 4, 2, 2, 3, 2, 1, 6, 2, 1, 3, 2, 1, 3, 2, 1, 4, 1, 5, 1, 5, 1, 3, 3, 2, 3, 2, 2, 10, 3, 1, 15, 5, 1, 1, 1, 1, 6, 2, 1, 7, 2, 1, 4, 2, 1, 4, 1, 4 }
Definition at line 216 of file picture-puzzle.cc.
const int unknown[] [related] |
Initial value:
{ 10, 10, 1, 3, 2, 2, 1, 2, 2, 2, 2, 2, 1, 3, 1, 2, 1, 2, 1, 1, 3, 1, 4, 1, 3, 1, 1, 2, 2, 3, 1, 1, 4, 1, 3, 2, 2, 1, 2, 1, 1, 2, 1, 4, 4, 1, 1, 1, 1, 4, 2, 1, 1, 1, 3, 2, 1, 1, 2, 1, 2, 2, 2, 3, 1, 3 }
Definition at line 247 of file picture-puzzle.cc.
const int pinwheel[] [related] |
Initial value:
{ 6, 6, 2, 1, 2, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 1, 2 }
Definition at line 274 of file picture-puzzle.cc.
const int difficult[] [related] |
const int non_unique[] [related] |
const int dragonfly[] [related] |
Specification for a dragonfly-picture.
From http://www.oberlin.edu/math/faculty/bosch/pbn-page.html, where it is claimed that it is hard.
Definition at line 367 of file picture-puzzle.cc.
const int p200[] [related] |
Specification for a picture of a flower.
From http://www.icparc.ic.ac.uk/eclipse/examples/nono.ecl.txt, the hardest instance.
Definition at line 418 of file picture-puzzle.cc.
const int* specs[] [related] |
const unsigned n_examples = sizeof(specs)/sizeof(int*) [related] |
The documentation for this class was generated from the following file:
- examples/picture-puzzle.cc (Revision: 3517)