Provided by: sgt-puzzles_8605-1ubuntu1_i386 bug

NAME

       blackboxgame ‐ guessing game

SYNOPSIS

       blackboxgame [--generate n] [--print wxh [--with-solutions] [--scale n]
       [--colour]] [game-parameters|game-ID|random-seed]

       blackboxgame --version

DESCRIPTION

       (Note: the Debian version of this game is called blackboxgame to  avoid
       clashing with the window manager blackbox.)

       A number of balls are hidden in a rectangular arena. You have to deduce
       the positions of the balls by firing lasers from positions on the  edge
       of the arena and observing how they are deflected.

       Lasers will fire straight until they hit the opposite side of the arena
       (at which point they emerge), unless affected by balls in  one  of  the
       following ways:

                                                                         â.
              A  laser that hits a ball head-on is absorbed and will never re-
              emerge. This includes lasers that meet a ball on the first  rank
              of the arena.

                                                                         â.
              A  laser  with a ball to its front-left square gets deflected 90
              degrees to the right.

                                                                         â.
              A laser with a ball to its  front-right  square  gets  similarly
              deflected to the left.

                                                                         â.
              A  laser  that  would  re-emerge  from  the  entry  location  is
reflectedâ.
"
              considered to be â.IP "âA laser which would get deflected before
              entering  the  arena  (down  the  â.PP Lasers that are reflected
              appear as a â.PP You can place guesses as to the location of the
              balls,  based on the entry and exit patterns of the lasers; once
              you have placed enough balls a button appears  enabling  you  to
              have your guesses checked.

       Here is a diagram showing how the positions of balls can create each of
       the laser behaviours shown above:

        1RHR‐‐‐‐
       |..O.O...|
       2........3
       |........|
       |........|
       3........|
       |......O.|
       H........|
       |.....O..|
        12‐RH‐‐‐

       As shown, it is possible for a ball  to  receive  multiple  reflections
       before  re-emerging  (see  turn  3). Similarly, a ball may be reflected
       (possibly more than once) before receiving a hit (the  â.PP  Note  that
       any  layout  with more that 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):

        ‐‐‐‐‐‐‐‐
       |........|
       |........|
       |..O..O..|
       |...xx...|
       |...xx...|
       |..O..O..|
       |........|
       |........|
        ‐‐‐‐‐‐‐‐

       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.

       Black Box was contributed to this collection by James Harvey.

Black Box controls

       To fire a laser, left-click in a square around the side of  the  arena.
       The  results  will  be  displayed  immediately. Lasers may not be fired
       twice (because the results will never change). Holding  down  the  left
       button  will highlight the current go (or a previous go) to confirm the
       exit point for that laser, if applicable.

       To guess the location of a ball, left-click  within  the  arena  and  a
       black  circle will appear marking the guess; to remove the guessed ball
       click again.

       Locations in the arena may be locked  against  modification  by  right-
       clicking;  whole  rows  and  columns  may be similarly locked by right-
       clicking in the laser firing range above/below that column, or  to  the
       left/right of that row.

       The  cursor keys may also be used to move around the grid. Pressing the
       Enter key will add a new ball-location guess, and pressing  Space  will
       lock a cell or a row/column.

       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 mark your guesses.
       If  you  click  the  â.PP  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 are displayed as filled black circles with red
       crosses,  and  missing balls are 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 mark button), and red
       text marks any laser you could have fired in order to distinguish  your
       ball layout from the right one.

       (All the actions described below are also available.)

Black Box parameters

       These  parameters  are  available from the â.IP "Width, Height" Size of
       grid in squares. There are 2 à Width à Height lasers per grid, two  per
       row and two per column.

       No. of balls
              Number  of  balls  to  place  in  the grid. This can be a single
              number, or a range (separated with a hyphen, like  â.SH  "Common
              actions"
       These  actions are all available from the â.PP (On Mac OS X, to conform
       with local user interface standards, these actions are situated on  the
       â.IP "New game (âStarts a new game, with a random initial state.

       Restart game
              Resets  the  current  game  to  its  initial state. (This can be
              undone.)

       Load   Loads a saved game from a file on disk.

       Save   Saves the current state of your game to a file on disk.

              The Load and Save operations preserve your entire  game  history
              (so you can save, reload, and still Undo and Redo things you had
              done before saving).

       Print  Where supported (currently only on Windows), brings up a  dialog
              allowing  you  to  print an arbitrary number of puzzles randomly
              generated from the current parameters, optionally including  the
              current  puzzle. (Only for puzzles which make sense to print, of
              course  -  it’s  hard  to  think   of   a   sensible   printable
              representation of Fifteen!)

       Uâ, Ctrl+âZâ, Ctrl+â_â)                                            Undo
       (â.
              Undoes a single move. (You can undo moves back to the  start  of
              the session.)

       Râ, Ctrl+âRâ)                                                      Redo
       (â.
              Redoes a previously undone move.

       Copy   Copies the current state of your game to the clipboard  in  text
              format,  so that you can paste it into (say) an e-mail client or
              a web message board if you’re discussing the game  with  someone
              else. (Not all games support this feature.)

       Solve  Transforms  the puzzle instantly into its solved state. For some
              games (Cube) this feature is not supported at all because it  is
              of  no  particular  use.  For other games (such as Pattern), the
              solved state can be used to give you information, if  you  can’t
              see  how  a  solution can exist at all or you want to know where
              you made a mistake. For still other  games  (such  as  Sixteen),
              automatic  solution  tells  you  nothing about how to get to the
              solution, but it does provide a useful way to get there  quickly
              so   that   you   can   experiment   with  set-piece  moves  and
              transformations.

              Some games (such as Solo) are capable of solving a game  ID  you
              have  typed  in from elsewhere. Other games (such as Rectangles)
              cannot solve a game ID they didn’t  invent  themself,  but  when
              they  did  invent  the  game  ID  they know what the solution is
              already. Still other games (Pattern)  can  solve  some  external
              game IDs, but only if they aren’t too difficult.
              The â.RE

              Qâ,
              Ctrl+âQâ)
              Quit (â.
                     Closes the application entirely.

Specifying games with the game ID

       There  are  two  ways  to save a game specification out of a puzzle and
       recreate it later, or recreate it in somebody else’s copy of  the  same
       puzzle.
       The  â.PP  You  can  enter either of these pieces of text back into the
       program (via the same â.PP The difference between the two forms is that
       a  descriptive game ID is a literal description of the initial state of
       the game, whereas a random seed is just a piece of arbitrary text which
       was provided as input to the random number generator used to create the
       puzzle. This means that:

                                                                         â.
              Descriptive game IDs tend to be longer in many puzzles (although
              some,   such   as   Cube   (cube(6)),   only   need  very  short
              descriptions). So a random seed is often a quicker way  to  note
              down  the  puzzle  you’re  currently  playing,  or to tell it to
              somebody else so they can play the same one as you.

                                                                         â.
              Any text at all  is  a  valid  random  seed.  The  automatically
              generated  ones are fifteen-digit numbers, but anything will do;
              you can type in your full name, or a word you just made up,  and
              a  valid  puzzle  will be generated from it. This provides a way
              for two or more people to race to complete the same puzzle:  you
              think  of  a random seed, then everybody types it in at the same
              time, and nobody  has  an  advantage  due  to  having  seen  the
              generated puzzle before anybody else.

                                                                         â.
              It is often possible to convert puzzles from other sources (such
"
              as â.IP "âRandom seeds are not guaranteed to  produce  the  same
              result  if  you  use them with a different version of the puzzle
              program. This is because the  generation  algorithm  might  have
              been  improved  or  modified  in later versions of the code, and
              will therefore produce a different result when  given  the  same
              sequence  of  random  numbers.  Use a descriptive game ID if you
              aren’t sure that it will be used on  the  same  version  of  the
              program as yours.
              (Use the â.RE

              A  descriptive game ID starts with a piece of text which encodes
              the parameters of the current game (such  as  grid  size).  Then
              there  is  a  colon,  and  after  that is the description of the
              game’s initial state. A random seed starts with a similar string
              of  parameters,  but  then  it  contains a hash sign followed by
              arbitrary data.

              If you enter a descriptive game ID, the program will not be able
              to  show you the random seed which generated it, since it wasn’t
              generated from a random  seed.  If  you  enter  a  random  seed,
              however,  the  program  will be able to show you the descriptive
              game ID derived from that random seed.

              Note that the game parameter strings are  not  always  identical
              between  the  two forms. For some games, there will be parameter
              data provided with the random seed which is not included in  the
              descriptive  game ID. This is because that parameter information
              is only relevant  when  generating  puzzle  grids,  and  is  not
              important  when  playing them. Thus, for example, the difficulty
              level in Solo (solo(6)) is not mentioned in the descriptive game
              ID.

              These  additional parameters are also not set permanently if you
              type in a game ID. For example, suppose you  have  Solo  set  to
              â.SH  "The â.PP The â.PP The â.SH "Specifying game parameters on
              the command line"

              (This section does not apply to the Mac OS X version.)

              The games in this  collection  deliberately  do  not  ever  save
              information  on  to  the computer they run on: they have no high
              score tables and no saved preferences. (This is because I expect
              at least some people to play them at work, and those people will
              probably appreciate leaving as little evidence as possible!)

              However, if you do want to arrange for one  of  these  games  to
              default  to a particular set of parameters, you can specify them
              on the command line.

              The easiest way to do this is to set up the parameters you  want
              using the â.PP If you run the game with just that parameter text
              on the command line, it will start  up  with  the  settings  you
              specified.

Octahedronâ from the âTypeâ menu, and then go to the game ID selection, you will see a string of the form âo2x2#338686542711620â. Take only the part before the hash (âo2x2â), and start Cube with that text on the command line: âcube o2x2â.
              For  example:  if you run Cube (see cube(6)), select â.PP If you
              copy the entire game ID on to the command line,  the  game  will
              start  up  in  the  specific  game  that  was described. This is
              occasionally a more convenient way to start a particular game ID
              than by pasting it into the game ID selection box.
              (You  could  also retrieve the encoded game parameters using the
              â.SH "Unix command-line options"

              (This section only applies to the Unix port.)

              In addition to being able to  specify  game  parameters  on  the
              command line (see above), there are various other options:

              --game

              --load These options respectively determine whether the command-
                     line argument is treated as specifying game parameters or
                     a  save  file  to  load. Only one should be specified. If
                     neither of these options is specified, a  guess  is  made
                     based on the format of the argument.

              --generate n
                     If  this  option  is specified, instead of a puzzle being
                     displayed, a number  of  descriptive  game  IDs  will  be
                     invented  and  printed on standard output. This is useful
                     for gaining access  to  the  game  generation  algorithms
                     without necessarily using the frontend.

                     If  game  parameters  are  specified on the command-line,
                     they will be used to generate the game IDs;  otherwise  a
                     default set of parameters will be used.

                     The most common use of this option is in conjunction with
                     --print,  in  which  case  its  behaviour   is   slightly
                     different; see below.

              --print wxh
                     If  this  option  is specified, instead of a puzzle being
                     displayed,  a  printed  representation  of  one  or  more
                     unsolved   puzzles   is   sent  to  standard  output,  in
                     PostScript format.

                     On each page of puzzles, there will be  w  across  and  h
                     down.  If  there are more puzzles than wÃh, more than one
                     page will be printed.

                     If --generate has also been specified, the invented  game
                     IDs   will  be  used  to  generate  the  printed  output.
                     Otherwise, a list of game IDs  is  expected  on  standard
                     input  (which  can  be  descriptive  or random seeds; see
                     above), in the same format produced by --generate.

                     For example:

                     net ‐‐generate 12 ‐‐print 2x3 7x7w | lpr

                     will generate two pages of printed Net puzzles  (each  of
                     which will have a 7Ã7 wrapping grid), and pipe the output
                     to the lpr command, which on many systems will send  them
                     to an actual printer.

                     There  are  various  other options which affect printing;
                     see below.

              --save file-prefix [ --save-suffix file-suffix ]
                     If this option is specified, instead of  a  puzzle  being
                     displayed,  saved-game  files  for  one  or more unsolved
                     puzzles  are  written  to  files  constructed  from   the
                     supplied prefix and/or suffix.

                     If  --generate has also been specified, the invented game
                     IDs  will  be  used  to  generate  the  printed   output.
                     Otherwise,  a  list  of  game IDs is expected on standard
                     input (which can be  descriptive  or  random  seeds;  see
                     above), in the same format produced by --generate.

                     For example:

                     net ‐‐generate 12 ‐‐save game ‐‐save‐suffix .sav

                     will  generate twelve Net saved-game files with the names
                     game0.sav to game11.sav.

              --version
                     Prints version  information  about  the  game,  and  then
                     quits.

              The  following  options  are  only meaningful if --print is also
              specified:

              --with-solutions
                     The set of pages filled with  unsolved  puzzles  will  be
                     followed by the solutions to those puzzles.

              --scale n
                     Adjusts  how  big  each  puzzle  is  when printed. Larger
                     numbers make puzzles bigger; the default is 1.0.

              --colour
                     Puzzles will be printed in colour, rather than  in  black
                     and white (if supported by the puzzle).

SEE ALSO

       Full documentation in /usr/share/doc/sgt‐puzzles/puzzles.txt.gz.