Man Linux: Main Page and Category List


       blackboxgame - guessing game


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

       blackboxgame --version


       (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 positioned at the edges  of
       the arena and observing how their beams are deflected.

       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:

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

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

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

              A   beam  that  would  re-emerge  from  its  entry  location  is
              considered to be â.IP "â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  â.PP  Beams  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  beams;  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 beam behaviours shown above:


       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 â.PP 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):


       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  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

       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.

       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  square  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  fire  a  laser  or add a new ball-location guess, and
       pressing Space will lock a cell, row, or 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 check 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 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
checkâ button), and red text marks any laser you could have fired in order to distinguish your ball layout from the correct one.
       layout (just as when you press the  â.PP  (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
       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

       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
 it’s hard to think of a sensible printable representation of Fifteen!)
              course â.IP "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

              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

              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
       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

              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

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:


              --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.

                     Prints version  information  about  the  game,  and  then

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

                     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.

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


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