Format for puzzle files is as follows:
[Categories] category 1 name label_1 label_2 label_3 label_4 category 2 name label_5 label_6 label_7 label_8 [Clues] 1,yes,label_1,label_2 1,no,label_6,label_8
Any number of constraints can be placed in the [Clues] section.
See any of the files in this directory for a real example.
clue_num,constraint_kind,args...
Each clue is a comma-separated string. The first field is the number of the original clue in the puzzle from which the constraint is derived. The second field is the name of the constraint. The remaining fields are the arguments to the constraint.
In the following, lower case characters denote labels.
Upper case characters denote categories.
Tokens that begin with $ denote any integer constant, for example $n can be 1 or 4.
- Yes
-
yes,x,yxisy. - No
-
no,x,yxis noty. - Or
-
or,x,y,zxisyorz. - Xor
-
xor,x,y,zxisyorz, but not both. - After
-
after,x,C,yIn category
C,xappears somewhere aftery. - AfterExactly
-
afterexactly,x,C,y,$nIn category
C,xappears exactly$nlabels aftery. - Two by two
-
twobytwo,x1,x2,y1,y2Either
x1isy1andx2isy2, orx1isy2andx2isy1. - Exactly one
-
exactlyone,x_1,y_1,…,x_n,y_nThere exists exactly one
isuch thatx_iisy_i. For all otherj != i, it must be the case thatx_iis noty_i.