summaryrefslogtreecommitdiff
path: root/apps/plugins/puzzles/help
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/puzzles/help')
-rw-r--r--apps/plugins/puzzles/help/blackbox.c150
-rw-r--r--apps/plugins/puzzles/help/bridges.c144
-rw-r--r--apps/plugins/puzzles/help/cube.c58
-rw-r--r--apps/plugins/puzzles/help/dominosa.c62
-rw-r--r--apps/plugins/puzzles/help/fifteen.c38
-rw-r--r--apps/plugins/puzzles/help/filling.c50
-rw-r--r--apps/plugins/puzzles/help/flip.c49
-rw-r--r--apps/plugins/puzzles/help/flood.c66
-rw-r--r--apps/plugins/puzzles/help/galaxies.c66
-rw-r--r--apps/plugins/puzzles/help/guess.c92
-rw-r--r--apps/plugins/puzzles/help/inertia.c61
-rw-r--r--apps/plugins/puzzles/help/keen.c108
-rw-r--r--apps/plugins/puzzles/help/lightup.c82
-rw-r--r--apps/plugins/puzzles/help/loopy.c69
-rw-r--r--apps/plugins/puzzles/help/magnets.c76
-rw-r--r--apps/plugins/puzzles/help/map.c90
-rw-r--r--apps/plugins/puzzles/help/mines.c98
-rw-r--r--apps/plugins/puzzles/help/net.c108
-rw-r--r--apps/plugins/puzzles/help/netslide.c20
-rw-r--r--apps/plugins/puzzles/help/palisade.c43
-rw-r--r--apps/plugins/puzzles/help/pattern.c56
-rw-r--r--apps/plugins/puzzles/help/pearl.c70
-rw-r--r--apps/plugins/puzzles/help/pegs.c52
-rw-r--r--apps/plugins/puzzles/help/range.c62
-rw-r--r--apps/plugins/puzzles/help/rect.c93
-rw-r--r--apps/plugins/puzzles/help/samegame.c76
-rw-r--r--apps/plugins/puzzles/help/signpost.c80
-rw-r--r--apps/plugins/puzzles/help/singles.c51
-rw-r--r--apps/plugins/puzzles/help/sixteen.c62
-rw-r--r--apps/plugins/puzzles/help/slant.c66
-rw-r--r--apps/plugins/puzzles/help/solo.c137
-rw-r--r--apps/plugins/puzzles/help/tents.c66
-rw-r--r--apps/plugins/puzzles/help/towers.c95
-rw-r--r--apps/plugins/puzzles/help/tracks.c59
-rw-r--r--apps/plugins/puzzles/help/twiddle.c75
-rw-r--r--apps/plugins/puzzles/help/undead.c88
-rw-r--r--apps/plugins/puzzles/help/unequal.c107
-rw-r--r--apps/plugins/puzzles/help/unruly.c55
-rw-r--r--apps/plugins/puzzles/help/untangle.c33
39 files changed, 2913 insertions, 0 deletions
diff --git a/apps/plugins/puzzles/help/blackbox.c b/apps/plugins/puzzles/help/blackbox.c
new file mode 100644
index 0000000000..359dd61220
--- /dev/null
+++ b/apps/plugins/puzzles/help/blackbox.c
@@ -0,0 +1,150 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 19: Black Box "
5"\n"
6"A number of balls are hidden in a rectangular arena. You have to "
7"deduce the positions of the balls by firing lasers positioned at the "
8"edges of the arena and observing how their beams are deflected. "
9"\n"
10"Beams will travel straight from their origin until they hit the "
11"opposite side of the arena (at which point they emerge), unless "
12"affected by balls in one of the following ways: "
13"\n"
14"- A beam that hits a ball head-on is absorbed and will never re-\n"
15"emerge. This includes beams that meet a ball on the first rank "
16"of the arena. "
17"\n"
18"- A beam with a ball in its front-left square and no ball ahead of "
19"it gets deflected 90 degrees to the right. "
20"\n"
21"- A beam with a ball in its front-right square and no ball ahead "
22"of it gets similarly deflected to the left. "
23"\n"
24"- A beam that would re-emerge from its entry location is "
25"considered to be `reflected'. "
26"\n"
27"- A beam which would get deflected before entering the arena by a "
28"ball to the front-left or front-right of its entry point is also "
29"considered to be `reflected'. "
30"\n"
31"Beams that are reflected appear as a `R'; beams that hit balls head-\n"
32"on appear as `H'. Otherwise, a number appears at the firing point "
33"and the location where the beam emerges (this number is unique to "
34"that shot). "
35"\n"
36"You can place guesses as to the location of the balls, based on the "
37"entry and exit patterns of the beams; once you have placed enough "
38"balls a button appears enabling you to have your guesses checked. "
39"\n"
40"Here is a diagram showing how the positions of balls can create each "
41"of the beam behaviours shown above: "
42"\n"
43"1RHR----\n"
44"|..O.O...|\n"
45"2........3\n"
46"|........|\n"
47"|........|\n"
48"3........|\n"
49"|......O.|\n"
50"H........|\n"
51"|.....O..|\n"
52"12-RR---\n"
53"\n"
54"As shown, it is possible for a beam to receive multiple reflections "
55"before re-emerging (see turn 3). Similarly, a beam may be reflected "
56"(possibly more than once) before receiving a hit (the `H' on the "
57"left side of the example). "
58"\n"
59"Note that any layout with more than 4 balls may have a non-unique "
60"solution. The following diagram illustrates this; if you know the "
61"board contains 5 balls, it is impossible to determine where the "
62"fifth ball is (possible positions marked with an x): "
63"\n"
64"--------\n"
65"|........|\n"
66"|........|\n"
67"|..O..O..|\n"
68"|...xx...|\n"
69"|...xx...|\n"
70"|..O..O..|\n"
71"|........|\n"
72"|........|\n"
73"--------\n"
74"\n"
75"For this reason, when you have your guesses checked, the game "
76"will check that your solution _produces the same results_ as the "
77"computer's, rather than that your solution is identical to the "
78"computer's. So in the above example, you could put the fifth ball at "
79"_any_ of the locations marked with an x, and you would still win. "
80"\n"
81"Black Box was contributed to this collection by James Harvey. "
82"\n"
83"\n#19.1 Black Box controls "
84"\n"
85"To fire a laser beam, left-click in a square around the edge of "
86"the arena. The results will be displayed immediately. Clicking or "
87"holding the left button on one of these squares will highlight the "
88"current go (or a previous go) to confirm the exit point for that "
89"laser, if applicable. "
90"\n"
91"To guess the location of a ball, left-click within the arena and a "
92"black circle will appear marking the guess; click again to remove "
93"the guessed ball. "
94"\n"
95"Locations in the arena may be locked against modification by right-\n"
96"clicking; whole rows and columns may be similarly locked by right-\n"
97"clicking in the laser square above/below that column, or to the "
98"left/right of that row. "
99"\n"
100"The cursor keys may also be used to move around the grid. Pressing "
101"the Enter key will fire a laser or add a new ball-location guess, "
102"and pressing Space will lock a cell, row, or column. "
103"\n"
104"When an appropriate number of balls have been guessed, a button will "
105"appear at the top-left corner of the grid; clicking that (with mouse "
106"or cursor) will check your guesses. "
107"\n"
108"If you click the `check' button and your guesses are not correct, "
109"the game will show you the minimum information necessary to "
110"demonstrate this to you, so you can try again. If your ball "
111"positions are not consistent with the beam paths you already know "
112"about, one beam path will be circled to indicate that it proves you "
113"wrong. If your positions match all the existing beam paths but are "
114"still wrong, one new beam path will be revealed (written in red) "
115"which is not consistent with your current guesses. "
116"\n"
117"If you decide to give up completely, you can select Solve to reveal "
118"the actual ball positions. At this point, correctly-placed balls "
119"will be displayed as filled black circles, incorrectly-placed balls "
120"as filled black circles with red crosses, and missing balls as "
121"filled red circles. In addition, a red circle marks any laser you "
122"had already fired which is not consistent with your ball layout "
123"(just as when you press the `check' button), and red text marks "
124"any laser you _could_ have fired in order to distinguish your ball "
125"layout from the correct one. "
126"\n"
127"(All the actions described in section 2.1 are also available.) "
128"\n"
129"\n#19.2 Black Box parameters "
130"\n"
131"These parameters are available from the `Custom...' option on the "
132"`Type' menu. "
133"\n"
134"_Width_, _Height_ "
135"\n"
136"Size of grid in squares. There are 2 x _Width_ x _Height_ lasers "
137"per grid, two per row and two per column. "
138"\n"
139"_No. of balls_ "
140"\n"
141"Number of balls to place in the grid. This can be a single "
142"number, or a range (separated with a hyphen, like `2-6'), "
143"and determines the number of balls to place on the grid. "
144"The `reveal' button is only enabled if you have guessed an "
145"appropriate number of balls; a guess using a different number "
146"to the original solution is still acceptable, if all the beam "
147"inputs and outputs match. "
148"\n"
149;
150const char quick_help_text[] = "Find the hidden balls in the box by bouncing laser beams off them.";
diff --git a/apps/plugins/puzzles/help/bridges.c b/apps/plugins/puzzles/help/bridges.c
new file mode 100644
index 0000000000..6a7f301f1a
--- /dev/null
+++ b/apps/plugins/puzzles/help/bridges.c
@@ -0,0 +1,144 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 26: Bridges "
5"\n"
6"You have a set of islands distributed across the playing area. "
7"Each island contains a number. Your aim is to connect the islands "
8"together with bridges, in such a way that: "
9"\n"
10"- Bridges run horizontally or vertically. "
11"\n"
12"- The number of bridges terminating at any island is equal to the "
13"number written in that island. "
14"\n"
15"- Two bridges may run in parallel between the same two islands, "
16"but no more than two may do so. "
17"\n"
18"- No bridge crosses another bridge. "
19"\n"
20"- All the islands are connected together. "
21"\n"
22"There are some configurable alternative modes, which involve "
23"changing the parallel-bridge limit to something other than 2, and "
24"introducing the additional constraint that no sequence of bridges "
25"may form a loop from one island back to the same island. The rules "
26"stated above are the default ones. "
27"\n"
28"Credit for this puzzle goes to Nikoli [12]. "
29"\n"
30"Bridges was contributed to this collection by James Harvey. "
31"\n"
32"[12] http://www.nikoli.co.jp/en/puzzles/hashiwokakero.html (beware "
33"of Flash) "
34"\n"
35"\n#26.1 Bridges controls "
36"\n"
37"To place a bridge between two islands, click the mouse down on one "
38"island and drag it towards the other. You do not need to drag all "
39"the way to the other island; you only need to move the mouse far "
40"enough for the intended bridge direction to be unambiguous. (So you "
41"can keep the mouse near the starting island and conveniently throw "
42"bridges out from it in many directions.) "
43"\n"
44"Doing this again when a bridge is already present will add another "
45"parallel bridge. If there are already as many bridges between the "
46"two islands as permitted by the current game rules (i.e. two by "
47"default), the same dragging action will remove all of them. "
48"\n"
49"If you want to remind yourself that two islands definitely _do not_ "
50"have a bridge between them, you can right-drag between them in the "
51"same way to draw a `non-bridge' marker. "
52"\n"
53"If you think you have finished with an island (i.e. you have placed "
54"all its bridges and are confident that they are in the right "
55"places), you can mark the island as finished by left-clicking on it. "
56"This will highlight it and all the bridges connected to it, and you "
57"will be prevented from accidentally modifying any of those bridges "
58"in future. Left-clicking again on a highlighted island will unmark "
59"it and restore your ability to modify it. "
60"\n"
61"You can also use the cursor keys to move around the grid: if "
62"possible the cursor will always move orthogonally, otherwise it "
63"will move towards the nearest island to the indicated direction. "
64"Holding Control and pressing a cursor key will lay a bridge in that "
65"direction (if available); Shift and a cursor key will lay a `non-\n"
66"bridge' marker. Pressing the return key followed by a cursor key "
67"will also lay a bridge in that direction. "
68"\n"
69"You can mark an island as finished by pressing the space bar or by "
70"pressing the return key twice. "
71"\n"
72"By pressing a number key, you can jump to the nearest island with "
73"that number. Letters `a', ..., `f' count as 10, ..., 15 and `0' as "
74"16. "
75"\n"
76"Violations of the puzzle rules will be marked in red: "
77"\n"
78"- An island with too many bridges will be highlighted in red. "
79"\n"
80"- An island with too few bridges will be highlighted in red if it "
81"is definitely an error (as opposed to merely not being finished "
82"yet): if adding enough bridges would involve having to cross "
83"another bridge or remove a non-bridge marker, or if the island "
84"has been highlighted as complete. "
85"\n"
86"- A group of islands and bridges may be highlighted in red if it "
87"is a closed subset of the puzzle with no way to connect it to "
88"the rest of the islands. For example, if you directly connect "
89"two 1s together with a bridge and they are not the only two "
90"islands on the grid, they will light up red to indicate that "
91"such a group cannot be contained in any valid solution. "
92"\n"
93"- If you have selected the (non-default) option to disallow loops "
94"in the solution, a group of bridges which forms a loop will be "
95"highlighted. "
96"\n"
97"(All the actions described in section 2.1 are also available.) "
98"\n"
99"\n#26.2 Bridges parameters "
100"\n"
101"These parameters are available from the `Custom...' option on the "
102"`Type' menu. "
103"\n"
104"_Width_, _Height_ "
105"\n"
106"Size of grid in squares. "
107"\n"
108"_Difficulty_ "
109"\n"
110"Difficulty level of puzzle. "
111"\n"
112"_Allow loops_ "
113"\n"
114"This is set by default. If cleared, puzzles will be generated in "
115"such a way that they are always soluble without creating a loop, "
116"and solutions which do involve a loop will be disallowed. "
117"\n"
118"_Max. bridges per direction_ "
119"\n"
120"Maximum number of bridges in any particular direction. The "
121"default is 2, but you can change it to 1, 3 or 4. In general, "
122"fewer is easier. "
123"\n"
124"_%age of island squares_ "
125"\n"
126"Gives a rough percentage of islands the generator will try and "
127"lay before finishing the puzzle. Certain layouts will not manage "
128"to lay enough islands; this is an upper bound. "
129"\n"
130"_Expansion factor (%age)_ "
131"\n"
132"The grid generator works by picking an existing island at random "
133"(after first creating an initial island somewhere). It then "
134"decides on a direction (at random), and then works out how far "
135"it could extend before creating another island. This parameter "
136"determines how likely it is to extend as far as it can, rather "
137"than choosing somewhere closer. "
138"\n"
139"High expansion factors usually mean easier puzzles with fewer "
140"possible islands; low expansion factors can create lots of "
141"tightly-packed islands. "
142"\n"
143;
144const char quick_help_text[] = "Connect all the islands with a network of bridges.";
diff --git a/apps/plugins/puzzles/help/cube.c b/apps/plugins/puzzles/help/cube.c
new file mode 100644
index 0000000000..86ffbb681d
--- /dev/null
+++ b/apps/plugins/puzzles/help/cube.c
@@ -0,0 +1,58 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 4: Cube "
5"\n"
6"This is another one I originally saw as a web game. This one was a "
7"Java game [2], by Paul Scott. You have a grid of 16 squares, six of "
8"which are blue; on one square rests a cube. Your move is to use the "
9"arrow keys to roll the cube through 90 degrees so that it moves to "
10"an adjacent square. If you roll the cube on to a blue square, the "
11"blue square is picked up on one face of the cube; if you roll a blue "
12"face of the cube on to a non-blue square, the blueness is put down "
13"again. (In general, whenever you roll the cube, the two faces that "
14"come into contact swap colours.) Your job is to get all six blue "
15"squares on to the six faces of the cube at the same time. Count your "
16"moves and try to do it in as few as possible. "
17"\n"
18"Unlike the original Java game, my version has an additional feature: "
19"once you've mastered the game with a cube rolling on a square grid, "
20"you can change to a triangular grid and roll any of a tetrahedron, "
21"an octahedron or an icosahedron. "
22"\n"
23"[2] http://www3.sympatico.ca/paulscott/cube/cube.htm "
24"\n"
25"\n#4.1 Cube controls "
26"\n"
27"This game can be played with either the keyboard or the mouse. "
28"\n"
29"Left-clicking anywhere on the window will move the cube (or other "
30"solid) towards the mouse pointer. "
31"\n"
32"The arrow keys can also used to roll the cube on its square grid in "
33"the four cardinal directions. On the triangular grids, the mapping "
34"of arrow keys to directions is more approximate. Vertical movement "
35"is disallowed where it doesn't make sense. The four keys surrounding "
36"the arrow keys on the numeric keypad (`7', `9', `1', `3') can be "
37"used for diagonal movement. "
38"\n"
39"(All the actions described in section 2.1 are also available.) "
40"\n"
41"\n#4.2 Cube parameters "
42"\n"
43"These parameters are available from the `Custom...' option on the "
44"`Type' menu. "
45"\n"
46"_Type of solid_ "
47"\n"
48"Selects the solid to roll (and hence the shape of the grid): "
49"tetrahedron, cube, octahedron, or icosahedron. "
50"\n"
51"_Width / top_, _Height / bottom_ "
52"\n"
53"On a square grid, horizontal and vertical dimensions. On a "
54"triangular grid, the number of triangles on the top and bottom "
55"rows respectively. "
56"\n"
57;
58const char quick_help_text[] = "Pick up all the blue squares by rolling the cube over them.";
diff --git a/apps/plugins/puzzles/help/dominosa.c b/apps/plugins/puzzles/help/dominosa.c
new file mode 100644
index 0000000000..e9387250ba
--- /dev/null
+++ b/apps/plugins/puzzles/help/dominosa.c
@@ -0,0 +1,62 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 17: Dominosa "
5"\n"
6"A normal set of dominoes - that is, one instance of every "
7"(unordered) pair of numbers from 0 to 6 - has been arranged "
8"irregularly into a rectangle; then the number in each square has "
9"been written down and the dominoes themselves removed. Your task is "
10"to reconstruct the pattern by arranging the set of dominoes to match "
11"the provided array of numbers. "
12"\n"
13"This puzzle is widely credited to O. S. Adler, and takes part of its "
14"name from those initials. "
15"\n"
16"\n#17.1 Dominosa controls "
17"\n"
18"Left-clicking between any two adjacent numbers places a domino "
19"covering them, or removes one if it is already present. Trying to "
20"place a domino which overlaps existing dominoes will remove the ones "
21"it overlaps. "
22"\n"
23"Right-clicking between two adjacent numbers draws a line between "
24"them, which you can use to remind yourself that you know those two "
25"numbers are _not_ covered by a single domino. Right-clicking again "
26"removes the line. "
27"\n"
28"You can also use the cursor keys to move a cursor around the grid. "
29"When the cursor is half way between two adjacent numbers, pressing "
30"the return key will place a domino covering those numbers, or "
31"pressing the space bar will lay a line between the two squares. "
32"Repeating either action removes the domino or line. "
33"\n"
34"Pressing a number key will highlight all occurrences of that number. "
35"Pressing that number again will clear the highlighting. Up to two "
36"different numbers can be highlighted at any given time. "
37"\n"
38"(All the actions described in section 2.1 are also available.) "
39"\n"
40"\n#17.2 Dominosa parameters "
41"\n"
42"These parameters are available from the `Custom...' option on the "
43"`Type' menu. "
44"\n"
45"_Maximum number on dominoes_ "
46"\n"
47"Controls the size of the puzzle, by controlling the size of the "
48"set of dominoes used to make it. Dominoes with numbers going "
49"up to N will give rise to an (N+2) x (N+1) rectangle; so, in "
50"particular, the default value of 6 gives an 8x7 grid. "
51"\n"
52"_Ensure unique solution_ "
53"\n"
54"Normally, Dominosa will make sure that the puzzles it presents "
55"have only one solution. Puzzles with ambiguous sections can be "
56"more difficult and sometimes more subtle, so if you like you "
57"can turn off this feature. Also, finding _all_ the possible "
58"solutions can be an additional challenge for an advanced player. "
59"Turning off this option can also speed up puzzle generation. "
60"\n"
61;
62const char quick_help_text[] = "Tile the rectangle with a full set of dominoes.";
diff --git a/apps/plugins/puzzles/help/fifteen.c b/apps/plugins/puzzles/help/fifteen.c
new file mode 100644
index 0000000000..dfe7ed11da
--- /dev/null
+++ b/apps/plugins/puzzles/help/fifteen.c
@@ -0,0 +1,38 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 5: Fifteen "
5"\n"
6"The old ones are the best: this is the good old `15-puzzle' with "
7"sliding tiles. You have a 4x4 square grid; 15 squares contain "
8"numbered tiles, and the sixteenth is empty. Your move is to choose a "
9"tile next to the empty space, and slide it into the space. The aim "
10"is to end up with the tiles in numerical order, with the space in "
11"the bottom right (so that the top row reads 1,2,3,4 and the bottom "
12"row reads 13,14,15,_space_). "
13"\n"
14"\n#5.1 Fifteen controls "
15"\n"
16"This game can be controlled with the mouse or the keyboard. "
17"\n"
18"A left-click with the mouse in the row or column containing the "
19"empty space will move as many tiles as necessary to move the space "
20"to the mouse pointer. "
21"\n"
22"The arrow keys will move a tile adjacent to the space in the "
23"direction indicated (moving the space in the _opposite_ direction). "
24"\n"
25"Pressing `h' will make a suggested move. Pressing `h' enough times "
26"will solve the game, but it may scramble your progress while doing "
27"so. "
28"\n"
29"(All the actions described in section 2.1 are also available.) "
30"\n"
31"\n#5.2 Fifteen parameters "
32"\n"
33"The only options available from the `Custom...' option on the `Type' "
34"menu are _Width_ and _Height_, which are self-explanatory. (Once "
35"you've changed these, it's not a `15-puzzle' any more, of course!) "
36"\n"
37;
38const char quick_help_text[] = "Slide the tiles around to arrange them into order.";
diff --git a/apps/plugins/puzzles/help/filling.c b/apps/plugins/puzzles/help/filling.c
new file mode 100644
index 0000000000..16dfbbd6fc
--- /dev/null
+++ b/apps/plugins/puzzles/help/filling.c
@@ -0,0 +1,50 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 29: Filling "
5"\n"
6"You have a grid of squares, some of which contain digits, and the "
7"rest of which are empty. Your job is to fill in digits in the empty "
8"squares, in such a way that each connected region of squares all "
9"containing the same digit has an area equal to that digit. "
10"\n"
11"(`Connected region', for the purposes of this game, does not count "
12"diagonally separated squares as adjacent.) "
13"\n"
14"For example, it follows that no square can contain a zero, and that "
15"two adjacent squares can not both contain a one. No region has an "
16"area greater than 9 (because then its area would not be a single "
17"digit). "
18"\n"
19"Credit for this puzzle goes to Nikoli [14]. "
20"\n"
21"Filling was contributed to this collection by Jonas Koelker. "
22"\n"
23"[14] http://www.nikoli.co.jp/en/puzzles/fillomino.html "
24"\n"
25"\n#29.1 Filling controls "
26"\n"
27"To play Filling, simply click the mouse in any empty square and "
28"then type a digit on the keyboard to fill that square. By dragging "
29"the mouse, you can select multiple squares to fill with a single "
30"keypress. If you make a mistake, click the mouse in the incorrect "
31"square and press 0, Space, Backspace or Enter to clear it again (or "
32"use the Undo feature). "
33"\n"
34"You can also move around the grid with the cursor keys; typing a "
35"digit will fill the square containing the cursor with that number; "
36"typing 0 will clear it. You can also select multiple squares for "
37"numbering or clearing with the return and arrow keys, before typing "
38"a digit to fill or clear the highlighted squares (as above). The "
39"space bar adds and removes single squares to and from the selection. "
40"Backspace and escape remove all squares from the selection. "
41"\n"
42"(All the actions described in section 2.1 are also available.) "
43"\n"
44"\n#29.2 Filling parameters "
45"\n"
46"Filling allows you to configure the number of rows and columns of "
47"the grid, through the `Type' menu. "
48"\n"
49;
50const char quick_help_text[] = "Mark every square with the area of its containing region.";
diff --git a/apps/plugins/puzzles/help/flip.c b/apps/plugins/puzzles/help/flip.c
new file mode 100644
index 0000000000..5a207b612b
--- /dev/null
+++ b/apps/plugins/puzzles/help/flip.c
@@ -0,0 +1,49 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 14: Flip "
5"\n"
6"You have a grid of squares, some light and some dark. Your aim is to "
7"light all the squares up at the same time. You can choose any square "
8"and flip its state from light to dark or dark to light, but when you "
9"do so, other squares around it change state as well. "
10"\n"
11"Each square contains a small diagram showing which other squares "
12"change when you flip it. "
13"\n"
14"\n#14.1 Flip controls "
15"\n"
16"This game can be played with either the keyboard or the mouse. "
17"\n"
18"Left-click in a square to flip it and its associated squares, or use "
19"the cursor keys to choose a square and the space bar or Enter key to "
20"flip. "
21"\n"
22"If you use the `Solve' function on this game, it will mark some of "
23"the squares in red. If you click once in every square with a red "
24"mark, the game should be solved. (If you click in a square _without_ "
25"a red mark, a red mark will appear in it to indicate that you will "
26"need to reverse that operation to reach the solution.) "
27"\n"
28"(All the actions described in section 2.1 are also available.) "
29"\n"
30"\n#14.2 Flip parameters "
31"\n"
32"These parameters are available from the `Custom...' option on the "
33"`Type' menu. "
34"\n"
35"_Width_, _Height_ "
36"\n"
37"Size of grid in squares. "
38"\n"
39"_Shape type_ "
40"\n"
41"This control determines the shape of the region which is flipped "
42"by clicking in any given square. The default setting, `Crosses', "
43"causes every square to flip itself and its four immediate "
44"neighbours (or three or two if it's at an edge or corner). The "
45"other setting, `Random', causes a random shape to be chosen for "
46"every square, so the game is different every time. "
47"\n"
48;
49const char quick_help_text[] = "Flip groups of squares to light them all up at once.";
diff --git a/apps/plugins/puzzles/help/flood.c b/apps/plugins/puzzles/help/flood.c
new file mode 100644
index 0000000000..7f010ee232
--- /dev/null
+++ b/apps/plugins/puzzles/help/flood.c
@@ -0,0 +1,66 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 39: Flood "
5"\n"
6"You are given a grid of squares, coloured at random in multiple "
7"colours. In each move, you can flood-fill the top left square in a "
8"colour of your choice (i.e. every square reachable from the starting "
9"square by an orthogonally connected path of squares all the same "
10"colour will be filled in the new colour). As you do this, more and "
11"more of the grid becomes connected to the starting square. "
12"\n"
13"Your aim is to make the whole grid the same colour, in as few moves "
14"as possible. The game will set a limit on the number of moves, based "
15"on running its own internal solver. You win if you can make the "
16"whole grid the same colour in that many moves or fewer. "
17"\n"
18"I saw this game (with a fixed grid size, fixed number of colours, "
19"and fixed move limit) at http://floodit.appspot.com (no longer "
20"accessible). "
21"\n"
22"\n#39.1 Flood controls "
23"\n"
24"To play Flood, click the mouse in a square. The top left corner and "
25"everything connected to it will be flood-filled with the colour of "
26"the square you clicked. Clicking a square the same colour as the top "
27"left corner has no effect, and therefore does not count as a move. "
28"\n"
29"You can also use the cursor keys to move a cursor (outline black "
30"square) around the grid. Pressing the return key will fill the top "
31"left corner in the colour of the square under the cursor. "
32"\n"
33"(All the actions described in section 2.1 are also available.) "
34"\n"
35"\n#39.2 Flood parameters "
36"\n"
37"These parameters are available from the `Custom...' option on the "
38"`Type' menu. "
39"\n"
40"_Width_, _Height_ "
41"\n"
42"Size of the grid, in squares. "
43"\n"
44"_Colours_ "
45"\n"
46"Number of colours used to fill the grid. Must be at least 3\n"
47"(with two colours there would only be one legal move at any "
48"stage, hence no choice to make at all), and at most 10. "
49"\n"
50"_Extra moves permitted_ "
51"\n"
52"Controls the difficulty of the puzzle, by increasing the move "
53"limit. In each new grid, Flood will run an internal solver to "
54"generate its own solution, and then the value in this field "
55"will be added to the length of Flood's solution to generate the "
56"game's move limit. So a value of 0 requires you to be just as "
57"efficient as Flood's automated solver, and a larger value makes "
58"it easier. "
59"\n"
60"(Note that Flood's internal solver will not necessarily find the "
61"shortest possible solution, though I believe it's pretty close. "
62"For a real challenge, set this value to 0 and then try to solve "
63"a grid in _strictly fewer_ moves than the limit you're given!) "
64"\n"
65;
66const char quick_help_text[] = "Turn the grid the same colour in as few flood fills as possible.";
diff --git a/apps/plugins/puzzles/help/galaxies.c b/apps/plugins/puzzles/help/galaxies.c
new file mode 100644
index 0000000000..6e455bc0f9
--- /dev/null
+++ b/apps/plugins/puzzles/help/galaxies.c
@@ -0,0 +1,66 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 28: Galaxies "
5"\n"
6"You have a rectangular grid containing a number of dots. Your aim is "
7"to draw edges along the grid lines which divide the rectangle into "
8"regions in such a way that every region is 180-degree rotationally "
9"symmetric, and contains exactly one dot which is located at its "
10"centre of symmetry. "
11"\n"
12"This puzzle was invented by Nikoli [13], under the name `Tentai "
13"Show'; its name is commonly translated into English as `Spiral "
14"Galaxies'. "
15"\n"
16"Galaxies was contributed to this collection by James Harvey. "
17"\n"
18"[13] http://www.nikoli.co.jp/en/puzzles/astronomical_show.html "
19"\n"
20"\n#28.1 Galaxies controls "
21"\n"
22"Left-click on any grid line to draw an edge if there isn't one "
23"already, or to remove one if there is. When you create a valid "
24"region (one which is closed, contains exactly one dot, is 180-degree "
25"symmetric about that dot, and contains no extraneous edges inside "
26"it) it will be highlighted automatically; so your aim is to have the "
27"whole grid highlighted in that way. "
28"\n"
29"During solving, you might know that a particular grid square belongs "
30"to a specific dot, but not be sure of where the edges go and which "
31"other squares are connected to the dot. In order to mark this so you "
32"don't forget, you can right-click on the dot and drag, which will "
33"create an arrow marker pointing at the dot. Drop that in a square of "
34"your choice and it will remind you which dot it's associated with. "
35"You can also right-click on existing arrows to pick them up and move "
36"them, or destroy them by dropping them off the edge of the grid. "
37"(Also, if you're not sure which dot an arrow is pointing at, you can "
38"pick it up and move it around to make it clearer. It will swivel "
39"constantly as you drag it, to stay pointed at its parent dot.) "
40"\n"
41"You can also use the cursor keys to move around the grid squares and "
42"lines. Pressing the return key when over a grid line will draw or "
43"clear its edge, as above. Pressing the return key when over a dot "
44"will pick up an arrow, to be dropped the next time the return key "
45"is pressed; this can also be used to move existing arrows around, "
46"removing them by dropping them on a dot or another arrow. "
47"\n"
48"(All the actions described in section 2.1 are also available.) "
49"\n"
50"\n#28.2 Galaxies parameters "
51"\n"
52"These parameters are available from the `Custom...' option on the "
53"`Type' menu. "
54"\n"
55"_Width_, _Height_ "
56"\n"
57"Size of grid in squares. "
58"\n"
59"_Difficulty_ "
60"\n"
61"Controls the difficulty of the generated puzzle. More difficult "
62"puzzles require more complex deductions, and the `Unreasonable' "
63"difficulty level may require backtracking. "
64"\n"
65;
66const char quick_help_text[] = "Divide the grid into rotationally symmetric regions each centred on a dot.";
diff --git a/apps/plugins/puzzles/help/guess.c b/apps/plugins/puzzles/help/guess.c
new file mode 100644
index 0000000000..2d1be2d977
--- /dev/null
+++ b/apps/plugins/puzzles/help/guess.c
@@ -0,0 +1,92 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 15: Guess "
5"\n"
6"You have a set of coloured pegs, and have to reproduce a "
7"predetermined sequence of them (chosen by the computer) within a "
8"certain number of guesses. "
9"\n"
10"Each guess gets marked with the number of correctly-coloured pegs "
11"in the correct places (in black), and also the number of correctly-\n"
12"coloured pegs in the wrong places (in white). "
13"\n"
14"This game is also known (and marketed, by Hasbro, mainly) as a board "
15"game `Mastermind', with 6 colours, 4 pegs per row, and 10 guesses. "
16"However, this version allows custom settings of number of colours "
17"(up to 10), number of pegs per row, and number of guesses. "
18"\n"
19"Guess was contributed to this collection by James Harvey. "
20"\n"
21"\n#15.1 Guess controls "
22"\n"
23"This game can be played with either the keyboard or the mouse. "
24"\n"
25"With the mouse, drag a coloured peg from the tray on the left-hand "
26"side to its required position in the current guess; pegs may also "
27"be dragged from current and past guesses to copy them elsewhere. To "
28"remove a peg, drag it off its current position to somewhere invalid. "
29"\n"
30"Right-clicking in the current guess adds a `hold' marker; pegs that "
31"have hold markers will be automatically added to the next guess "
32"after marking. "
33"\n"
34"Alternatively, with the keyboard, the up and down cursor keys can "
35"be used to select a peg colour, the left and right keys to select a "
36"peg position, and the space bar or Enter key to place a peg of the "
37"selected colour in the chosen position. `D' or Backspace removes a "
38"peg, and Space adds a hold marker. "
39"\n"
40"Pressing `h' or `?' will fill the current guess with a suggested "
41"guess. Using this is not recommended for 10 or more pegs as it is "
42"slow. "
43"\n"
44"When the guess is complete, the smaller feedback pegs will be "
45"highlighted; clicking on these (or moving the peg cursor to them "
46"with the arrow keys and pressing the space bar or Enter key) will "
47"mark the current guess, copy any held pegs to the next guess, and "
48"move the `current guess' marker. "
49"\n"
50"If you correctly position all the pegs the solution will be "
51"displayed below; if you run out of guesses (or select `Solve...') "
52"the solution will also be revealed. "
53"\n"
54"(All the actions described in section 2.1 are also available.) "
55"\n"
56"\n#15.2 Guess parameters "
57"\n"
58"These parameters are available from the `Custom...' option on the "
59"`Type' menu. The default game matches the parameters for the board "
60"game `Mastermind'. "
61"\n"
62"_Colours_ "
63"\n"
64"Number of colours the solution is chosen from; from 2 to 10 "
65"(more is harder). "
66"\n"
67"_Pegs per guess_ "
68"\n"
69"Number of pegs per guess (more is harder). "
70"\n"
71"_Guesses_ "
72"\n"
73"Number of guesses you have to find the solution in (fewer is "
74"harder). "
75"\n"
76"_Allow blanks_ "
77"\n"
78"Allows blank pegs to be given as part of a guess (makes it "
79"easier, because you know that those will never be counted as "
80"part of the solution). This is turned off by default. "
81"\n"
82"Note that this doesn't allow blank pegs in the solution; if you "
83"really wanted that, use one extra colour. "
84"\n"
85"_Allow duplicates_ "
86"\n"
87"Allows the solution (and the guesses) to contain colours more "
88"than once; this increases the search space (making things "
89"harder), and is turned on by default. "
90"\n"
91;
92const char quick_help_text[] = "Guess the hidden combination of colours.";
diff --git a/apps/plugins/puzzles/help/inertia.c b/apps/plugins/puzzles/help/inertia.c
new file mode 100644
index 0000000000..46c4b43cba
--- /dev/null
+++ b/apps/plugins/puzzles/help/inertia.c
@@ -0,0 +1,61 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 24: Inertia "
5"\n"
6"You are a small green ball sitting in a grid full of obstacles. Your "
7"aim is to collect all the gems without running into any mines. "
8"\n"
9"You can move the ball in any orthogonal _or diagonal_ direction. "
10"Once the ball starts moving, it will continue until something stops "
11"it. A wall directly in its path will stop it (but if it is moving "
12"diagonally, it will move through a diagonal gap between two other "
13"walls without stopping). Also, some of the squares are `stops'; when "
14"the ball moves on to a stop, it will stop moving no matter what "
15"direction it was going in. Gems do _not_ stop the ball; it picks "
16"them up and keeps on going. "
17"\n"
18"Running into a mine is fatal. Even if you picked up the last gem in "
19"the same move which then hit a mine, the game will count you as dead "
20"rather than victorious. "
21"\n"
22"This game was originally implemented for Windows by Ben Olmstead "
23"[11], who was kind enough to release his source code on request so "
24"that it could be re-implemented for this collection. "
25"\n"
26"[11] http://xn13.com/ "
27"\n"
28"\n#24.1 Inertia controls "
29"\n"
30"You can move the ball in any of the eight directions using the "
31"numeric keypad. Alternatively, if you click the left mouse button "
32"on the grid, the ball will begin a move in the general direction of "
33"where you clicked. "
34"\n"
35"If you use the `Solve' function on this game, the program will "
36"compute a path through the grid which collects all the remaining "
37"gems and returns to the current position. A hint arrow will appear "
38"on the ball indicating the direction in which you should move to "
39"begin on this path. If you then move in that direction, the arrow "
40"will update to indicate the next direction on the path. You can "
41"also press Space to automatically move in the direction of the hint "
42"arrow. If you move in a different direction from the one shown "
43"by the arrow, arrows will be shown only if the puzzle is still "
44"solvable. "
45"\n"
46"All the actions described in section 2.1 are also available. In "
47"particular, if you do run into a mine and die, you can use the Undo "
48"function and resume playing from before the fatal move. The game "
49"will keep track of the number of times you have done this. "
50"\n"
51"\n#24.2 Inertia parameters "
52"\n"
53"These parameters are available from the `Custom...' option on the "
54"`Type' menu. "
55"\n"
56"_Width_, _Height_ "
57"\n"
58"Size of grid in squares. "
59"\n"
60;
61const char quick_help_text[] = "Collect all the gems without running into any of the mines.";
diff --git a/apps/plugins/puzzles/help/keen.c b/apps/plugins/puzzles/help/keen.c
new file mode 100644
index 0000000000..5532b2fb12
--- /dev/null
+++ b/apps/plugins/puzzles/help/keen.c
@@ -0,0 +1,108 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 30: Keen "
5"\n"
6"You have a square grid; each square may contain a digit from 1 to "
7"the size of the grid. The grid is divided into blocks of varying "
8"shape and size, with arithmetic clues written in them. Your aim is "
9"to fully populate the grid with digits such that: "
10"\n"
11"- Each row contains only one occurrence of each digit "
12"\n"
13"- Each column contains only one occurrence of each digit "
14"\n"
15"- The digits in each block can be combined to form the number "
16"stated in the clue, using the arithmetic operation given in the "
17"clue. That is: "
18"\n"
19"- An addition clue means that the sum of the digits in the "
20"block must be the given number. For example, `15+' means the "
21"contents of the block adds up to fifteen. "
22"\n"
23"- A multiplication clue (e.g. `60*'), similarly, means that "
24"the product of the digits in the block must be the given "
25"number. "
26"\n"
27"- A subtraction clue will always be written in a block of "
28"size two, and it means that one of the digits in the block "
29"is greater than the other by the given amount. For example, "
30"`2-' means that one of the digits in the block is 2 more "
31"than the other, or equivalently that one digit minus the "
32"other one is 2. The two digits could be either way round, "
33"though. "
34"\n"
35"- A division clue (e.g. `3/'), similarly, is always in a block "
36"of size two and means that one digit divided by the other is "
37"equal to the given amount. "
38"\n"
39"Note that a block may contain the same digit more than once "
40"(provided the identical ones are not in the same row and "
41"column). This rule is precisely the opposite of the rule in "
42"Solo's `Killer' mode (see chapter 11). "
43"\n"
44"This puzzle appears in the Times under the name `KenKen'. "
45"\n"
46"\n#30.1 Keen controls "
47"\n"
48"Keen shares much of its control system with Solo (and Unequal). "
49"\n"
50"To play Keen, simply click the mouse in any empty square and then "
51"type a digit on the keyboard to fill that square. If you make a "
52"mistake, click the mouse in the incorrect square and press Space to "
53"clear it again (or use the Undo feature). "
54"\n"
55"If you _right_-click in a square and then type a number, that "
56"number will be entered in the square as a `pencil mark'. You can "
57"have pencil marks for multiple numbers in the same square. Squares "
58"containing filled-in numbers cannot also contain pencil marks. "
59"\n"
60"The game pays no attention to pencil marks, so exactly what you "
61"use them for is up to you: you can use them as reminders that a "
62"particular square needs to be re-examined once you know more about "
63"a particular number, or you can use them as lists of the possible "
64"numbers in a given square, or anything else you feel like. "
65"\n"
66"To erase a single pencil mark, right-click in the square and type "
67"the same number again. "
68"\n"
69"All pencil marks in a square are erased when you left-click and type "
70"a number, or when you left-click and press space. Right-clicking and "
71"pressing space will also erase pencil marks. "
72"\n"
73"As for Solo, the cursor keys can be used in conjunction with the "
74"digit keys to set numbers or pencil marks. Use the cursor keys to "
75"move a highlight around the grid, and type a digit to enter it in "
76"the highlighted square. Pressing return toggles the highlight into a "
77"mode in which you can enter or remove pencil marks. "
78"\n"
79"Pressing M will fill in a full set of pencil marks in every square "
80"that does not have a main digit in it. "
81"\n"
82"(All the actions described in section 2.1 are also available.) "
83"\n"
84"\n#30.2 Keen parameters "
85"\n"
86"These parameters are available from the `Custom...' option on the "
87"`Type' menu. "
88"\n"
89"_Grid size_ "
90"\n"
91"Specifies the size of the grid. Lower limit is 3; upper limit is "
92"9 (because the user interface would become more difficult with "
93"`digits' bigger than 9!). "
94"\n"
95"_Difficulty_ "
96"\n"
97"Controls the difficulty of the generated puzzle. At Unreasonable "
98"level, some backtracking will be required, but the solution "
99"should still be unique. The remaining levels require "
100"increasingly complex reasoning to avoid having to backtrack. "
101"\n"
102"_Multiplication only_ "
103"\n"
104"If this is enabled, all boxes will be multiplication boxes. With "
105"this rule, the puzzle is known as `Inshi No Heya'. "
106"\n"
107;
108const char quick_help_text[] = "Complete the latin square in accordance with the arithmetic clues.";
diff --git a/apps/plugins/puzzles/help/lightup.c b/apps/plugins/puzzles/help/lightup.c
new file mode 100644
index 0000000000..a75a88997a
--- /dev/null
+++ b/apps/plugins/puzzles/help/lightup.c
@@ -0,0 +1,82 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 21: Light Up "
5"\n"
6"You have a grid of squares. Some are filled in black; some of the "
7"black squares are numbered. Your aim is to `light up' all the empty "
8"squares by placing light bulbs in some of them. "
9"\n"
10"Each light bulb illuminates the square it is on, plus all squares "
11"in line with it horizontally or vertically unless a black square is "
12"blocking the way. "
13"\n"
14"To win the game, you must satisfy the following conditions: "
15"\n"
16"- All non-black squares are lit. "
17"\n"
18"- No light is lit by another light. "
19"\n"
20"- All numbered black squares have exactly that number of lights "
21"adjacent to them (in the four squares above, below, and to the "
22"side). "
23"\n"
24"Non-numbered black squares may have any number of lights adjacent to "
25"them. "
26"\n"
27"Credit for this puzzle goes to Nikoli [9]. "
28"\n"
29"Light Up was contributed to this collection by James Harvey. "
30"\n"
31"[9] http://www.nikoli.co.jp/en/puzzles/akari.html (beware of Flash) "
32"\n"
33"\n#21.1 Light Up controls "
34"\n"
35"Left-clicking in a non-black square will toggle the presence of a "
36"light in that square. Right-clicking in a non-black square toggles a "
37"mark there to aid solving; it can be used to highlight squares that "
38"cannot be lit, for example. "
39"\n"
40"You may not place a light in a marked square, nor place a mark in a "
41"lit square. "
42"\n"
43"The game will highlight obvious errors in red. Lights lit by other "
44"lights are highlighted in this way, as are numbered squares which do "
45"not (or cannot) have the right number of lights next to them. "
46"\n"
47"Thus, the grid is solved when all non-black squares have yellow "
48"highlights and there are no red lights. "
49"\n"
50"(All the actions described in section 2.1 are also available.) "
51"\n"
52"\n#21.2 Light Up parameters "
53"\n"
54"These parameters are available from the `Custom...' option on the "
55"`Type' menu. "
56"\n"
57"_Width_, _Height_ "
58"\n"
59"Size of grid in squares. "
60"\n"
61"_%age of black squares_ "
62"\n"
63"Rough percentage of black squares in the grid. "
64"\n"
65"This is a hint rather than an instruction. If the grid generator "
66"is unable to generate a puzzle to this precise specification, it "
67"will increase the proportion of black squares until it can. "
68"\n"
69"_Symmetry_ "
70"\n"
71"Allows you to specify the required symmetry of the black squares "
72"in the grid. (This does not affect the difficulty of the puzzles "
73"noticeably.) "
74"\n"
75"_Difficulty_ "
76"\n"
77"`Easy' means that the puzzles should be soluble without "
78"backtracking or guessing, `Hard' means that some guesses will "
79"probably be necessary. "
80"\n"
81;
82const char quick_help_text[] = "Place bulbs to light up all the squares.";
diff --git a/apps/plugins/puzzles/help/loopy.c b/apps/plugins/puzzles/help/loopy.c
new file mode 100644
index 0000000000..3933234315
--- /dev/null
+++ b/apps/plugins/puzzles/help/loopy.c
@@ -0,0 +1,69 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 23: Loopy "
5"\n"
6"You are given a grid of dots, marked with yellow lines to indicate "
7"which dots you are allowed to connect directly together. Your aim is "
8"to use some subset of those yellow lines to draw a single unbroken "
9"loop from dot to dot within the grid. "
10"\n"
11"Some of the spaces between the lines contain numbers. These numbers "
12"indicate how many of the lines around that space form part of the "
13"loop. The loop you draw must correctly satisfy all of these clues to "
14"be considered a correct solution. "
15"\n"
16"In the default mode, the dots are arranged in a grid of squares; "
17"however, you can also play on triangular or hexagonal grids, or even "
18"more exotic ones. "
19"\n"
20"Credit for the basic puzzle idea goes to Nikoli [10]. "
21"\n"
22"Loopy was originally contributed to this collection by Mike Pinna, "
23"and subsequently enhanced to handle various types of non-square grid "
24"by Lambros Lambrou. "
25"\n"
26"[10] http://www.nikoli.co.jp/en/puzzles/slitherlink.html (beware of "
27"Flash) "
28"\n"
29"\n#23.1 Loopy controls "
30"\n"
31"Click the left mouse button on a yellow line to turn it black, "
32"indicating that you think it is part of the loop. Click again to "
33"turn the line yellow again (meaning you aren't sure yet). "
34"\n"
35"If you are sure that a particular line segment is _not_ part of the "
36"loop, you can click the right mouse button to remove it completely. "
37"Again, clicking a second time will turn the line back to yellow. "
38"\n"
39"(All the actions described in section 2.1 are also available.) "
40"\n"
41"\n#23.2 Loopy parameters "
42"\n"
43"These parameters are available from the `Custom...' option on the "
44"`Type' menu. "
45"\n"
46"_Width_, _Height_ "
47"\n"
48"Size of grid, measured in number of regions across and down. For "
49"square grids, it's clear how this is counted; for other types of "
50"grid you may have to think a bit to see how the dimensions are "
51"measured. "
52"\n"
53"_Grid type_ "
54"\n"
55"Allows you to choose between a selection of types of tiling. "
56"Some have all the faces the same but may have multiple different "
57"types of vertex (e.g. the _Cairo_ or _Kites_ mode); others "
58"have all the vertices the same but may have different types of "
59"face (e.g. the _Great Hexagonal_). The square, triangular and "
60"honeycomb grids are fully regular, and have all their vertices "
61"_and_ faces the same; this makes them the least confusing to "
62"play. "
63"\n"
64"_Difficulty_ "
65"\n"
66"Controls the difficulty of the generated puzzle. "
67"\n"
68;
69const char quick_help_text[] = "Draw a single closed loop, given clues about number of adjacent edges.";
diff --git a/apps/plugins/puzzles/help/magnets.c b/apps/plugins/puzzles/help/magnets.c
new file mode 100644
index 0000000000..1dae190a6f
--- /dev/null
+++ b/apps/plugins/puzzles/help/magnets.c
@@ -0,0 +1,76 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 33: Magnets "
5"\n"
6"A rectangular grid has been filled with a mixture of magnets (that "
7"is, dominoes with one positive end and one negative end) and blank "
8"dominoes (that is, dominoes with two neutral poles). These dominoes "
9"are initially only seen in silhouette. Around the grid are placed a "
10"number of clues indicating the number of positive and negative poles "
11"contained in certain columns and rows. "
12"\n"
13"Your aim is to correctly place the magnets and blank dominoes such "
14"that all the clues are satisfied, with the additional constraint "
15"that no two similar magnetic poles may be orthogonally adjacent "
16"(since they repel). Neutral poles do not repel, and can be adjacent "
17"to any other pole. "
18"\n"
19"Credit for this puzzle goes to Janko [16]. "
20"\n"
21"Magnets was contributed to this collection by James Harvey. "
22"\n"
23"[16] http://www.janko.at/Raetsel/Magnete/index.htm "
24"\n"
25"\n#33.1 Magnets controls "
26"\n"
27"Left-clicking on an empty square places a magnet at that position "
28"with the positive pole on the square and the negative pole on the "
29"other half of the magnet; left-clicking again reverses the polarity, "
30"and a third click removes the magnet. "
31"\n"
32"Right-clicking on an empty square places a blank domino there. "
33"Right-clicking again places two question marks on the domino, "
34"signifying `this cannot be blank' (which can be useful to note "
35"deductions while solving), and right-clicking again empties the "
36"domino. "
37"\n"
38"Left-clicking a clue will mark it as done (grey it out), or unmark "
39"it if it is already marked. "
40"\n"
41"You can also use the cursor keys to move a cursor around the grid. "
42"Pressing the return key will lay a domino with a positive pole at "
43"that position; pressing again reverses the polarity and then removes "
44"the domino, as with left-clicking. Using the space bar allows "
45"placement of blank dominoes and cannot-be-blank hints, as for right-\n"
46"clicking. "
47"\n"
48"(All the actions described in section 2.1 are also available.) "
49"\n"
50"\n#33.2 Magnets parameters "
51"\n"
52"These parameters are available from the `Custom...' option on the "
53"`Type' menu. "
54"\n"
55"_Width_, _Height_ "
56"\n"
57"Size of grid in squares. There will be half _Width_ x _Height_ "
58"dominoes in the grid: if this number is odd then one square will "
59"be blank. "
60"\n"
61"(Grids with at least one odd dimension tend to be easier to "
62"solve.) "
63"\n"
64"_Difficulty_ "
65"\n"
66"Controls the difficulty of the generated puzzle. At Tricky "
67"level, you are required to make more deductions about empty "
68"dominoes and row/column counts. "
69"\n"
70"_Strip clues_ "
71"\n"
72"If true, some of the clues around the grid are removed at "
73"generation time, making the puzzle more difficult. "
74"\n"
75;
76const char quick_help_text[] = "Place magnets to satisfy the clues and avoid like poles touching.";
diff --git a/apps/plugins/puzzles/help/map.c b/apps/plugins/puzzles/help/map.c
new file mode 100644
index 0000000000..85a83c2320
--- /dev/null
+++ b/apps/plugins/puzzles/help/map.c
@@ -0,0 +1,90 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 22: Map "
5"\n"
6"You are given a map consisting of a number of regions. Your task is "
7"to colour each region with one of four colours, in such a way that "
8"no two regions sharing a boundary have the same colour. You are "
9"provided with some regions already coloured, sufficient to make the "
10"remainder of the solution unique. "
11"\n"
12"Only regions which share a length of border are required to be "
13"different colours. Two regions which meet at only one _point_ (i.e. "
14"are diagonally separated) may be the same colour. "
15"\n"
16"I believe this puzzle is original; I've never seen an implementation "
17"of it anywhere else. The concept of a four-colouring puzzle was "
18"suggested by Owen Dunn; credit must also go to Nikoli and to Verity "
19"Allan for inspiring the train of thought that led to me realising "
20"Owen's suggestion was a viable puzzle. Thanks also to Gareth Taylor "
21"for many detailed suggestions. "
22"\n"
23"\n#22.1 Map controls "
24"\n"
25"To colour a region, click the left mouse button on an existing "
26"region of the desired colour and drag that colour into the new "
27"region. "
28"\n"
29"(The program will always ensure the starting puzzle has at least one "
30"region of each colour, so that this is always possible!) "
31"\n"
32"If you need to clear a region, you can drag from an empty region, or "
33"from the puzzle boundary if there are no empty regions left. "
34"\n"
35"Dragging a colour using the _right_ mouse button will stipple the "
36"region in that colour, which you can use as a note to yourself that "
37"you think the region _might_ be that colour. A region can contain "
38"stipples in multiple colours at once. (This is often useful at the "
39"harder difficulty levels.) "
40"\n"
41"You can also use the cursor keys to move around the map: the colour "
42"of the cursor indicates the position of the colour you would drag "
43"(which is not obvious if you're on a region's boundary, since it "
44"depends on the direction from which you approached the boundary). "
45"Pressing the return key starts a drag of that colour, as above, "
46"which you control with the cursor keys; pressing the return key "
47"again finishes the drag. The space bar can be used similarly to "
48"create a stippled region. Double-pressing the return key (without "
49"moving the cursor) will clear the region, as a drag from an empty "
50"region does: this is useful with the cursor mode if you have filled "
51"the entire map in but need to correct the layout. "
52"\n"
53"If you press L during play, the game will toggle display of a number "
54"in each region of the map. This is useful if you want to discuss a "
55"particular puzzle instance with a friend - having an unambiguous "
56"name for each region is much easier than trying to refer to them all "
57"by names such as `the one down and right of the brown one on the top "
58"border'. "
59"\n"
60"(All the actions described in section 2.1 are also available.) "
61"\n"
62"\n#22.2 Map parameters "
63"\n"
64"These parameters are available from the `Custom...' option on the "
65"`Type' menu. "
66"\n"
67"_Width_, _Height_ "
68"\n"
69"Size of grid in squares. "
70"\n"
71"_Regions_ "
72"\n"
73"Number of regions in the generated map. "
74"\n"
75"_Difficulty_ "
76"\n"
77"In `Easy' mode, there should always be at least one region whose "
78"colour can be determined trivially. In `Normal' and `Hard' "
79"modes, you will have to use increasingly complex logic to deduce "
80"the colour of some regions. However, it will always be possible "
81"without having to guess or backtrack. "
82"\n"
83"In `Unreasonable' mode, the program will feel free to generate "
84"puzzles which are as hard as it can possibly make them: the "
85"only constraint is that they should still have a unique "
86"solution. Solving Unreasonable puzzles may require guessing and "
87"backtracking. "
88"\n"
89;
90const char quick_help_text[] = "Colour the map so that adjacent regions are never the same colour.";
diff --git a/apps/plugins/puzzles/help/mines.c b/apps/plugins/puzzles/help/mines.c
new file mode 100644
index 0000000000..d5723d67af
--- /dev/null
+++ b/apps/plugins/puzzles/help/mines.c
@@ -0,0 +1,98 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 12: Mines "
5"\n"
6"You have a grid of covered squares, some of which contain mines, but "
7"you don't know which. Your job is to uncover every square which does "
8"_not_ contain a mine. If you uncover a square containing a mine, you "
9"lose. If you uncover a square which does not contain a mine, you "
10"are told how many mines are contained within the eight surrounding "
11"squares. "
12"\n"
13"This game needs no introduction; popularised by Windows, it is "
14"perhaps the single best known desktop puzzle game in existence. "
15"\n"
16"This version of it has an unusual property. By default, it will "
17"generate its mine positions in such a way as to ensure that you "
18"never need to _guess_ where a mine is: you will always be able "
19"to deduce it somehow. So you will never, as can happen in other "
20"versions, get to the last four squares and discover that there are "
21"two mines left but you have no way of knowing for sure where they "
22"are. "
23"\n"
24"\n#12.1 Mines controls "
25"\n"
26"This game is played with the mouse. "
27"\n"
28"If you left-click in a covered square, it will be uncovered. "
29"\n"
30"If you right-click in a covered square, it will place a flag which "
31"indicates that the square is believed to be a mine. Left-clicking in "
32"a marked square will not uncover it, for safety. You can right-click "
33"again to remove a mark placed in error. "
34"\n"
35"If you left-click in an _uncovered_ square, it will `clear around' "
36"the square. This means: if the square has exactly as many flags "
37"surrounding it as it should have mines, then all the covered squares "
38"next to it which are _not_ flagged will be uncovered. So once you "
39"think you know the location of all the mines around a square, you "
40"can use this function as a shortcut to avoid having to click on each "
41"of the remaining squares one by one. "
42"\n"
43"If you uncover a square which has _no_ mines in the surrounding "
44"eight squares, then it is obviously safe to uncover those squares in "
45"turn, and so on if any of them also has no surrounding mines. This "
46"will be done for you automatically; so sometimes when you uncover a "
47"square, a whole new area will open up to be explored. "
48"\n"
49"You can also use the cursor keys to move around the minefield. "
50"Pressing the return key in a covered square uncovers it, and in "
51"an uncovered square will clear around it (so it acts as the left "
52"button), pressing the space bar in a covered square will place a "
53"flag (similarly, it acts as the right button). "
54"\n"
55"All the actions described in section 2.1 are also available. "
56"\n"
57"Even Undo is available, although you might consider it cheating to "
58"use it. If you step on a mine, the program will only reveal the mine "
59"in question (unlike most other implementations, which reveal all of "
60"them). You can then Undo your fatal move and continue playing if you "
61"like. The program will track the number of times you died (and Undo "
62"will not reduce that counter), so when you get to the end of the "
63"game you know whether or not you did it without making any errors. "
64"\n"
65"(If you really want to know the full layout of the grid, which other "
66"implementations will show you after you die, you can always use the "
67"Solve menu option.) "
68"\n"
69"\n#12.2 Mines parameters "
70"\n"
71"The options available from the `Custom...' option on the `Type' menu "
72"are: "
73"\n"
74"_Width_, _Height_ "
75"\n"
76"Size of grid in squares. "
77"\n"
78"_Mines_ "
79"\n"
80"Number of mines in the grid. You can enter this as an absolute "
81"mine count, or alternatively you can put a % sign on the end "
82"in which case the game will arrange for that proportion of the "
83"squares in the grid to be mines. "
84"\n"
85"Beware of setting the mine count too high. At very high "
86"densities, the program may spend forever searching for a "
87"solvable grid. "
88"\n"
89"_Ensure solubility_ "
90"\n"
91"When this option is enabled (as it is by default), Mines will "
92"ensure that the entire grid can be fully deduced starting "
93"from the initial open space. If you prefer the riskier grids "
94"generated by other implementations, you can switch off this "
95"option. "
96"\n"
97;
98const char quick_help_text[] = "Find all the mines without treading on any of them.";
diff --git a/apps/plugins/puzzles/help/net.c b/apps/plugins/puzzles/help/net.c
new file mode 100644
index 0000000000..16ee92d27e
--- /dev/null
+++ b/apps/plugins/puzzles/help/net.c
@@ -0,0 +1,108 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 3: Net "
5"\n"
6"(_Note:_ the Windows version of this game is called NETGAME.EXE to "
7"avoid clashing with Windows's own NET.EXE.) "
8"\n"
9"I originally saw this in the form of a Flash game called "
10"FreeNet [1], written by Pavils Jurjans; there are several other "
11"implementations under the name NetWalk. The computer prepares a "
12"network by connecting up the centres of squares in a grid, and then "
13"shuffles the network by rotating every tile randomly. Your job is "
14"to rotate it all back into place. The successful solution will be "
15"an entirely connected network, with no closed loops. As a visual "
16"aid, all tiles which are connected to the one in the middle are "
17"highlighted. "
18"\n"
19"[1] http://www.jurjans.lv/stuff/net/FreeNet.htm "
20"\n"
21"\n#3.1 Net controls "
22"\n"
23"This game can be played with either the keyboard or the mouse. The "
24"controls are: "
25"\n"
26"_Select tile_: mouse pointer, arrow keys "
27"\n"
28"_Rotate tile anticlockwise_: left mouse button, `A' key "
29"\n"
30"_Rotate tile clockwise_: right mouse button, `D' key "
31"\n"
32"_Rotate tile by 180 degrees_: `F' key "
33"\n"
34"_Lock (or unlock) tile_: middle mouse button, shift-click, `S' key "
35"\n"
36"You can lock a tile once you're sure of its orientation. You "
37"can also unlock it again, but while it's locked you can't "
38"accidentally turn it. "
39"\n"
40"The following controls are not necessary to complete the game, but "
41"may be useful: "
42"\n"
43"_Shift grid_: Shift + arrow keys "
44"\n"
45"On grids that wrap, you can move the origin of the grid, so "
46"that tiles that were on opposite sides of the grid can be seen "
47"together. "
48"\n"
49"_Move centre_: Ctrl + arrow keys "
50"\n"
51"You can change which tile is used as the source of highlighting. "
52"(It doesn't ultimately matter which tile this is, as every tile "
53"will be connected to every other tile in a correct solution, "
54"but it may be helpful in the intermediate stages of solving the "
55"puzzle.) "
56"\n"
57"_Jumble tiles_: `J' key "
58"\n"
59"This key turns all tiles that are not locked to random "
60"orientations. "
61"\n"
62"(All the actions described in section 2.1 are also available.) "
63"\n"
64"\n#3.2 Net parameters "
65"\n"
66"These parameters are available from the `Custom...' option on the "
67"`Type' menu. "
68"\n"
69"_Width_, _Height_ "
70"\n"
71"Size of grid in tiles. "
72"\n"
73"_Walls wrap around_ "
74"\n"
75"If checked, flow can pass from the left edge to the right edge, "
76"and from top to bottom, and vice versa. "
77"\n"
78"_Barrier probability_ "
79"\n"
80"A number between 0.0 and 1.0 controlling whether an immovable "
81"barrier is placed between two tiles to prevent flow between "
82"them (a higher number gives more barriers). Since barriers "
83"are immovable, they act as constraints on the solution (i.e., "
84"hints). "
85"\n"
86"The grid generation in Net has been carefully arranged so that "
87"the barriers are independent of the rest of the grid. This "
88"means that if you note down the random seed used to generate "
89"the current puzzle (see section 2.2), change the _Barrier "
90"probability_ parameter, and then re-enter the same random seed, "
91"you should see exactly the same starting grid, with the only "
92"change being the number of barriers. So if you're stuck on a "
93"particular grid and need a hint, you could start up another "
94"instance of Net, set up the same parameters but a higher barrier "
95"probability, and enter the game seed from the original Net "
96"window. "
97"\n"
98"_Ensure unique solution_ "
99"\n"
100"Normally, Net will make sure that the puzzles it presents have "
101"only one solution. Puzzles with ambiguous sections can be more "
102"difficult and more subtle, so if you like you can turn off this "
103"feature and risk having ambiguous puzzles. (Also, finding _all_ "
104"the possible solutions can be an additional challenge for an "
105"advanced player.) "
106"\n"
107;
108const char quick_help_text[] = "Rotate each tile to reassemble the network.";
diff --git a/apps/plugins/puzzles/help/netslide.c b/apps/plugins/puzzles/help/netslide.c
new file mode 100644
index 0000000000..b742e4eb53
--- /dev/null
+++ b/apps/plugins/puzzles/help/netslide.c
@@ -0,0 +1,20 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 9: Netslide "
5"\n"
6"This game combines the grid generation of Net (see chapter 3) with "
7"the movement of Sixteen (see chapter 6): you have a Net grid, but "
8"instead of rotating tiles back into place you have to slide them "
9"into place by moving a whole row at a time. "
10"\n"
11"As in Sixteen, control is with the mouse or cursor keys. See section "
12"6.1. "
13"\n"
14"The available game parameters have similar meanings to those in Net "
15"(see section 3.2) and Sixteen (see section 6.2). "
16"\n"
17"Netslide was contributed to this collection by Richard Boulton. "
18"\n"
19;
20const char quick_help_text[] = "Slide a row at a time to reassemble the network.";
diff --git a/apps/plugins/puzzles/help/palisade.c b/apps/plugins/puzzles/help/palisade.c
new file mode 100644
index 0000000000..824eb21799
--- /dev/null
+++ b/apps/plugins/puzzles/help/palisade.c
@@ -0,0 +1,43 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 41: Palisade "
5"\n"
6"You're given a grid of squares, some of which contain numbers. Your "
7"goal is to subdivide the grid into contiguous regions, all of the "
8"same (given) size, such that each square containing a number is "
9"adjacent to exactly that many edges (including those between the "
10"inside and the outside of the grid). "
11"\n"
12"Credit for this puzzle goes to Nikoli, who call it `Five Cells'. "
13"[22]. "
14"\n"
15"Palisade was contributed to this collection by Jonas Koelker. "
16"\n"
17"[22] http://nikoli.co.jp/en/puzzles/five_cells.html "
18"\n"
19"\n#41.1 Palisade controls "
20"\n"
21"Left-click to place an edge. Right-click to indicate `no edge'. "
22"Alternatively, the arrow keys will move a keyboard cursor. Holding "
23"Control while pressing an arrow key will place an edge. Press Shift-\n"
24"arrowkey to switch off an edge. Repeat an action to perform its "
25"inverse. "
26"\n"
27"(All the actions described in section 2.1 are also available.) "
28"\n"
29"\n#41.2 Palisade parameters "
30"\n"
31"These parameters are available from the `Custom...' option on the "
32"`Type' menu. "
33"\n"
34"_Width_, _Height_ "
35"\n"
36"Size of grid in squares. "
37"\n"
38"_Region size_ "
39"\n"
40"The size of the regions into which the grid must be subdivided. "
41"\n"
42;
43const char quick_help_text[] = "Divide the grid into equal-sized areas in accordance with the clues.";
diff --git a/apps/plugins/puzzles/help/pattern.c b/apps/plugins/puzzles/help/pattern.c
new file mode 100644
index 0000000000..d3764c6d43
--- /dev/null
+++ b/apps/plugins/puzzles/help/pattern.c
@@ -0,0 +1,56 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 10: Pattern "
5"\n"
6"You have a grid of squares, which must all be filled in either black "
7"or white. Beside each row of the grid are listed the lengths of the "
8"runs of black squares on that row; above each column are listed the "
9"lengths of the runs of black squares in that column. Your aim is to "
10"fill in the entire grid black or white. "
11"\n"
12"I first saw this puzzle form around 1995, under the name "
13"`nonograms'. I've seen it in various places since then, under "
14"different names. "
15"\n"
16"Normally, puzzles of this type turn out to be a meaningful picture "
17"of something once you've solved them. However, since this version "
18"generates the puzzles automatically, they will just look like random "
19"groupings of squares. (One user has suggested that this is actually "
20"a _good_ thing, since it prevents you from guessing the colour of "
21"squares based on the picture, and forces you to use logic instead.) "
22"The advantage, though, is that you never run out of them. "
23"\n"
24"\n#10.1 Pattern controls "
25"\n"
26"This game is played with the mouse. "
27"\n"
28"Left-click in a square to colour it black. Right-click to colour it "
29"white. If you make a mistake, you can middle-click, or hold down "
30"Shift while clicking with any button, to colour the square in the "
31"default grey (meaning `undecided') again. "
32"\n"
33"You can click and drag with the left or right mouse button to colour "
34"a vertical or horizontal line of squares black or white at a time "
35"(respectively). If you click and drag with the middle button, or "
36"with Shift held down, you can colour a whole rectangle of squares "
37"grey. "
38"\n"
39"You can also move around the grid with the cursor keys. Pressing the "
40"return key will cycle the current cell through empty, then black, "
41"then white, then empty, and the space bar does the same cycle in "
42"reverse. "
43"\n"
44"Moving the cursor while holding Control will colour the moved-over "
45"squares black. Holding Shift will colour the moved-over squares "
46"white, and holding both will colour them grey. "
47"\n"
48"(All the actions described in section 2.1 are also available.) "
49"\n"
50"\n#10.2 Pattern parameters "
51"\n"
52"The only options available from the `Custom...' option on the `Type' "
53"menu are _Width_ and _Height_, which are self-explanatory. "
54"\n"
55;
56const char quick_help_text[] = "Fill in the pattern in the grid, given only the lengths of runs of black squares.";
diff --git a/apps/plugins/puzzles/help/pearl.c b/apps/plugins/puzzles/help/pearl.c
new file mode 100644
index 0000000000..961c4d7db4
--- /dev/null
+++ b/apps/plugins/puzzles/help/pearl.c
@@ -0,0 +1,70 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 36: Pearl "
5"\n"
6"You have a grid of squares. Your job is to draw lines between the "
7"centres of horizontally or vertically adjacent squares, so that the "
8"lines form a single closed loop. In the resulting grid, some of the "
9"squares that the loop passes through will contain corners, and some "
10"will be straight horizontal or vertical lines. (And some squares can "
11"be completely empty - the loop doesn't have to pass through every "
12"square.) "
13"\n"
14"Some of the squares contain black and white circles, which are clues "
15"that the loop must satisfy. "
16"\n"
17"A black circle in a square indicates that that square is a corner, "
18"but neither of the squares adjacent to it in the loop is also a "
19"corner. "
20"\n"
21"A white circle indicates that the square is a straight edge, but _at "
22"least one_ of the squares adjacent to it in the loop is a corner. "
23"\n"
24"(In both cases, the clue only constrains the two squares adjacent "
25"_in the loop_, that is, the squares that the loop passes into after "
26"leaving the clue square. The squares that are only adjacent _in the "
27"grid_ are not constrained.) "
28"\n"
29"Credit for this puzzle goes to Nikoli, who call it `Masyu'. [19] "
30"\n"
31"Thanks to James Harvey for assistance with the implementation. "
32"\n"
33"[19] http://www.nikoli.co.jp/en/puzzles/masyu.html (beware of Flash) "
34"\n"
35"\n#36.1 Pearl controls "
36"\n"
37"Click with the left button on a grid edge to draw a segment of the "
38"loop through that edge, or to remove a segment once it is drawn. "
39"\n"
40"Drag with the left button through a series of squares to draw more "
41"than one segment of the loop in one go. Alternatively, drag over an "
42"existing part of the loop to undraw it, or to undraw part of it and "
43"then go in a different direction. "
44"\n"
45"Click with the right button on a grid edge to mark it with a cross, "
46"indicating that you are sure the loop does not go through that edge. "
47"(For instance, if you have decided which of the squares adjacent "
48"to a white clue has to be a corner, but don't yet know which way "
49"the corner turns, you might mark the one way it _can't_ go with a "
50"cross.) "
51"\n"
52"Alternatively, use the cursor keys to move the cursor. Use the Enter "
53"key to begin and end keyboard `drag' operations. Use the Space, "
54"Escape or Backspace keys to cancel the drag. Or, hold Control while "
55"dragging with the cursor keys to toggle segments as you move between "
56"squares. "
57"\n"
58"Pressing Control-Shift-arrowkey or Shift-arrowkey simulates a left "
59"or right click, respectively, on the edge in the direction of the "
60"key. "
61"\n"
62"(All the actions described in section 2.1 are also available.) "
63"\n"
64"\n#36.2 Pearl parameters "
65"\n"
66"These parameters are available from the `Custom...' option on the "
67"`Type' menu. "
68"\n"
69;
70const char quick_help_text[] = "Draw a single closed loop, given clues about corner and straight squares.";
diff --git a/apps/plugins/puzzles/help/pegs.c b/apps/plugins/puzzles/help/pegs.c
new file mode 100644
index 0000000000..d5b1df6040
--- /dev/null
+++ b/apps/plugins/puzzles/help/pegs.c
@@ -0,0 +1,52 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 16: Pegs "
5"\n"
6"A number of pegs are placed in holes on a board. You can remove a "
7"peg by jumping an adjacent peg over it (horizontally or vertically) "
8"to a vacant hole on the other side. Your aim is to remove all but "
9"one of the pegs initially present. "
10"\n"
11"This game, best known as `Peg Solitaire', is possibly one of the "
12"oldest puzzle games still commonly known. "
13"\n"
14"\n#16.1 Pegs controls "
15"\n"
16"To move a peg, drag it with the mouse from its current position to "
17"its final position. If the final position is exactly two holes away "
18"from the initial position, is currently unoccupied by a peg, and "
19"there is a peg in the intervening square, the move will be permitted "
20"and the intervening peg will be removed. "
21"\n"
22"Vacant spaces which you can move a peg into are marked with holes. A "
23"space with no peg and no hole is not available for moving at all: it "
24"is an obstacle which you must work around. "
25"\n"
26"You can also use the cursor keys to move a position indicator around "
27"the board. Pressing the return key while over a peg, followed by a "
28"cursor key, will jump the peg in that direction (if that is a legal "
29"move). "
30"\n"
31"(All the actions described in section 2.1 are also available.) "
32"\n"
33"\n#16.2 Pegs parameters "
34"\n"
35"These parameters are available from the `Custom...' option on the "
36"`Type' menu. "
37"\n"
38"_Width_, _Height_ "
39"\n"
40"Size of grid in holes. "
41"\n"
42"_Board type_ "
43"\n"
44"Controls whether you are given a board of a standard shape or "
45"a randomly generated shape. The two standard shapes currently "
46"supported are `Cross' and `Octagon' (also commonly known as the "
47"English and European traditional board layouts respectively). "
48"Selecting `Random' will give you a different board shape every "
49"time (but always one that is known to have a solution). "
50"\n"
51;
52const char quick_help_text[] = "Jump pegs over each other to remove all but one.";
diff --git a/apps/plugins/puzzles/help/range.c b/apps/plugins/puzzles/help/range.c
new file mode 100644
index 0000000000..fd234d7e24
--- /dev/null
+++ b/apps/plugins/puzzles/help/range.c
@@ -0,0 +1,62 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 35: Range "
5"\n"
6"You have a grid of squares; some squares contain numbers. Your job "
7"is to colour some of the squares black, such that several criteria "
8"are satisfied: "
9"\n"
10"- no square with a number is coloured black. "
11"\n"
12"- no two black squares are adjacent (horizontally or vertically). "
13"\n"
14"- for any two white squares, there is a path between them using "
15"only white squares. "
16"\n"
17"- for each square with a number, that number denotes the total "
18"number of white squares reachable from that square going in a "
19"straight line in any horizontal or vertical direction until "
20"hitting a wall or a black square; the square with the number is "
21"included in the total (once). "
22"\n"
23"For instance, a square containing the number one must have four "
24"black squares as its neighbours by the last criterion; but then it's "
25"impossible for it to be connected to any outside white square, which "
26"violates the second to last criterion. So no square will contain the "
27"number one. "
28"\n"
29"Credit for this puzzle goes to Nikoli, who have variously called it "
30"`Kurodoko', `Kuromasu' or `Where is Black Cells'. [18]. "
31"\n"
32"Range was contributed to this collection by Jonas Koelker. "
33"\n"
34"[18] http://www.nikoli.co.jp/en/puzzles/where_is_black_cells.html "
35"\n"
36"\n#35.1 Range controls "
37"\n"
38"Click with the left button to paint a square black, or with the "
39"right button to mark a square with a dot to indicate that you are "
40"sure it should _not_ be painted black. Repeated clicking with either "
41"button will cycle the square through the three possible states "
42"(filled, dotted or empty) in opposite directions. "
43"\n"
44"You can also use the cursor keys to move around the grid squares. "
45"Pressing Return does the same as clicking with the left button, "
46"while pressing Space does the same as a right button click. Moving "
47"with the cursor keys while holding Shift will place dots in all "
48"squares that are moved through. "
49"\n"
50"(All the actions described in section 2.1 are also available.) "
51"\n"
52"\n#35.2 Range parameters "
53"\n"
54"These parameters are available from the `Custom...' option on the "
55"`Type' menu. "
56"\n"
57"_Width_, _Height_ "
58"\n"
59"Size of grid in squares. "
60"\n"
61;
62const char quick_help_text[] = "Place black squares to limit the visible distance from each numbered cell.";
diff --git a/apps/plugins/puzzles/help/rect.c b/apps/plugins/puzzles/help/rect.c
new file mode 100644
index 0000000000..fa1da622e2
--- /dev/null
+++ b/apps/plugins/puzzles/help/rect.c
@@ -0,0 +1,93 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 8: Rectangles "
5"\n"
6"You have a grid of squares, with numbers written in some (but "
7"not all) of the squares. Your task is to subdivide the grid into "
8"rectangles of various sizes, such that (a) every rectangle contains "
9"exactly one numbered square, and (b) the area of each rectangle is "
10"equal to the number written in its numbered square. "
11"\n"
12"Credit for this game goes to the Japanese puzzle magazine Nikoli [3] "
13"; I've also seen a Palm implementation at Puzzle Palace [4]. Unlike "
14"Puzzle Palace's implementation, my version automatically generates "
15"random grids of any size you like. The quality of puzzle design is "
16"therefore not quite as good as hand-crafted puzzles would be, but on "
17"the plus side you get an inexhaustible supply of puzzles tailored to "
18"your own specification. "
19"\n"
20"[3] http://www.nikoli.co.jp/en/puzzles/shikaku.html (beware of "
21"Flash) "
22"\n"
23"[4] "
24"https://web.archive.org/web/20041024001459/http://www.puzzle.gr.jp/puzzle/sikaku/palm/index.html.en "
25"\n"
26"\n#8.1 Rectangles controls "
27"\n"
28"This game is played with the mouse or cursor keys. "
29"\n"
30"Left-click any edge to toggle it on or off, or left-click and "
31"drag to draw an entire rectangle (or line) on the grid in one go "
32"(removing any existing edges within that rectangle). Right-clicking "
33"and dragging will allow you to erase the contents of a rectangle "
34"without affecting its edges. "
35"\n"
36"Alternatively, use the cursor keys to move the position indicator "
37"around the board. Pressing the return key then allows you to use the "
38"cursor keys to drag a rectangle out from that position, and pressing "
39"the return key again completes the rectangle. Using the space bar "
40"instead of the return key allows you to erase the contents of a "
41"rectangle without affecting its edges, as above. Pressing escape "
42"cancels a drag. "
43"\n"
44"When a rectangle of the correct size is completed, it will be "
45"shaded. "
46"\n"
47"(All the actions described in section 2.1 are also available.) "
48"\n"
49"\n#8.2 Rectangles parameters "
50"\n"
51"These parameters are available from the `Custom...' option on the "
52"`Type' menu. "
53"\n"
54"_Width_, _Height_ "
55"\n"
56"Size of grid, in squares. "
57"\n"
58"_Expansion factor_ "
59"\n"
60"This is a mechanism for changing the type of grids generated by "
61"the program. Some people prefer a grid containing a few large "
62"rectangles to one containing many small ones. So you can ask "
63"Rectangles to essentially generate a _smaller_ grid than the "
64"size you specified, and then to expand it by adding rows and "
65"columns. "
66"\n"
67"The default expansion factor of zero means that Rectangles will "
68"simply generate a grid of the size you ask for, and do nothing "
69"further. If you set an expansion factor of (say) 0.5, it means "
70"that each dimension of the grid will be expanded to half again "
71"as big after generation. In other words, the initial grid will "
72"be 2/3 the size in each dimension, and will be expanded to its "
73"full size without adding any more rectangles. "
74"\n"
75"Setting an expansion factor of around 0.5 tends to make the "
76"game more difficult, and also (in my experience) rewards a "
77"less deductive and more intuitive playing style. If you set it "
78"_too_ high, though, the game simply cannot generate more than a "
79"few rectangles to cover the entire grid, and the game becomes "
80"trivial. "
81"\n"
82"_Ensure unique solution_ "
83"\n"
84"Normally, Rectangles will make sure that the puzzles it presents "
85"have only one solution. Puzzles with ambiguous sections can be "
86"more difficult and more subtle, so if you like you can turn off "
87"this feature and risk having ambiguous puzzles. Also, finding "
88"_all_ the possible solutions can be an additional challenge for "
89"an advanced player. Turning off this option can also speed up "
90"puzzle generation. "
91"\n"
92;
93const char quick_help_text[] = "Divide the grid into rectangles with areas equal to the numbers.";
diff --git a/apps/plugins/puzzles/help/samegame.c b/apps/plugins/puzzles/help/samegame.c
new file mode 100644
index 0000000000..288493f7fd
--- /dev/null
+++ b/apps/plugins/puzzles/help/samegame.c
@@ -0,0 +1,76 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 13: Same Game "
5"\n"
6"You have a grid of coloured squares, which you have to clear by "
7"highlighting contiguous regions of more than one coloured square; "
8"the larger the region you highlight, the more points you get (and "
9"the faster you clear the arena). "
10"\n"
11"If you clear the grid you win. If you end up with nothing but single "
12"squares (i.e., there are no more clickable regions left) you lose. "
13"\n"
14"Removing a region causes the rest of the grid to shuffle up: blocks "
15"that are suspended will fall down (first), and then empty columns "
16"are filled from the right. "
17"\n"
18"Same Game was contributed to this collection by James Harvey. "
19"\n"
20"\n#13.1 Same Game controls "
21"\n"
22"This game can be played with either the keyboard or the mouse. "
23"\n"
24"If you left-click an unselected region, it becomes selected "
25"(possibly clearing the current selection). "
26"\n"
27"If you left-click the selected region, it will be removed (and the "
28"rest of the grid shuffled immediately). "
29"\n"
30"If you right-click the selected region, it will be unselected. "
31"\n"
32"The cursor keys move a cursor around the grid. Pressing the Space or "
33"Enter keys while the cursor is in an unselected region selects it; "
34"pressing Space or Enter again removes it as above. "
35"\n"
36"(All the actions described in section 2.1 are also available.) "
37"\n"
38"\n#13.2 Same Game parameters "
39"\n"
40"These parameters are available from the `Custom...' option on the "
41"`Type' menu. "
42"\n"
43"_Width_, _Height_ "
44"\n"
45"Size of grid in squares. "
46"\n"
47"_No. of colours_ "
48"\n"
49"Number of different colours used to fill the grid; the more "
50"colours, the fewer large regions of colour and thus the more "
51"difficult it is to successfully clear the grid. "
52"\n"
53"_Scoring system_ "
54"\n"
55"Controls the precise mechanism used for scoring. With the "
56"default system, `(n-2)^2', only regions of three squares or more "
57"will score any points at all. With the alternative `(n-1)^2' "
58"system, regions of two squares score a point each, and larger "
59"regions score relatively more points. "
60"\n"
61"_Ensure solubility_ "
62"\n"
63"If this option is ticked (the default state), generated grids "
64"will be guaranteed to have at least one solution. "
65"\n"
66"If you turn it off, the game generator will not try to guarantee "
67"soluble grids; it will, however, still ensure that there are at "
68"least 2 squares of each colour on the grid at the start (since a "
69"grid with exactly one square of a given colour is _definitely_ "
70"insoluble). Grids generated with this option disabled may "
71"contain more large areas of contiguous colour, leading to "
72"opportunities for higher scores; they can also take less time to "
73"generate. "
74"\n"
75;
76const char quick_help_text[] = "Clear the grid by removing touching groups of the same colour squares.";
diff --git a/apps/plugins/puzzles/help/signpost.c b/apps/plugins/puzzles/help/signpost.c
new file mode 100644
index 0000000000..30885cf188
--- /dev/null
+++ b/apps/plugins/puzzles/help/signpost.c
@@ -0,0 +1,80 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 34: Signpost "
5"\n"
6"You have a grid of squares; each square (except the last one) "
7"contains an arrow, and some squares also contain numbers. Your job "
8"is to connect the squares to form a continuous list of numbers "
9"starting at 1 and linked in the direction of the arrows - so the "
10"arrow inside the square with the number 1 will point to the square "
11"containing the number 2, which will point to the square containing "
12"the number 3, etc. Each square can be any distance away from the "
13"previous one, as long as it is somewhere in the direction of the "
14"arrow. "
15"\n"
16"By convention the first and last numbers are shown; one or more "
17"interim numbers may also appear at the beginning. "
18"\n"
19"Credit for this puzzle goes to Janko [17], who call it `Pfeilpfad' "
20"(`arrow path'). "
21"\n"
22"Signpost was contributed to this collection by James Harvey. "
23"\n"
24"[17] http://janko.at/Raetsel/Pfeilpfad/index.htm "
25"\n"
26"\n#34.1 Signpost controls "
27"\n"
28"To play Signpost, you connect squares together by dragging from "
29"one square to another, indicating that they are adjacent in the "
30"sequence. Drag with the left button from a square to its successor, "
31"or with the right button from a square to its predecessor. "
32"\n"
33"If you connect together two squares in this way and one of them has "
34"a number in it, the appropriate number will appear in the other "
35"square. If you connect two non-numbered squares, they will be "
36"assigned temporary algebraic labels: on the first occasion, they "
37"will be labelled `a' and `a+1', and then `b' and `b+1', and so on. "
38"Connecting more squares on to the ends of such a chain will cause "
39"them all to be labelled with the same letter. "
40"\n"
41"When you left-click or right-click in a square, the legal squares to "
42"connect it to will be shown. "
43"\n"
44"The arrow in each square starts off black, and goes grey once you "
45"connect the square to its successor. Also, each square which needs "
46"a predecessor has a small dot in the bottom left corner, which "
47"vanishes once you link a square to it. So your aim is always to "
48"connect a square with a black arrow to a square with a dot. "
49"\n"
50"To remove any links for a particular square (both incoming and "
51"outgoing), left-drag it off the grid. To remove a whole chain, "
52"right-drag any square in the chain off the grid. "
53"\n"
54"You can also use the cursor keys to move around the grid squares "
55"and lines. Pressing the return key when over a square starts a link "
56"operation, and pressing the return key again over a square will "
57"finish the link, if allowable. Pressing the space bar over a square "
58"will show the other squares pointing to it, and allow you to form a "
59"backward link, and pressing the space bar again cancels this. "
60"\n"
61"(All the actions described in section 2.1 are also available.) "
62"\n"
63"\n#34.2 Signpost parameters "
64"\n"
65"These parameters are available from the `Custom...' option on the "
66"`Type' menu. "
67"\n"
68"_Width_, _Height_ "
69"\n"
70"Size of grid in squares. "
71"\n"
72"_Force start/end to corners_ "
73"\n"
74"If true, the start and end squares are always placed in opposite "
75"corners (the start at the top left, and the end at the bottom "
76"right). If false the start and end squares are placed randomly "
77"(although always both shown). "
78"\n"
79;
80const char quick_help_text[] = "Connect the squares into a path following the arrows.";
diff --git a/apps/plugins/puzzles/help/singles.c b/apps/plugins/puzzles/help/singles.c
new file mode 100644
index 0000000000..2277071cb9
--- /dev/null
+++ b/apps/plugins/puzzles/help/singles.c
@@ -0,0 +1,51 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 32: Singles "
5"\n"
6"You have a grid of white squares, all of which contain numbers. Your "
7"task is to colour some of the squares black (removing the number) so "
8"as to satisfy all of the following conditions: "
9"\n"
10"- No number occurs more than once in any row or column. "
11"\n"
12"- No black square is horizontally or vertically adjacent to any "
13"other black square. "
14"\n"
15"- The remaining white squares must all form one contiguous region "
16"(connected by edges, not just touching at corners). "
17"\n"
18"Credit for this puzzle goes to Nikoli [15] who call it Hitori. "
19"\n"
20"Singles was contributed to this collection by James Harvey. "
21"\n"
22"[15] http://www.nikoli.com/en/puzzles/hitori.html (beware of Flash) "
23"\n"
24"\n#32.1 Singles controls "
25"\n"
26"Left-clicking on an empty square will colour it black; left-clicking "
27"again will restore the number. Right-clicking will add a circle "
28"(useful for indicating that a cell is definitely not black). "
29"\n"
30"You can also use the cursor keys to move around the grid. Pressing "
31"the return or space keys will turn a square black or add a circle "
32"respectively, and pressing the key again will restore the number or "
33"remove the circle. "
34"\n"
35"(All the actions described in section 2.1 are also available.) "
36"\n"
37"\n#32.2 Singles parameters "
38"\n"
39"These parameters are available from the `Custom...' option on the "
40"`Type' menu. "
41"\n"
42"_Width_, _Height_ "
43"\n"
44"Size of grid in squares. "
45"\n"
46"_Difficulty_ "
47"\n"
48"Controls the difficulty of the generated puzzle. "
49"\n"
50;
51const char quick_help_text[] = "Black out the right set of duplicate numbers.";
diff --git a/apps/plugins/puzzles/help/sixteen.c b/apps/plugins/puzzles/help/sixteen.c
new file mode 100644
index 0000000000..d588c37e3a
--- /dev/null
+++ b/apps/plugins/puzzles/help/sixteen.c
@@ -0,0 +1,62 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 6: Sixteen "
5"\n"
6"Another sliding tile puzzle, visually similar to Fifteen (see "
7"chapter 5) but with a different type of move. This time, there is no "
8"hole: all 16 squares on the grid contain numbered squares. Your move "
9"is to shift an entire row left or right, or shift an entire column "
10"up or down; every time you do that, the tile you shift off the grid "
11"re-appears at the other end of the same row, in the space you just "
12"vacated. To win, arrange the tiles into numerical order (1,2,3,4 on "
13"the top row, 13,14,15,16 on the bottom). When you've done that, try "
14"playing on different sizes of grid. "
15"\n"
16"I _might_ have invented this game myself, though only by accident "
17"if so (and I'm sure other people have independently invented it). I "
18"thought I was imitating a screensaver I'd seen, but I have a feeling "
19"that the screensaver might actually have been a Fifteen-type puzzle "
20"rather than this slightly different kind. So this might be the one "
21"thing in my puzzle collection which represents creativity on my part "
22"rather than just engineering. "
23"\n"
24"\n#6.1 Sixteen controls "
25"\n"
26"Left-clicking on an arrow will move the appropriate row or column in "
27"the direction indicated. Right-clicking will move it in the opposite "
28"direction. "
29"\n"
30"Alternatively, use the cursor keys to move the position indicator "
31"around the edge of the grid, and use the return key to move the "
32"row/column in the direction indicated. "
33"\n"
34"You can also move the tiles directly. Move the cursor onto a tile, "
35"hold Control and press an arrow key to move the tile under the "
36"cursor and move the cursor along with the tile. Or, hold Shift to "
37"move only the tile. Pressing Enter simulates holding down Control "
38"(press Enter again to release), while pressing Space simulates "
39"holding down shift. "
40"\n"
41"(All the actions described in section 2.1 are also available.) "
42"\n"
43"\n#6.2 Sixteen parameters "
44"\n"
45"The parameters available from the `Custom...' option on the `Type' "
46"menu are: "
47"\n"
48"- _Width_ and _Height_, which are self-explanatory. "
49"\n"
50"- You can ask for a limited shuffling operation to be performed on "
51"the grid. By default, Sixteen will shuffle the grid in such a "
52"way that any arrangement is about as probable as any other. You "
53"can override this by requesting a precise number of shuffling "
54"moves to be performed. Typically your aim is then to determine "
55"the precise set of shuffling moves and invert them exactly, "
56"so that you answer (say) a four-move shuffle with a four-move "
57"solution. Note that the more moves you ask for, the more likely "
58"it is that solutions shorter than the target length will turn "
59"out to be possible. "
60"\n"
61;
62const char quick_help_text[] = "Slide a row at a time to arrange the tiles into order.";
diff --git a/apps/plugins/puzzles/help/slant.c b/apps/plugins/puzzles/help/slant.c
new file mode 100644
index 0000000000..c68cd7cd84
--- /dev/null
+++ b/apps/plugins/puzzles/help/slant.c
@@ -0,0 +1,66 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 20: Slant "
5"\n"
6"You have a grid of squares. Your aim is to draw a diagonal line "
7"through each square, and choose which way each line slants so that "
8"the following conditions are met: "
9"\n"
10"- The diagonal lines never form a loop. "
11"\n"
12"- Any point with a circled number has precisely that many lines "
13"meeting at it. (Thus, a 4 is the centre of a cross shape, "
14"whereas a zero is the centre of a diamond shape - or rather, a "
15"partial diamond shape, because a zero can never appear in the "
16"middle of the grid because that would immediately cause a loop.) "
17"\n"
18"Credit for this puzzle goes to Nikoli [8]. "
19"\n"
20"[8] http://www.nikoli.co.jp/ja/puzzles/gokigen_naname (in Japanese) "
21"\n"
22"\n#20.1 Slant controls "
23"\n"
24"Left-clicking in a blank square will place a \\ in it (a line leaning "
25"to the left, i.e. running from the top left of the square to the "
26"bottom right). Right-clicking in a blank square will place a / in it "
27"(leaning to the right, running from top right to bottom left). "
28"\n"
29"Continuing to click either button will cycle between the three "
30"possible square contents. Thus, if you left-click repeatedly in a "
31"blank square it will change from blank to \\ to / back to blank, and "
32"if you right-click repeatedly the square will change from blank to / "
33"to \\ back to blank. (Therefore, you can play the game entirely with "
34"one button if you need to.) "
35"\n"
36"You can also use the cursor keys to move around the grid. Pressing "
37"the return or space keys will place a \\ or a /, respectively, and "
38"will then cycle them as above. You can also press / or \\ to place a "
39"/ or \\, respectively, independent of what is already in the cursor "
40"square. Backspace removes any line from the cursor square. "
41"\n"
42"(All the actions described in section 2.1 are also available.) "
43"\n"
44"\n#20.2 Slant parameters "
45"\n"
46"These parameters are available from the `Custom...' option on the "
47"`Type' menu. "
48"\n"
49"_Width_, _Height_ "
50"\n"
51"Size of grid in squares. "
52"\n"
53"_Difficulty_ "
54"\n"
55"Controls the difficulty of the generated puzzle. At Hard "
56"level, you are required to do deductions based on knowledge of "
57"_relationships_ between squares rather than always being able to "
58"deduce the exact contents of one square at a time. (For example, "
59"you might know that two squares slant in the same direction, "
60"even if you don't yet know what that direction is, and this "
61"might enable you to deduce something about still other squares.) "
62"Even at Hard level, guesswork and backtracking should never be "
63"necessary. "
64"\n"
65;
66const char quick_help_text[] = "Draw a maze of slanting lines that matches the clues.";
diff --git a/apps/plugins/puzzles/help/solo.c b/apps/plugins/puzzles/help/solo.c
new file mode 100644
index 0000000000..5033f9131d
--- /dev/null
+++ b/apps/plugins/puzzles/help/solo.c
@@ -0,0 +1,137 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 11: Solo "
5"\n"
6"You have a square grid, which is divided into as many equally sized "
7"sub-blocks as the grid has rows. Each square must be filled in with "
8"a digit from 1 to the size of the grid, in such a way that "
9"\n"
10"- every row contains only one occurrence of each digit "
11"\n"
12"- every column contains only one occurrence of each digit "
13"\n"
14"- every block contains only one occurrence of each digit. "
15"\n"
16"- (optionally, by default off) each of the square's two main "
17"diagonals contains only one occurrence of each digit. "
18"\n"
19"You are given some of the numbers as clues; your aim is to place the "
20"rest of the numbers correctly. "
21"\n"
22"Under the default settings, the sub-blocks are square or "
23"rectangular. The default puzzle size is 3x3 (a 9x9 actual grid, "
24"divided into nine 3x3 blocks). You can also select sizes with "
25"rectangular blocks instead of square ones, such as 2x3 (a 6x6 grid "
26"divided into six 3x2 blocks). Alternatively, you can select `jigsaw' "
27"mode, in which the sub-blocks are arbitrary shapes which differ "
28"between individual puzzles. "
29"\n"
30"Another available mode is `killer'. In this mode, clues are not "
31"given in the form of filled-in squares; instead, the grid is divided "
32"into `cages' by coloured lines, and for each cage the game tells "
33"you what the sum of all the digits in that cage should be. Also, "
34"no digit may appear more than once within a cage, even if the cage "
35"crosses the boundaries of existing regions. "
36"\n"
37"If you select a puzzle size which requires more than 9 digits, the "
38"additional digits will be letters of the alphabet. For example, if "
39"you select 3x4 then the digits which go in your grid will be 1 to 9, "
40"plus `a', `b' and `c'. This cannot be selected for killer puzzles. "
41"\n"
42"I first saw this puzzle in Nikoli [5], although it's also been "
43"popularised by various newspapers under the name `Sudoku' or `Su "
44"Doku'. Howard Garns is considered the inventor of the modern form of "
45"the puzzle, and it was first published in _Dell Pencil Puzzles and "
46"Word Games_. A more elaborate treatment of the history of the puzzle "
47"can be found on Wikipedia [6]. "
48"\n"
49"[5] http://www.nikoli.co.jp/en/puzzles/sudoku.html (beware of Flash) "
50"\n"
51"[6] http://en.wikipedia.org/wiki/Sudoku "
52"\n"
53"\n#11.1 Solo controls "
54"\n"
55"To play Solo, simply click the mouse in any empty square and then "
56"type a digit or letter on the keyboard to fill that square. If you "
57"make a mistake, click the mouse in the incorrect square and press "
58"Space to clear it again (or use the Undo feature). "
59"\n"
60"If you _right_-click in a square and then type a number, that "
61"number will be entered in the square as a `pencil mark'. You can "
62"have pencil marks for multiple numbers in the same square. Squares "
63"containing filled-in numbers cannot also contain pencil marks. "
64"\n"
65"The game pays no attention to pencil marks, so exactly what you "
66"use them for is up to you: you can use them as reminders that a "
67"particular square needs to be re-examined once you know more about "
68"a particular number, or you can use them as lists of the possible "
69"numbers in a given square, or anything else you feel like. "
70"\n"
71"To erase a single pencil mark, right-click in the square and type "
72"the same number again. "
73"\n"
74"All pencil marks in a square are erased when you left-click and type "
75"a number, or when you left-click and press space. Right-clicking and "
76"pressing space will also erase pencil marks. "
77"\n"
78"Alternatively, use the cursor keys to move the mark around the grid. "
79"Pressing the return key toggles the mark (from a normal mark to a "
80"pencil mark), and typing a number in is entered in the square in the "
81"appropriate way; typing in a 0 or using the space bar will clear a "
82"filled square. "
83"\n"
84"(All the actions described in section 2.1 are also available.) "
85"\n"
86"\n#11.2 Solo parameters "
87"\n"
88"Solo allows you to configure two separate dimensions of the puzzle "
89"grid on the `Type' menu: the number of columns, and the number of "
90"rows, into which the main grid is divided. (The size of a block is "
91"the inverse of this: for example, if you select 2 columns and 3 "
92"rows, each actual block will have 3 columns and 2 rows.) "
93"\n"
94"If you tick the `X' checkbox, Solo will apply the optional extra "
95"constraint that the two main diagonals of the grid also contain "
96"one of every digit. (This is sometimes known as `Sudoku-X' in "
97"newspapers.) In this mode, the squares on the two main diagonals "
98"will be shaded slightly so that you know it's enabled. "
99"\n"
100"If you tick the `Jigsaw' checkbox, Solo will generate randomly "
101"shaped sub-blocks. In this mode, the actual grid size will be taken "
102"to be the product of the numbers entered in the `Columns' and `Rows' "
103"boxes. There is no reason why you have to enter a number greater "
104"than 1 in both boxes; Jigsaw mode has no constraint on the grid "
105"size, and it can even be a prime number if you feel like it. "
106"\n"
107"If you tick the `Killer' checkbox, Solo will generate a set of "
108"of cages, which are randomly shaped and drawn in an outline of a "
109"different colour. Each of these regions contains a smaller clue "
110"which shows the digit sum of all the squares in this region. "
111"\n"
112"You can also configure the type of symmetry shown in the generated "
113"puzzles. More symmetry makes the puzzles look prettier but may also "
114"make them easier, since the symmetry constraints can force more "
115"clues than necessary to be present. Completely asymmetric puzzles "
116"have the freedom to contain as few clues as possible. "
117"\n"
118"Finally, you can configure the difficulty of the generated puzzles. "
119"Difficulty levels are judged by the complexity of the techniques "
120"of deduction required to solve the puzzle: each level requires a "
121"mode of reasoning which was not necessary in the previous one. In "
122"particular, on difficulty levels `Trivial' and `Basic' there will be "
123"a square you can fill in with a single number at all times, whereas "
124"at `Intermediate' level and beyond you will have to make partial "
125"deductions about the _set_ of squares a number could be in (or the "
126"set of numbers that could be in a square). At `Unreasonable' level, "
127"even this is not enough, and you will eventually have to make a "
128"guess, and then backtrack if it turns out to be wrong. "
129"\n"
130"Generating difficult puzzles is itself difficult: if you select one "
131"of the higher difficulty levels, Solo may have to make many attempts "
132"at generating a puzzle before it finds one hard enough for you. Be "
133"prepared to wait, especially if you have also configured a large "
134"puzzle size. "
135"\n"
136;
137const char quick_help_text[] = "Fill in the grid so that each row, column and square block contains one of every digit.";
diff --git a/apps/plugins/puzzles/help/tents.c b/apps/plugins/puzzles/help/tents.c
new file mode 100644
index 0000000000..28d45301d0
--- /dev/null
+++ b/apps/plugins/puzzles/help/tents.c
@@ -0,0 +1,66 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 25: Tents "
5"\n"
6"You have a grid of squares, some of which contain trees. Your aim is "
7"to place tents in some of the remaining squares, in such a way that "
8"the following conditions are met: "
9"\n"
10"- There are exactly as many tents as trees. "
11"\n"
12"- The tents and trees can be matched up in such a way that each "
13"tent is directly adjacent (horizontally or vertically, but not "
14"diagonally) to its own tree. However, a tent may be adjacent to "
15"other trees as well as its own. "
16"\n"
17"- No two tents are adjacent horizontally, vertically _or "
18"diagonally_. "
19"\n"
20"- The number of tents in each row, and in each column, matches the "
21"numbers given round the sides of the grid. "
22"\n"
23"This puzzle can be found in several places on the Internet, and was "
24"brought to my attention by e-mail. I don't know who I should credit "
25"for inventing it. "
26"\n"
27"\n#25.1 Tents controls "
28"\n"
29"Left-clicking in a blank square will place a tent in it. Right-\n"
30"clicking in a blank square will colour it green, indicating that you "
31"are sure it _isn't_ a tent. Clicking either button in an occupied "
32"square will clear it. "
33"\n"
34"If you _drag_ with the right button along a row or column, every "
35"blank square in the region you cover will be turned green, and no "
36"other squares will be affected. (This is useful for clearing the "
37"remainder of a row once you have placed all its tents.) "
38"\n"
39"You can also use the cursor keys to move around the grid. Pressing "
40"the return key over an empty square will place a tent, and pressing "
41"the space bar over an empty square will colour it green; either key "
42"will clear an occupied square. Holding Shift and pressing the cursor "
43"keys will colour empty squares green. Holding Control and pressing "
44"the cursor keys will colour green both empty squares and squares "
45"with tents. "
46"\n"
47"(All the actions described in section 2.1 are also available.) "
48"\n"
49"\n#25.2 Tents parameters "
50"\n"
51"These parameters are available from the `Custom...' option on the "
52"`Type' menu. "
53"\n"
54"_Width_, _Height_ "
55"\n"
56"Size of grid in squares. "
57"\n"
58"_Difficulty_ "
59"\n"
60"Controls the difficulty of the generated puzzle. More difficult "
61"puzzles require more complex deductions, but at present none "
62"of the available difficulty levels requires guesswork or "
63"backtracking. "
64"\n"
65;
66const char quick_help_text[] = "Place a tent next to each tree.";
diff --git a/apps/plugins/puzzles/help/towers.c b/apps/plugins/puzzles/help/towers.c
new file mode 100644
index 0000000000..ad42bd9447
--- /dev/null
+++ b/apps/plugins/puzzles/help/towers.c
@@ -0,0 +1,95 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 31: Towers "
5"\n"
6"You have a square grid. On each square of the grid you can build "
7"a tower, with its height ranging from 1 to the size of the grid. "
8"Around the edge of the grid are some numeric clues. "
9"\n"
10"Your task is to build a tower on every square, in such a way that: "
11"\n"
12"- Each row contains every possible height of tower once "
13"\n"
14"- Each column contains every possible height of tower once "
15"\n"
16"- Each numeric clue describes the number of towers that can be "
17"seen if you look into the square from that direction, assuming "
18"that shorter towers are hidden behind taller ones. For example, "
19"in a 5x5 grid, a clue marked `5' indicates that the five tower "
20"heights must appear in increasing order (otherwise you would "
21"not be able to see all five towers), whereas a clue marked `1' "
22"indicates that the tallest tower (the one marked 5) must come "
23"first. "
24"\n"
25"In harder or larger puzzles, some towers will be specified for you "
26"as well as the clues round the edge, and some edge clues may be "
27"missing. "
28"\n"
29"This puzzle appears on the web under various names, particularly "
30"`Skyscrapers', but I don't know who first invented it. "
31"\n"
32"\n#31.1 Towers controls "
33"\n"
34"Towers shares much of its control system with Solo, Unequal and "
35"Keen. "
36"\n"
37"To play Towers, simply click the mouse in any empty square and then "
38"type a digit on the keyboard to fill that square with a tower of "
39"the given height. If you make a mistake, click the mouse in the "
40"incorrect square and press Space to clear it again (or use the Undo "
41"feature). "
42"\n"
43"If you _right_-click in a square and then type a number, that "
44"number will be entered in the square as a `pencil mark'. You can "
45"have pencil marks for multiple numbers in the same square. A square "
46"containing a tower cannot also contain pencil marks. "
47"\n"
48"The game pays no attention to pencil marks, so exactly what you "
49"use them for is up to you: you can use them as reminders that a "
50"particular square needs to be re-examined once you know more about "
51"a particular number, or you can use them as lists of the possible "
52"numbers in a given square, or anything else you feel like. "
53"\n"
54"To erase a single pencil mark, right-click in the square and type "
55"the same number again. "
56"\n"
57"All pencil marks in a square are erased when you left-click and type "
58"a number, or when you left-click and press space. Right-clicking and "
59"pressing space will also erase pencil marks. "
60"\n"
61"As for Solo, the cursor keys can be used in conjunction with the "
62"digit keys to set numbers or pencil marks. Use the cursor keys to "
63"move a highlight around the grid, and type a digit to enter it in "
64"the highlighted square. Pressing return toggles the highlight into a "
65"mode in which you can enter or remove pencil marks. "
66"\n"
67"Pressing M will fill in a full set of pencil marks in every square "
68"that does not have a main digit in it. "
69"\n"
70"Left-clicking a clue will mark it as done (grey it out), or unmark "
71"it if it is already marked. Holding Control or Shift and pressing an "
72"arrow key likewise marks any clue in the given direction. "
73"\n"
74"(All the actions described in section 2.1 are also available.) "
75"\n"
76"\n#31.2 Towers parameters "
77"\n"
78"These parameters are available from the `Custom...' option on the "
79"`Type' menu. "
80"\n"
81"_Grid size_ "
82"\n"
83"Specifies the size of the grid. Lower limit is 3; upper limit is "
84"9 (because the user interface would become more difficult with "
85"`digits' bigger than 9!). "
86"\n"
87"_Difficulty_ "
88"\n"
89"Controls the difficulty of the generated puzzle. At Unreasonable "
90"level, some backtracking will be required, but the solution "
91"should still be unique. The remaining levels require "
92"increasingly complex reasoning to avoid having to backtrack. "
93"\n"
94;
95const char quick_help_text[] = "Complete the latin square of towers in accordance with the clues.";
diff --git a/apps/plugins/puzzles/help/tracks.c b/apps/plugins/puzzles/help/tracks.c
new file mode 100644
index 0000000000..e60c71afb7
--- /dev/null
+++ b/apps/plugins/puzzles/help/tracks.c
@@ -0,0 +1,59 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 40: Tracks "
5"\n"
6"You are given a grid of squares, some of which are filled with train "
7"tracks. You need to complete the track from A to B so that the "
8"rows and columns contain the same number of track segments as are "
9"indicated in the clues to the top and right of the grid. "
10"\n"
11"There are only straight and 90 degree curved rails, and the track "
12"may not cross itself. "
13"\n"
14"Tracks was contributed to this collection by James Harvey. "
15"\n"
16"\n#40.1 Tracks controls "
17"\n"
18"Left-clicking on an edge between two squares adds a track segment "
19"between the two squares. Right-clicking on an edge adds a cross on "
20"the edge, indicating no track is possible there. "
21"\n"
22"Left-clicking in a square adds a colour indicator showing that "
23"you know the square must contain a track, even if you don't know "
24"which edges it crosses yet. Right-clicking in a square adds a cross "
25"indicating it contains no track segment. "
26"\n"
27"Left- or right-dragging between squares allows you to lay a straight "
28"line of is-track or is-not-track indicators, useful for filling in "
29"rows or columns to match the clue. "
30"\n"
31"(All the actions described in section 2.1 are also available.) "
32"\n"
33"\n#40.2 Tracks parameters "
34"\n"
35"These parameters are available from the `Custom...' option on the "
36"`Type' menu. "
37"\n"
38"_Width_, _Height_ "
39"\n"
40"Size of the grid, in squares. "
41"\n"
42"_Difficulty_ "
43"\n"
44"Controls the difficulty of the generated puzzle: at Tricky "
45"level, you are required to make more deductions regarding "
46"disregarding moves that would lead to impossible crossings "
47"later. "
48"\n"
49"_Disallow consecutive 1 clues_ "
50"\n"
51"Controls whether the Tracks game generation permits two adjacent "
52"rows or columns to have a 1 clue, or permits the row or column "
53"of the track's endpoint to have a 1 clue. By default this is "
54"not permitted, to avoid long straight boring segments of track "
55"and make the games more twiddly and interesting. If you want to "
56"restore the possibility, turn this option off. "
57"\n"
58;
59const char quick_help_text[] = "Fill in the railway track according to the clues.";
diff --git a/apps/plugins/puzzles/help/twiddle.c b/apps/plugins/puzzles/help/twiddle.c
new file mode 100644
index 0000000000..a1684a6654
--- /dev/null
+++ b/apps/plugins/puzzles/help/twiddle.c
@@ -0,0 +1,75 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 7: Twiddle "
5"\n"
6"Twiddle is a tile-rearrangement puzzle, visually similar to Sixteen "
7"(see chapter 6): you are given a grid of square tiles, each "
8"containing a number, and your aim is to arrange the numbers into "
9"ascending order. "
10"\n"
11"In basic Twiddle, your move is to rotate a square group of four "
12"tiles about their common centre. (Orientation is not significant "
13"in the basic puzzle, although you can select it.) On more advanced "
14"settings, you can rotate a larger square group of tiles. "
15"\n"
16"I first saw this type of puzzle in the GameCube game `Metroid "
17"Prime 2'. In the Main Gyro Chamber in that game, there is a puzzle "
18"you solve to unlock a door, which is a special case of Twiddle. I "
19"developed this game as a generalisation of that puzzle. "
20"\n"
21"\n#7.1 Twiddle controls "
22"\n"
23"To play Twiddle, click the mouse in the centre of the square group "
24"you wish to rotate. In the basic mode, you rotate a 2x2 square, "
25"which means you have to click at a corner point where four tiles "
26"meet. "
27"\n"
28"In more advanced modes you might be rotating 3x3 or even more at a "
29"time; if the size of the square is odd then you simply click in the "
30"centre tile of the square you want to rotate. "
31"\n"
32"Clicking with the left mouse button rotates the group anticlockwise. "
33"Clicking with the right button rotates it clockwise. "
34"\n"
35"You can also move an outline square around the grid with the cursor "
36"keys; the square is the size above (2x2 by default, or larger). "
37"Pressing the return key or space bar will rotate the current square "
38"anticlockwise or clockwise respectively. "
39"\n"
40"(All the actions described in section 2.1 are also available.) "
41"\n"
42"\n#7.2 Twiddle parameters "
43"\n"
44"Twiddle provides several configuration options via the `Custom' "
45"option on the `Type' menu: "
46"\n"
47"- You can configure the width and height of the puzzle grid. "
48"\n"
49"- You can configure the size of square block that rotates at a "
50"time. "
51"\n"
52"- You can ask for every square in the grid to be distinguishable "
53"(the default), or you can ask for a simplified puzzle in which "
54"there are groups of identical numbers. In the simplified puzzle "
55"your aim is just to arrange all the 1s into the first row, all "
56"the 2s into the second row, and so on. "
57"\n"
58"- You can configure whether the orientation of tiles matters. If "
59"you ask for an orientable puzzle, each tile will have a triangle "
60"drawn in it. All the triangles must be pointing upwards to "
61"complete the puzzle. "
62"\n"
63"- You can ask for a limited shuffling operation to be performed "
64"on the grid. By default, Twiddle will shuffle the grid so much "
65"that any arrangement is about as probable as any other. You can "
66"override this by requesting a precise number of shuffling moves "
67"to be performed. Typically your aim is then to determine the "
68"precise set of shuffling moves and invert them exactly, so that "
69"you answer (say) a four-move shuffle with a four-move solution. "
70"Note that the more moves you ask for, the more likely it is that "
71"solutions shorter than the target length will turn out to be "
72"possible. "
73"\n"
74;
75const char quick_help_text[] = "Rotate the tiles around themselves to arrange them into order.";
diff --git a/apps/plugins/puzzles/help/undead.c b/apps/plugins/puzzles/help/undead.c
new file mode 100644
index 0000000000..2b8cccc9d6
--- /dev/null
+++ b/apps/plugins/puzzles/help/undead.c
@@ -0,0 +1,88 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 37: Undead "
5"\n"
6"You are given a grid of squares, some of which contain diagonal "
7"mirrors. Every square which is not a mirror must be filled with one "
8"of three types of undead monster: a ghost, a vampire, or a zombie. "
9"\n"
10"Vampires can be seen directly, but are invisible when reflected in "
11"mirrors. Ghosts are the opposite way round: they can be seen in "
12"mirrors, but are invisible when looked at directly. Zombies are "
13"visible by any means. "
14"\n"
15"You are also told the total number of each type of monster in the "
16"grid. Also around the edge of the grid are written numbers, which "
17"indicate how many monsters can be seen if you look into the grid "
18"along a row or column starting from that position. (The diagonal "
19"mirrors are reflective on both sides. If your reflected line of "
20"sight crosses the same monster more than once, the number will count "
21"it each time it is visible, not just once.) "
22"\n"
23"This puzzle type was invented by David Millar, under the name "
24"`Haunted Mirror Maze'. See [20] for more details. "
25"\n"
26"Undead was contributed to this collection by Steffen Bauer. "
27"\n"
28"[20] http://www.janko.at/Raetsel/Spukschloss/index.htm "
29"\n"
30"\n#37.1 Undead controls "
31"\n"
32"Undead has a similar control system to Solo, Unequal and Keen. "
33"\n"
34"To play Undead, click the mouse in any empty square and then type "
35"a letter on the keyboard indicating the type of monster: `G' for "
36"a ghost, `V' for a vampire, or `Z' for a zombie. If you make a "
37"mistake, click the mouse in the incorrect square and press Space to "
38"clear it again (or use the Undo feature). "
39"\n"
40"If you _right_-click in a square and then type a letter, the "
41"corresponding monster will be shown in reduced size in that square, "
42"as a `pencil mark'. You can have pencil marks for multiple monsters "
43"in the same square. A square containing a full-size monster cannot "
44"also contain pencil marks. "
45"\n"
46"The game pays no attention to pencil marks, so exactly what you "
47"use them for is up to you: you can use them as reminders that a "
48"particular square needs to be re-examined once you know more about "
49"a particular monster, or you can use them as lists of the possible "
50"monster in a given square, or anything else you feel like. "
51"\n"
52"To erase a single pencil mark, right-click in the square and type "
53"the same letter again. "
54"\n"
55"All pencil marks in a square are erased when you left-click and type "
56"a monster letter, or when you left-click and press Space. Right-\n"
57"clicking and pressing space will also erase pencil marks. "
58"\n"
59"As for Solo, the cursor keys can be used in conjunction with the "
60"letter keys to place monsters or pencil marks. Use the cursor keys "
61"to move a highlight around the grid, and type a monster letter to "
62"enter it in the highlighted square. Pressing return toggles the "
63"highlight into a mode in which you can enter or remove pencil marks. "
64"\n"
65"If you prefer plain letters of the alphabet to cute monster "
66"pictures, you can press `A' to toggle between showing the monsters "
67"as monsters or showing them as letters. "
68"\n"
69"Left-clicking a clue will mark it as done (grey it out), or unmark "
70"it if it is already marked. "
71"\n"
72"(All the actions described in section 2.1 are also available.) "
73"\n"
74"\n#37.2 Undead parameters "
75"\n"
76"These parameters are available from the `Custom...' option on the "
77"`Type' menu. "
78"\n"
79"_Width_, _Height_ "
80"\n"
81"Size of grid in squares. "
82"\n"
83"_Difficulty_ "
84"\n"
85"Controls the difficulty of the generated puzzle. "
86"\n"
87;
88const char quick_help_text[] = "Place ghosts, vampires and zombies so that the right numbers of them can be seen in mirrors.";
diff --git a/apps/plugins/puzzles/help/unequal.c b/apps/plugins/puzzles/help/unequal.c
new file mode 100644
index 0000000000..45b6b38942
--- /dev/null
+++ b/apps/plugins/puzzles/help/unequal.c
@@ -0,0 +1,107 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 27: Unequal "
5"\n"
6"You have a square grid; each square may contain a digit from 1 to "
7"the size of the grid, and some squares have clue signs between them. "
8"Your aim is to fully populate the grid with numbers such that: "
9"\n"
10"- Each row contains only one occurrence of each digit "
11"\n"
12"- Each column contains only one occurrence of each digit "
13"\n"
14"- All the clue signs are satisfied. "
15"\n"
16"There are two modes for this game, `Unequal' and `Adjacent'. "
17"\n"
18"In `Unequal' mode, the clue signs are greater-than symbols "
19"indicating one square's value is greater than its neighbour's. In "
20"this mode not all clues may be visible, particularly at higher "
21"difficulty levels. "
22"\n"
23"In `Adjacent' mode, the clue signs are bars indicating one square's "
24"value is numerically adjacent (i.e. one higher or one lower) than "
25"its neighbour. In this mode all clues are always visible: absence of "
26"a bar thus means that a square's value is definitely not numerically "
27"adjacent to that neighbour's. "
28"\n"
29"In `Trivial' difficulty level (available via the `Custom' game type "
30"selector), there are no greater-than signs in `Unequal' mode; the "
31"puzzle is to solve the Latin square only. "
32"\n"
33"At the time of writing, the `Unequal' mode of this puzzle is "
34"appearing in the Guardian weekly under the name `Futoshiki'. "
35"\n"
36"Unequal was contributed to this collection by James Harvey. "
37"\n"
38"\n#27.1 Unequal controls "
39"\n"
40"Unequal shares much of its control system with Solo. "
41"\n"
42"To play Unequal, simply click the mouse in any empty square and then "
43"type a digit or letter on the keyboard to fill that square. If you "
44"make a mistake, click the mouse in the incorrect square and press "
45"Space to clear it again (or use the Undo feature). "
46"\n"
47"If you _right_-click in a square and then type a number, that "
48"number will be entered in the square as a `pencil mark'. You can "
49"have pencil marks for multiple numbers in the same square. Squares "
50"containing filled-in numbers cannot also contain pencil marks. "
51"\n"
52"The game pays no attention to pencil marks, so exactly what you "
53"use them for is up to you: you can use them as reminders that a "
54"particular square needs to be re-examined once you know more about "
55"a particular number, or you can use them as lists of the possible "
56"numbers in a given square, or anything else you feel like. "
57"\n"
58"To erase a single pencil mark, right-click in the square and type "
59"the same number again. "
60"\n"
61"All pencil marks in a square are erased when you left-click and type "
62"a number, or when you left-click and press space. Right-clicking and "
63"pressing space will also erase pencil marks. "
64"\n"
65"As for Solo, the cursor keys can be used in conjunction with the "
66"digit keys to set numbers or pencil marks. You can also use the `M' "
67"key to auto-fill every numeric hint, ready for removal as required, "
68"or the `H' key to do the same but also to remove all obvious hints. "
69"\n"
70"Alternatively, use the cursor keys to move the mark around the grid. "
71"Pressing the return key toggles the mark (from a normal mark to a "
72"pencil mark), and typing a number in is entered in the square in the "
73"appropriate way; typing in a 0 or using the space bar will clear a "
74"filled square. "
75"\n"
76"Left-clicking a clue will mark it as done (grey it out), or unmark "
77"it if it is already marked. Holding Control or Shift and pressing "
78"an arrow key likewise marks any clue adjacent to the cursor in the "
79"given direction. "
80"\n"
81"(All the actions described in section 2.1 are also available.) "
82"\n"
83"\n#27.2 Unequal parameters "
84"\n"
85"These parameters are available from the `Custom...' option on the "
86"`Type' menu. "
87"\n"
88"_Mode_ "
89"\n"
90"Mode of the puzzle (`Unequal' or `Adjacent') "
91"\n"
92"_Size (s*s)_ "
93"\n"
94"Size of grid. "
95"\n"
96"_Difficulty_ "
97"\n"
98"Controls the difficulty of the generated puzzle. At Trivial "
99"level, there are no greater-than signs; the puzzle is to solve "
100"the Latin square only. At Recursive level (only available via "
101"the `Custom' game type selector) backtracking will be required, "
102"but the solution should still be unique. The levels in between "
103"require increasingly complex reasoning to avoid having to "
104"backtrack. "
105"\n"
106;
107const char quick_help_text[] = "Complete the latin square in accordance with the > signs.";
diff --git a/apps/plugins/puzzles/help/unruly.c b/apps/plugins/puzzles/help/unruly.c
new file mode 100644
index 0000000000..78239d1b25
--- /dev/null
+++ b/apps/plugins/puzzles/help/unruly.c
@@ -0,0 +1,55 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 38: Unruly "
5"\n"
6"You are given a grid of squares, which you must colour either black "
7"or white. Some squares are provided as clues; the rest are left for "
8"you to fill in. Each row and column must contain the same number "
9"of black and white squares, and no row or column may contain three "
10"consecutive squares of the same colour. "
11"\n"
12"This puzzle type was invented by Adolfo Zanellati, under the name "
13"`Tohu wa Vohu'. See [21] for more details. "
14"\n"
15"Unruly was contributed to this collection by Lennard Sprong. "
16"\n"
17"[21] http://www.janko.at/Raetsel/Tohu-Wa-Vohu/index.htm "
18"\n"
19"\n#38.1 Unruly controls "
20"\n"
21"To play Unruly, click the mouse in a square to change its colour. "
22"Left-clicking an empty square will turn it black, and right-clicking "
23"will turn it white. Keep clicking the same button to cycle through "
24"the three possible states for the square. If you middle-click in a "
25"square it will be reset to empty. "
26"\n"
27"You can also use the cursor keys to move around the grid. Pressing "
28"the return or space keys will turn an empty square black or white "
29"respectively (and then cycle the colours in the same way as the "
30"mouse buttons), and pressing Backspace will reset a square to empty. "
31"\n"
32"(All the actions described in section 2.1 are also available.) "
33"\n"
34"\n#38.2 Unruly parameters "
35"\n"
36"These parameters are available from the `Custom...' option on the "
37"`Type' menu. "
38"\n"
39"_Width_, _Height_ "
40"\n"
41"Size of grid in squares. (Note that the rules of the game "
42"require both the width and height to be even numbers.) "
43"\n"
44"_Difficulty_ "
45"\n"
46"Controls the difficulty of the generated puzzle. "
47"\n"
48"_Unique rows and columns_ "
49"\n"
50"If enabled, no two rows are permitted to have exactly the same "
51"pattern, and likewise columns. (A row and a column can match, "
52"though.) "
53"\n"
54;
55const char quick_help_text[] = "Fill in the black and white grid to avoid runs of three.";
diff --git a/apps/plugins/puzzles/help/untangle.c b/apps/plugins/puzzles/help/untangle.c
new file mode 100644
index 0000000000..e0f2f4447e
--- /dev/null
+++ b/apps/plugins/puzzles/help/untangle.c
@@ -0,0 +1,33 @@
1/* auto-generated by genhelp.sh */
2/* DO NOT EDIT! */
3const char help_text[] =
4"#Chapter 18: Untangle "
5"\n"
6"You are given a number of points, some of which have lines drawn "
7"between them. You can move the points about arbitrarily; your aim is "
8"to position the points so that no line crosses another. "
9"\n"
10"I originally saw this in the form of a Flash game called Planarity "
11"[7], written by John Tantalo. "
12"\n"
13"[7] http://planarity.net "
14"\n"
15"\n#18.1 Untangle controls "
16"\n"
17"To move a point, click on it with the left mouse button and drag it "
18"into a new position. "
19"\n"
20"(All the actions described in section 2.1 are also available.) "
21"\n"
22"\n#18.2 Untangle parameters "
23"\n"
24"There is only one parameter available from the `Custom...' option on "
25"the `Type' menu: "
26"\n"
27"_Number of points_ "
28"\n"
29"Controls the size of the puzzle, by specifying the number of "
30"points in the generated graph. "
31"\n"
32;
33const char quick_help_text[] = "Reposition the points so that the lines do not cross.";