diff options
Diffstat (limited to 'apps/plugins/puzzles/help')
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! */ | ||
3 | const 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 | ; | ||
150 | const 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! */ | ||
3 | const 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 | ; | ||
144 | const 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! */ | ||
3 | const 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 | ; | ||
58 | const 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! */ | ||
3 | const 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 | ; | ||
62 | const 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! */ | ||
3 | const 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 | ; | ||
38 | const 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! */ | ||
3 | const 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 | ; | ||
50 | const 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! */ | ||
3 | const 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 | ; | ||
49 | const 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! */ | ||
3 | const 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 | ; | ||
66 | const 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! */ | ||
3 | const 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 | ; | ||
66 | const 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! */ | ||
3 | const 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 | ; | ||
92 | const 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! */ | ||
3 | const 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 | ; | ||
61 | const 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! */ | ||
3 | const 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 | ; | ||
108 | const 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! */ | ||
3 | const 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 | ; | ||
82 | const 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! */ | ||
3 | const 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 | ; | ||
69 | const 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! */ | ||
3 | const 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 | ; | ||
76 | const 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! */ | ||
3 | const 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 | ; | ||
90 | const 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! */ | ||
3 | const 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 | ; | ||
98 | const 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! */ | ||
3 | const 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 | ; | ||
108 | const 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! */ | ||
3 | const 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 | ; | ||
20 | const 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! */ | ||
3 | const 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 | ; | ||
43 | const 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! */ | ||
3 | const 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 | ; | ||
56 | const 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! */ | ||
3 | const 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 | ; | ||
70 | const 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! */ | ||
3 | const 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 | ; | ||
52 | const 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! */ | ||
3 | const 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 | ; | ||
62 | const 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! */ | ||
3 | const 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 | ; | ||
93 | const 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! */ | ||
3 | const 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 | ; | ||
76 | const 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! */ | ||
3 | const 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 | ; | ||
80 | const 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! */ | ||
3 | const 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 | ; | ||
51 | const 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! */ | ||
3 | const 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 | ; | ||
62 | const 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! */ | ||
3 | const 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 | ; | ||
66 | const 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! */ | ||
3 | const 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 | ; | ||
137 | const 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! */ | ||
3 | const 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 | ; | ||
66 | const 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! */ | ||
3 | const 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 | ; | ||
95 | const 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! */ | ||
3 | const 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 | ; | ||
59 | const 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! */ | ||
3 | const 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 | ; | ||
75 | const 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! */ | ||
3 | const 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 | ; | ||
88 | const 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! */ | ||
3 | const 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 | ; | ||
107 | const 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! */ | ||
3 | const 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 | ; | ||
55 | const 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! */ | ||
3 | const 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 | ; | ||
33 | const char quick_help_text[] = "Reposition the points so that the lines do not cross."; | ||