summaryrefslogtreecommitdiff
path: root/apps/plugins/puzzles/help/blackbox.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/puzzles/help/blackbox.c')
-rw-r--r--apps/plugins/puzzles/help/blackbox.c150
1 files changed, 150 insertions, 0 deletions
diff --git a/apps/plugins/puzzles/help/blackbox.c b/apps/plugins/puzzles/help/blackbox.c
new file mode 100644
index 0000000..359dd61
--- /dev/null
+++ b/apps/plugins/puzzles/help/blackbox.c
@@ -0,0 +1,150 @@
+/* auto-generated by genhelp.sh */
+/* DO NOT EDIT! */
+const char help_text[] =
+"#Chapter 19: Black Box "
+"\n"
+"A number of balls are hidden in a rectangular arena. You have to "
+"deduce the positions of the balls by firing lasers positioned at the "
+"edges of the arena and observing how their beams are deflected. "
+"\n"
+"Beams will travel straight from their origin until they hit the "
+"opposite side of the arena (at which point they emerge), unless "
+"affected by balls in one of the following ways: "
+"\n"
+"- A beam that hits a ball head-on is absorbed and will never re-\n"
+"emerge. This includes beams that meet a ball on the first rank "
+"of the arena. "
+"\n"
+"- A beam with a ball in its front-left square and no ball ahead of "
+"it gets deflected 90 degrees to the right. "
+"\n"
+"- A beam with a ball in its front-right square and no ball ahead "
+"of it gets similarly deflected to the left. "
+"\n"
+"- A beam that would re-emerge from its entry location is "
+"considered to be `reflected'. "
+"\n"
+"- A beam which would get deflected before entering the arena by a "
+"ball to the front-left or front-right of its entry point is also "
+"considered to be `reflected'. "
+"\n"
+"Beams that are reflected appear as a `R'; beams that hit balls head-\n"
+"on appear as `H'. Otherwise, a number appears at the firing point "
+"and the location where the beam emerges (this number is unique to "
+"that shot). "
+"\n"
+"You can place guesses as to the location of the balls, based on the "
+"entry and exit patterns of the beams; once you have placed enough "
+"balls a button appears enabling you to have your guesses checked. "
+"\n"
+"Here is a diagram showing how the positions of balls can create each "
+"of the beam behaviours shown above: "
+"\n"
+"1RHR----\n"
+"|..O.O...|\n"
+"2........3\n"
+"|........|\n"
+"|........|\n"
+"3........|\n"
+"|......O.|\n"
+"H........|\n"
+"|.....O..|\n"
+"12-RR---\n"
+"\n"
+"As shown, it is possible for a beam to receive multiple reflections "
+"before re-emerging (see turn 3). Similarly, a beam may be reflected "
+"(possibly more than once) before receiving a hit (the `H' on the "
+"left side of the example). "
+"\n"
+"Note that any layout with more than 4 balls may have a non-unique "
+"solution. The following diagram illustrates this; if you know the "
+"board contains 5 balls, it is impossible to determine where the "
+"fifth ball is (possible positions marked with an x): "
+"\n"
+"--------\n"
+"|........|\n"
+"|........|\n"
+"|..O..O..|\n"
+"|...xx...|\n"
+"|...xx...|\n"
+"|..O..O..|\n"
+"|........|\n"
+"|........|\n"
+"--------\n"
+"\n"
+"For this reason, when you have your guesses checked, the game "
+"will check that your solution _produces the same results_ as the "
+"computer's, rather than that your solution is identical to the "
+"computer's. So in the above example, you could put the fifth ball at "
+"_any_ of the locations marked with an x, and you would still win. "
+"\n"
+"Black Box was contributed to this collection by James Harvey. "
+"\n"
+"\n#19.1 Black Box controls "
+"\n"
+"To fire a laser beam, left-click in a square around the edge of "
+"the arena. The results will be displayed immediately. Clicking or "
+"holding the left button on one of these squares will highlight the "
+"current go (or a previous go) to confirm the exit point for that "
+"laser, if applicable. "
+"\n"
+"To guess the location of a ball, left-click within the arena and a "
+"black circle will appear marking the guess; click again to remove "
+"the guessed ball. "
+"\n"
+"Locations in the arena may be locked against modification by right-\n"
+"clicking; whole rows and columns may be similarly locked by right-\n"
+"clicking in the laser square above/below that column, or to the "
+"left/right of that row. "
+"\n"
+"The cursor keys may also be used to move around the grid. Pressing "
+"the Enter key will fire a laser or add a new ball-location guess, "
+"and pressing Space will lock a cell, row, or column. "
+"\n"
+"When an appropriate number of balls have been guessed, a button will "
+"appear at the top-left corner of the grid; clicking that (with mouse "
+"or cursor) will check your guesses. "
+"\n"
+"If you click the `check' button and your guesses are not correct, "
+"the game will show you the minimum information necessary to "
+"demonstrate this to you, so you can try again. If your ball "
+"positions are not consistent with the beam paths you already know "
+"about, one beam path will be circled to indicate that it proves you "
+"wrong. If your positions match all the existing beam paths but are "
+"still wrong, one new beam path will be revealed (written in red) "
+"which is not consistent with your current guesses. "
+"\n"
+"If you decide to give up completely, you can select Solve to reveal "
+"the actual ball positions. At this point, correctly-placed balls "
+"will be displayed as filled black circles, incorrectly-placed balls "
+"as filled black circles with red crosses, and missing balls as "
+"filled red circles. In addition, a red circle marks any laser you "
+"had already fired which is not consistent with your ball layout "
+"(just as when you press the `check' button), and red text marks "
+"any laser you _could_ have fired in order to distinguish your ball "
+"layout from the correct one. "
+"\n"
+"(All the actions described in section 2.1 are also available.) "
+"\n"
+"\n#19.2 Black Box parameters "
+"\n"
+"These parameters are available from the `Custom...' option on the "
+"`Type' menu. "
+"\n"
+"_Width_, _Height_ "
+"\n"
+"Size of grid in squares. There are 2 x _Width_ x _Height_ lasers "
+"per grid, two per row and two per column. "
+"\n"
+"_No. of balls_ "
+"\n"
+"Number of balls to place in the grid. This can be a single "
+"number, or a range (separated with a hyphen, like `2-6'), "
+"and determines the number of balls to place on the grid. "
+"The `reveal' button is only enabled if you have guessed an "
+"appropriate number of balls; a guess using a different number "
+"to the original solution is still acceptable, if all the beam "
+"inputs and outputs match. "
+"\n"
+;
+const char quick_help_text[] = "Find the hidden balls in the box by bouncing laser beams off them.";