Generated on Mon Aug 25 11:35:48 2008 for Gecode by doxygen 1.5.6

Kakuro Class Reference
[Scripts for problems]

Inherits Example.

List of all members.


Detailed Description

Example: Kakuro

Another puzzle in the style of Sudoku.

Definition at line 512 of file kakuro.cc.


Kakuro specifications

Each specification starts with two integers for width and height, followed by entries for vertical constraints, an integer -1 (signalling the end of the vertical constraints), entries for the horizontal constraints, and, finally, an integer -1.

Each entry consists of four integers:

  • the x-coordinate of the hint
  • the y-coordinate of the hint
  • the number of fields in the respective direction
  • the sum of the fields

The example are taken from the website of Nikoli (from the free section). Thanks to Nikoli for their great puzzles and their brilliant website: www.nikoli.com.

const int k0 []
const int k1 []
const int k2 []
const int k3 []
const int k4 []
const int k5 []
const int k6 []
const int k7 []
const int k8 []
const int k9 []

Public Types

enum  { PROP_DFA, PROP_TUPLE_SET }
 Propagation variants. More...
enum  { MODEL_DECOMPOSE, MODEL_COMBINE }
 Model variants. More...

Public Member Functions

IntVarb (int x, int y)
 Access the field at position x, y.
void init (int x, int y)
 Init the field at position x, y if necessary.
template<class Data>
void distinctlinear (Cache< Data > &dc, const IntVarArgs &x, int c, const SizeOptions &opt)
 Post a distinct-linear constraint on variables x with sum c.
 Kakuro (const SizeOptions &opt)
 The actual problem.
 Kakuro (bool share, Kakuro &s)
 Constructor for cloning s.
virtual Spacecopy (bool share)
 Perform copying during cloning.
virtual void print (std::ostream &os)
 Print solution.

Protected Attributes

const int w
 Width of board.
const int h
 Height of board.
IntVarArray _b
 Variables for board.

Related Functions

(Note that these are not member functions.)

const int * examples []
 Array of all examples.
template<class C>
generate (int n, int c)
 Generate specification for n distinct variables withm sum c.

Member Enumeration Documentation

anonymous enum

Propagation variants.

Enumerator:
PROP_DFA  Use DFAs for extensional constraints.
PROP_TUPLE_SET  Use tuple sets for extensional constraints.

Definition at line 519 of file kakuro.cc.

anonymous enum

Model variants.

Enumerator:
MODEL_DECOMPOSE  Decompose constraints.
MODEL_COMBINE  Combine distinct and linear constraint.

Definition at line 524 of file kakuro.cc.


Constructor & Destructor Documentation

Kakuro::Kakuro ( const SizeOptions opt  )  [inline]

The actual problem.

Definition at line 591 of file kakuro.cc.

Kakuro::Kakuro ( bool  share,
Kakuro s 
) [inline]

Constructor for cloning s.

Definition at line 633 of file kakuro.cc.


Member Function Documentation

IntVar& Kakuro::b ( int  x,
int  y 
) [inline]

Access the field at position x, y.

Definition at line 529 of file kakuro.cc.

void Kakuro::init ( int  x,
int  y 
) [inline]

Init the field at position x, y if necessary.

Definition at line 534 of file kakuro.cc.

template<class Data>
void Kakuro::distinctlinear ( Cache< Data > &  dc,
const IntVarArgs x,
int  c,
const SizeOptions opt 
) [inline]

Post a distinct-linear constraint on variables x with sum c.

Definition at line 540 of file kakuro.cc.

virtual Space* Kakuro::copy ( bool  share  )  [inline, virtual]

Perform copying during cloning.

Implements Gecode::Space.

Definition at line 638 of file kakuro.cc.

virtual void Kakuro::print ( std::ostream &  os  )  [inline, virtual]

Print solution.

Reimplemented from Example.

Definition at line 643 of file kakuro.cc.


Friends And Related Function Documentation

const int k0[] [related]

Initial value:

 {
    
    12,10,
    
     2, 0, 5,16,     3, 0, 2, 4,     5, 0, 3, 6,     6, 0, 2, 4,    
     7, 0, 5,15,    10, 0, 3, 6,    11, 0, 3, 7,     1, 1, 3, 7,    
     9, 1, 5,16,     4, 2, 2, 5,     8, 2, 2, 3,     3, 3, 5,16,    
     6, 3, 3, 8,     5, 4, 5,15,    10, 4, 5,15,     4, 5, 2, 3,    
     8, 5, 2, 4,    11, 5, 3, 7,     1, 6, 3, 6,     2, 6, 3, 7,    
     7, 6, 3, 7,     6, 7, 2, 3,     9, 7, 2, 4,    -1,
    
     1, 1, 2, 7,     4, 1, 3, 9,     9, 1, 2, 4,     0, 2, 3, 7,    
     4, 2, 3, 7,     8, 2, 3, 6,     0, 3, 2, 3,     3, 3, 2, 4,    
     6, 3, 5,16,     0, 4, 4,10,     5, 4, 4,10,     1, 5, 2,10,    
     4, 5, 3, 6,     8, 5, 2, 5,     2, 6, 4,10,     7, 6, 4,12,    
     0, 7, 5,16,     6, 7, 2, 4,     9, 7, 2, 4,     0, 8, 3, 7,    
     4, 8, 3, 8,     8, 8, 3, 6,     0, 9, 2, 3,     4, 9, 3, 7,    
     8, 9, 2, 3,    -1
  }

Definition at line 69 of file kakuro.cc.

const int k1[] [related]

Initial value:

 {
    
    12,10,
    
     1, 0, 2, 4,     2, 0, 5,15,     5, 0, 5,18,     6, 0, 2,12,    
     7, 0, 3, 8,    10, 0, 3,24,    11, 0, 3,23,     3, 1, 2, 7,    
     9, 1, 3,24,     4, 2, 5,16,     8, 2, 5,35,     1, 3, 2,12,    
     6, 3, 3,17,     7, 4, 5,34,    10, 4, 5,34,    11, 4, 2,16,    
     3, 5, 3, 6,     1, 6, 3, 7,     2, 6, 3, 6,     5, 6, 3,23,    
     9, 6, 2,10,     6, 7, 2,14,    11, 7, 2,10,    -1,
    
     0, 1, 2, 3,     4, 1, 3,15,     9, 1, 2,16,     0, 2, 3, 6,    
     4, 2, 3, 7,     8, 2, 3,24,     1, 3, 4,11,     6, 3, 5,34,    
     0, 4, 2,14,     3, 4, 3,23,     7, 4, 2,14,     0, 5, 2, 7,    
     3, 5, 5,15,     9, 5, 2,17,     2, 6, 2, 6,     5, 6, 3,23,    
     9, 6, 2,13,     0, 7, 5,16,     6, 7, 4,30,     0, 8, 3, 6,    
     4, 8, 3,23,     8, 8, 3, 7,     0, 9, 2, 4,     4, 9, 3,24,    
     9, 9, 2,17,    -1
  }

Definition at line 90 of file kakuro.cc.

const int k2[] [related]

Initial value:

 {
    
    12,10,
    
     2, 0, 5,15,     3, 0, 2, 3,     7, 0, 3, 7,     8, 0, 4,23,    
     9, 0, 2,12,    10, 0, 3,20,    11, 0, 3, 9,     4, 1, 3, 7,    
     5, 1, 4,10,     1, 2, 3, 6,     6, 2, 5,15,     9, 3, 2,16,    
     3, 4, 2, 3,     7, 4, 4,13,    10, 4, 5,35,    11, 4, 3,23,    
     4, 5, 4,11,     8, 5, 3,23,     1, 6, 3,23,     2, 6, 3,14,    
     5, 6, 3,11,     3, 7, 2,13,     9, 7, 2,17,    -1,
    
     1, 1, 2, 4,     6, 1, 5,15,     1, 2, 4,11,     6, 2, 5,34,    
     0, 3, 2, 3,     3, 3, 5,15,     9, 3, 2,10,     0, 4, 2, 4,    
     3, 4, 3, 6,     7, 4, 2,17,     0, 5, 3, 7,     4, 5, 3, 8,    
     8, 5, 3,18,     2, 6, 2, 3,     5, 6, 3,11,     9, 6, 2,16,    
     0, 7, 2,16,     3, 7, 5,16,     9, 7, 2,17,     0, 8, 5,16,    
     6, 8, 4,30,     0, 9, 5,35,     8, 9, 2,17,    -1
  }

Definition at line 111 of file kakuro.cc.

const int k3[] [related]

Initial value:

 {
    
    12,10,
    
     3, 0, 3, 7,     4, 0, 6,21,     7, 0, 4,29,     8, 0, 2,17,    
    10, 0, 4,29,    11, 0, 3,23,     2, 1, 3, 6,     6, 1, 2,16,    
     9, 1, 4,14,     1, 2, 2, 4,     5, 2, 2, 3,     8, 3, 6,22,    
     3, 4, 4,10,     2, 5, 4,11,     5, 5, 4,10,     7, 5, 2,10,    
    10, 5, 3,24,    11, 5, 2,16,     1, 6, 3, 7,     6, 6, 2, 9,    
     9, 6, 3,23,     4, 7, 2, 4,    -1,
    
     2, 1, 2, 4,     6, 1, 2,17,     9, 1, 2,16,     1, 2, 3, 6,    
     5, 2, 6,39,     0, 3, 7,28,     8, 3, 3,24,     0, 4, 2, 3,    
     3, 4, 2, 3,     6, 4, 4,20,     2, 5, 2, 9,     7, 5, 2, 4,    
     1, 6, 4,10,     6, 6, 2, 3,     9, 6, 2,16,     0, 7, 3, 6,    
     4, 7, 7,42,     0, 8, 6,21,     7, 8, 3,21,     0, 9, 2, 4,    
     3, 9, 2, 3,     7, 9, 2,16,    -1
  }

Definition at line 131 of file kakuro.cc.

const int k4[] [related]

Initial value:

 {
    
    20,12,
    
     3, 0, 3,21,     4, 0, 2, 4,     5, 0, 4,11,     8, 0, 2, 8,    
     9, 0, 3, 7,    11, 0, 2, 3,    12, 0, 3, 6,    15, 0, 6,39,    
    16, 0, 2, 3,    17, 0, 3,23,     2, 1, 5,15,     6, 1, 4,10,    
    10, 1, 4,11,    14, 1, 4,11,    18, 1, 3, 6,     1, 2, 3,24,    
     7, 2, 4,14,    13, 2, 2,10,    19, 2, 2,16,     4, 3, 5,18,    
     8, 3, 4,10,    11, 3, 4,12,    16, 3, 5,33,     3, 4, 3,23,    
     9, 4, 4,29,    12, 4, 4,30,    17, 4, 3,18,     5, 5, 6,38,    
    13, 5, 4,29,    18, 5, 5,15,     6, 6, 4,25,    10, 6, 4,12,    
    14, 6, 4,28,    19, 6, 3,21,     1, 7, 2, 4,     2, 7, 3, 7,    
     7, 7, 2, 7,    15, 7, 4,11,     3, 8, 3,19,     8, 8, 3,24,    
    11, 8, 3, 7,    17, 8, 3, 6,     4, 9, 2,16,     9, 9, 2,16,    
    12, 9, 2,17,    16, 9, 2, 5,    -1,
    
     2, 1, 3, 7,     7, 1, 2, 4,    10, 1, 2, 4,    14, 1, 3,19,    
     1, 2, 5,18,     7, 2, 5,15,    13, 2, 5,16,     0, 3, 3,21,    
     4, 3, 3, 6,     8, 3, 2, 3,    11, 3, 4,11,    16, 3, 3,20,    
     0, 4, 2,14,     3, 4, 5,15,     9, 4, 2, 3,    12, 4, 4,29,    
    17, 4, 2, 8,     0, 5, 4,27,     5, 5, 7,42,    13, 5, 4,12,    
     1, 6, 4,12,     6, 6, 3, 8,    10, 6, 3,20,    14, 6, 4,29,    
     2, 7, 4,28,     7, 7, 7,28,    15, 7, 4,28,     0, 8, 2, 3,    
     3, 8, 4,11,     8, 8, 2,10,    11, 8, 5,35,    17, 8, 2,10,    
     0, 9, 3, 6,     4, 9, 4,30,     9, 9, 2, 3,    12, 9, 3,19,    
    16, 9, 3, 7,     1,10, 5,34,     7,10, 5,34,    13,10, 5,17,    
     2,11, 3,23,     7,11, 2,17,    10,11, 2,10,    14,11, 3, 6,    
    -1
  }

Definition at line 151 of file kakuro.cc.

const int k5[] [related]

Definition at line 183 of file kakuro.cc.

const int k6[] [related]

Definition at line 217 of file kakuro.cc.

const int k7[] [related]

Definition at line 250 of file kakuro.cc.

const int k8[] [related]

Definition at line 287 of file kakuro.cc.

const int k9[] [related]

Definition at line 326 of file kakuro.cc.

const int* examples[] [related]

Initial value:

 {
    &k0[0], &k1[0], &k2[0], &k3[0], &k4[0], 
    &k5[0], &k6[0], &k7[0], &k8[0], &k9[0]
  }
Array of all examples.

Definition at line 362 of file kakuro.cc.

template<class C>
TupleSet generate< TupleSet > ( int  n,
int  c 
) [related]

Generate specification for n distinct variables withm sum c.

Generate tuple set for n distinct variables with sum c.

Generate DFA for n distinct variables with sum c.

This function should be specialised for any type of specification.


Member Data Documentation

const int Kakuro::w [protected]

Width of board.

Definition at line 514 of file kakuro.cc.

const int Kakuro::h [protected]

Height of board.

Definition at line 515 of file kakuro.cc.

IntVarArray Kakuro::_b [protected]

Variables for board.

Definition at line 516 of file kakuro.cc.


The documentation for this class was generated from the following file: