1 REVE 
An othello game.

SYNOPSIS
   $ reve [ -animate ] [ -bestmove ] [ -black ] [ -clock ]  [  -d
     difficulty ] [ -e edgefile ] [ -g geometry ] [ -h helpfile ]
     [ -help ] [ -i ] [ -last ] [ -load gamefile ] [ -log ] [  -m
     ]  [ -notes ] [ -number ] [ -opponent user@host ] [ -props ]
     [ -quick ] [ -r reve_proc ] [ -v ] [ -white ] [ -? ] [ -Wi ]
     [ -Wp x y ] [ -WP x y ]

2 DESCRIPTION
     Reve is a version of the popular Othello game.  It  contains
     graphical  interfaces for SunView, X11 and XView, as well as
     being able to function on normal display terminals  using  a
     termcap interface.

     Reve is played on an 8 x 8 board, with stones  which  should
     be  considered  to  be  black  on  one side and white on the
     other. A legal move consists of placing a stone of one's own
     color  on  the  board  so  as to "sandwich" one or more rows
     (orthogonal or diagonal) of stones  of  the  opposite  color
     between  the stone just placed and another stone of the same
     color. All stones so sandwiched are flipped over  to  reveal
     the color of the other side (your own color).

     The object of the game, is to  have  more  stones  than  the
     opponent  at the end of the game (ie. when the board is full
     or neither side has a legal move).  If  you  have  no  legal
     move, you simply miss a turn.  Black goes first.

     With reve, to place one of your own stones simply click with
     the  mouse  over  the square in which you want your stone to
     go. Note that it is also possible to supply a number  and  a
     letter pair, to indicate where you would like your new stone
     to go. This is the only method to place stones with the dumb
     tty  interface.  The square containing the last move will be
     shown with a black outline. This is updated  with  each  new
     move.  If  you hold the mouse button down as you move around
     the board,  the  square  you  are  currently  over  will  be
     highlighted.

     There are various buttons, choice, toggles and cyclic selec-
     tions  available.   Their  meanings are given below, plus an
     indication of their keyboard equivalents.  With  the  cyclic
     selections,  clicking  over  the left half of the cycle item
     increments the selection, and clicking over the  right  half
     of  the  cycle item decrements the selection. Control-l is a
     keyboard accelerator for redrawing the reve windows.

     By default, a human will play black, and the  computer  will
     play  white.  If  you  want a human vs human startup or some
     other combination, then you should use the appropriate  com-
     mand line options (see below).

2 REVE_BUTTONS
     With the graphics versions, there are ten buttons  that  are
     normally  displayed  at  the top of the reve window. Each of
     these buttons, has a keyboard equivalent which is  given  in
     brackets  below.  Note that the XView version has a slightly
     different appearance, but it should be easy to  deduce  what
     each option does.

     load [ L ]        Load a game file. The format of this  game
                       file  is  given  below. With the graphical
                       versions,  a  text  field   is   displayed
                       between  the done and quit buttons for you
                       to enter the filename of this  game  file.
                       Clicking  over the cancel button or press-
                       ing the Escape key will  cancel  the  load
                       operation.  When you press the Return key,
                       filename entry is complete, and  the  pro-
                       gram  will  try to load this file. If it's
                       unsuccessful, it will stop on the  invalid
                       line,  and  display  an  error message. As
                       each line is successfully  read  from  the
                       game  file,  the stone is displayed on the
                       board, and the appropriate stones flipped.

     moves? [ A ]      Show all the valid moves for  the  current
                       board.  This  is useful for beginners, and
                       for teaching purposes.

     new game [ n ]    Start a new game of reve

     help [ H ]        Display a  window  containing  the  online
                       reve  help information. A cycle at the top
                       of this window allows you to page  through
                       this file.

     redo [ r ]        Redo the last "move". If the  opponent  is
                       the computer, then two "moves" are redone.
                       A "move" is considered to be all  consecu-
                       tive  moves  by  the  opponent.  To redo a
                       move, you must have undone a move.

     props [ p ]       Display  a   property   sheet   containing
                       choices and toggles which will alter vari-
                       ous reve properties.

     save [ S ]        Save the current game  to  file.  See  the
                       entry   for  the  load  button  above  for
                       details of how to enter the filename.

     suggest [ s ]     Let the computer suggest a good  move  for
                       you.  This move will be dependent upon the
                       current level of difficulty set.

     print [ P ]       Print the current  game  to  a  PostScript
                       printer.  The  default  print  command  is
                       "trans | lpr", but this can be over-ridden
                       for  the  X11 and XView versions with an X
                       resource (see below).

     undo [ u ]        Undo the last "move". If the  opponent  is
                       the computer, then two "moves" are undone.
                       A "move" is considered to be all  previous
                       consecutive moves by the opponent.

     quit [ q ]        Exit the reve program.

2 REVE_PROPERTY_SHEET_SELECTIONS
     With the graphical versions, there is a property sheet  win-
     dow  which  can  be  displayed.  The  property sheet has two
     choice items, one cyclic item, and six toggle  items.  Click
     with the left mouse button over the option you want from the
     choice items. With the cyclic items,  click  with  the  left
     mouse  button over the appropriate half, to either increment
     or decrement the current value.  Clicking left over the tog-
     gle  item  boxes,  will  toggle the value of that item on or
     off.   The  choice  and  toggle  items  also  have  keyboard
     equivalents  which  are  given in brackets below. The choice
     items must be followed by the value of the new selection you
     wish  to  make.  The  dumb tty version has the equivalent of
     these items  displayed  to  the  right  of  the  reve  board
     display.

     Computer plays: [ C ]
                       A choice item which selects what  color[s]
                       the  computer  should  play.  The keyboard
                       equivalents are 'b'  for  black,  'w'  for
                       white,  'n'  for  neither, and 'a' for all
                       (both).

     Difficulty: [ D ] A choice item which  sets  the  degree  of
                       difficulty  for the computers moves.  Key-
                       board selection values are  in  the  range
                       '1'  to  '9'.  The computer move is deter-
                       mined on a time basis. The degree of  dif-
                       ficulty  determines  the  total  amount of
                       time that the computer will take  to  make
                       all  its  moves. Here are the time periods
                       for each level of difficulty:

          Difficulty     Time
          1         Time allocation disabled (fast simple move).
          2         1 minutes.
          3         3 minutes.
          4         5 minutes.
          5         10 minutes.
          6         15 minutes.
          7         20 minutes.
          8         30 minutes.
          9         60 minutes.

     Level eight is tournament level.

     Set search depth: [ No keyboard equivalent ]
                       A  cyclic  item  which  sets  the  maximum
                       search  depth  for each and every computer
                       move. By default  this  option  is  turned
                       off, and the computer uses a clock to time
                       it's moves. Depending on where in the game
                       you  are,  the search depth usually varies
                       by one or two plys. Turning on this option
                       disables the clock.

     Animate move option. [ O followed by a or A ]
                       A toggle item for animating  the  computer
                       move and the dragging of human pieces.

     Show current best move option. [ O followed by b or B ]
                       A toggle item for showing the current best
                       move as the computer makes it's move.

     Show last move option. [ O followed by l or L ]
                       A toggle item  for  outlining  the  square
                       containing the last move.

     Show evaluation information option. [ O followed by e or E ]
                       A toggle item  for  displaying  evaluation
                       information  for  each  computer  move. In
                       short, a positive number indicates a  good
                       move  for  the  computer,  and  a negative
                       number  is  good  for  the  opponent.  The
                       evaluation  information  also includes the
                       depth to which the computer  searched  for
                       it's  move.  If  that depth value is nega-
                       tive, it indicates the search was not com-
                       pleted  at  that  depth,  due to the timer
                       expiring.

     Number last move option. [ O followed by n or N ]
                       A toggle item for  number  the  last  move
                       stone.

     Don't show flip option. [ O followed by f or F ]

                       A toggle item to prevent the flip  of  the
                       stones as a turn is completed.

     Invalid move shows legal moves option. [ O followed by m or M ]
                       A toggle item which will show all the pos-
                       sible legal moves if  the  user  makes  an
                       invalid move.

     Use Clocks to Time Moves. [ O followed by c or C ]
                       A toggle item to display timer clocks  for
                       each  player.  If  timer clocks are shown,
                       then each  player  is  allowed  a  certain
                       amount  of  time  to play all their moves.
                       This amount of time depends on the current
                       level of difficulty.

2 OPTIONS
     -animate
          Show animation. The computer's stone will glide in from
          the top left corner of the board, and when you hold the
          left mouse button down, your stone is dragged around.

     -bestmove
          As the computer is making it's move,  continually  show
          the position of the best move found so far.

     -black
          Black will be played by a human.

     -clock
          Display clocks to time each move.  A  total  amount  of
          time  is  allowed  for  each  player depending upon the
          level of difficulty. When that time has  expired,  then
          the game is over.

     -d difficulty
          The level of difficulty for  computer  moves.  See  the
          Difficulty:  cyclic  item  description  above  for more
          information.

     -e edgefile
          Specify an alternate location for the reve edge stabil-
          ity  table  file. Normally the location of this file is
          compiled in when the program is created, but reve  will
          search every directory on your search path looking file
          a file called reve.edgetable.

     -g geometry
          Used with the X11 variant  of  reve  to  give  geometry
          information.

     -h helpfile
          Specify an alternate location for the reve online  help
          file. Normally the location of this file is compiled in
          when the program is created, but reve will search every
          directory  on  your  search  path  looking  file a file
          called reve.help.

     -help
          Initially show the reve help window.

     -i   Invert the reve window before displaying it. For use by
          people   who  started  their  graphics  environment  in
          inverse mode. This option is currently only implemented
          for the SunView version.

     -last
          Show where the last stone was placed, by outlining  the
          square.

     -load gamefile
          Load a game file. The format of this game file is given
          below. The board will be setup with these stones.

     -log Save a log of computer move  information  to  the  file
          reve.res  as  the  game progresses. This information is
          probably only useful to people trying  to  improve  the
          computer algorithm.

     -m   Always display in monochrome, even on a color screen.

     -notes
          Display computer notes.

     -number
          Show the move number on the last stone placed.

     -opponent user@host
          Play a game against another human on another  networked
          machine.   Reve  will send an invitation to that person
          asking if the want to play, and they will  then  invoke
          reve  on  their  machine (using your username and host-
          name), and the connection  is  established.  Note  that
          both machines need to have the reve network daemon con-
          figured. See the README file for information on how  to
          do this.

     -props
          Initially show the reve property window.

     -quick
          Play a quick game. Don't flash the stones as  they  are
          being turned.

     -r reve_proc
          Full pathname of the computer strategy  reve_proc  pro-
          gram.

     -?   Print the version number and  usage  message  for  this
          release of the reve program.

     -v   Print the version number and  usage  message  for  this
          release of the reve program.

     -white
          White will be played by a human.

     -Wi  Start the reve program up in iconic form.  The  SunView
          and  XView version of reve will automatically uses this
          flag, but the X11 version will also.

     -Wp x y
          Start the open window position at x y

     -WP x y
          Start the icon position at x y

2 RESOURCES
     On startup, the X11 and XView version of reve will  use  the
     following  X resources. These resources can be placed in all
     the normal  X  places.  You  can  also  set  a  REVEDEFAULTS
     environment  variable to point to a file containing them, or
     place them in a .reverc file in your home directory.

     Resource:      reve.animate
     Values:        True, False (False)
     Description    Indicates whether various  animation  effects
                    are shown.

     Resource:      reve.bestmove
     Values:        True, False (False)
     Description    Indicates whether  to  continually  show  the
                    best  move  so far, as the computer is making
                    it's move.

     Resource:      reve.boardSize
     Values:        Board size (numeric)
     Description    The initial size in pixels of the  reve  game
                    board.

     Resource:      reve.difficulty
     Values:        Difficulty value (numeric)
     Description    The computer difficulty level.

     Resource:      reve.last
     Values:        True, False (False)
     Description    Indicates whether the position  of  the  last
                    stone placed is shown by a square.

     Resource:      reve.log
     Values:        True, False (False)
     Description    Indicates whether to save a log  of  computer
                    information to the file reve.res/

     Resource:      reve.notes
     Values:        True, False (False)
     Description    Indicates whether todisplay computer notes.

     Resource:      reve.number
     Values:        True, False (False)
     Description    Indicates whether the last  stone  placed  in
                    numbered.

     Resource:      reve.quick
     Values:        True, False (False)
     Description    Indicates whether  a  quick  game  should  be
                    played.  Stones  are  not flashed as they are
                    placed, if this resource is set true.

     Resource:      reve.properties
     Values:        True, False (False)
     Description    Indicates whether the  properties  window  is
                    initially displayed.

     Resource:      reve.showClocks
     Values:        True, False (False)
     Description    Indicates  whether  timer  clocks  for   each
                    player are initially displayed.
     Resource:      reve.showHelp
     Values:        True, False (False)
     Description    Indicates whether the online help  window  is
                    initially displayed.

     Resource:      reve.showLegalMoves
     Values:        True, False (False)
     Description    Indicates whether an invalid move should show
                    all legal moves.

     Resource:      reve.iconiseForOpponentMove
     Values:        True, False (False)
     Description    Indicates whether the reve window  should  be
                    closed during the opponents move.

     Resource:      reve.bellAfterOpponentMove
     Values:        True, False (False)
     Description    Indicates whether  there  should  be  a  beep
                    sounded after the opponents move.

     Resource:      reve.raiseAfterOpponentMove
     Values:        True, False (False)
     Description    Indicates whether the reve window  should  be
                    automatically  raised  to  the  top after the
                    opponents move.

     Resource:      reve.panelColor
     Values:        Color  name  string  or   hexadecimal   color
                    specification string
     Description    The background color of the main and property
                    panels.

     Resource:      reve.boardColor
     Values:        Color  name  string  or   hexadecimal   color
                    specification string
     Description    The color of the reve playing board.

     Resource:      reve.boardBorderColor
     Values:        Color  name  string  or   hexadecimal   color
                    specification string
     Description    The border color of the reve playing board.

     Resource:      reve.gridColor
     Values:        Color  name  string  or   hexadecimal   color
                    specification string
     Description    The color of the grid lines on the reve play-
                    ing board.

     Resource:      reve.textColor
     Values:        Color  name  string  or   hexadecimal   color
                    specification string
     Description    The color of all text panel text items.

     Resource:      reve.itemColor
     Values:        Color  name  string  or   hexadecimal   color
                    specification string
     Description    The background color of the button and  cycle
                    items.

     Resource:      reve.blackStoneColor
     Values:        Color  name  string  or   hexadecimal   color
                    specification string
     Description    The color of the "black" stones.

     Resource:      reve.whiteStoneColor
     Values:        Color  name  string  or   hexadecimal   color
                    specification string
     Description    The color of the "white" stones.

     Resource:      reve.blackStoneName
     Values:        Black stone name string
     Description    The name to be displayed in all "black" stone
                    messages.

     Resource:      reve.whiteStoneName
     Values:        White stone name string.
     Description    The name to be displayed in all "white" stone
                    messages.

     Resource:      reve.printCommand
     Values:        Print command string
     Description    The print command to use to print  reve  game
                    transcripts.

     Resource:      reve.boardFont
     Values:        Font name string
     Description    The name of the font used to display text  on
                    the reve game board.

     Resource:      reve.boldFont
     Values:        Font name string
     Description    The name of the font  used  to  display  bold
                    text.

     Resource:      reve.helpFont
     Values:        Font name string
     Description    The name of the  font  used  to  display  the
                    online help information.

     Resource:      reve.normalFont
     Values:        Font name string
     Description    The name of the font used to  display  normal
                    text.

2 REVE_GAMES_FILE_FORMAT
     Reve has the ability to load or save games.  The  format  of
     the games files are:
          1,   <C-4>     -    [ remarks field ]
          2,   -    <E-3>     [ remarks field ]
     There is one move per line. Lines starting with  a  '#'  and
     blank lines are ignored. The first field of each line is the
     move number. This will be present before the  comma.  It  is
     used  as  a  consistency check. Next are the black and white
     fields. If the '<' character is present  before  the  white.
     The  three  characters between the '<' and '>' are the move,
     and give the column and row. The column  letter  can  be  in
     either lower or upper case.
     It is possible for one player to have two or more consequen-
     tive  moves,  hence  the need for the above scheme.  Reve is
     flexible about white space (except between the '<'  and  '>'
     characters).  The remarks field is ignored. The program will
     stop on the first line it thinks is in  error,  and  display
     the  reason  for  this.  As valid lines are read from a game
     file, the board is updated.

2 FILES
     CENA_X:reve.edgetable
     CENA_X:reve.help

2 AUTHORS
     Computer  strategy:  Yves  Gallot    (no  net   address   at
     present).
     Graphics interface: Rich Burridge  richb@Aus.Sun.COM

2 VMS_PORT
     Patrick Moreau, CENA/Athis-Mons, FRANCE (pmoreau@ada.cenaath.cena.dgac.fr)

