     REVE(6)                                                             REVE(6)
                                  13 November 1991

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

     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 selections 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 command line options (see below).

     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

                                        - 1 -      Formatted:  December 14, 1999

     REVE(6)                                                             REVE(6)
                                  13 November 1991

                            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 pressing the
                            Escape key will cancel the load operation. When you
                            press the Return key, filename entry is complete,
                            and the program 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 consecutive 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 various 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 -      Formatted:  December 14, 1999

     REVE(6)                                                             REVE(6)
                                  13 November 1991

     REVE PROPERTY SHEET SELECTIONS
          With the graphical versions, there is a property sheet window 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
          toggle 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.  Keyboard selection values
                            are in the range '1' to '9'. The computer move is
                            determined on a time basis. The degree of difficulty
                            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.

                                        - 3 -      Formatted:  December 14, 1999

     REVE(6)                                                             REVE(6)
                                  13 November 1991

          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 negative, it indicates the search was
                            not completed 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 possible 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.

     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.

                                        - 4 -      Formatted:  December 14, 1999

     REVE(6)                                                             REVE(6)
                                  13 November 1991

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

                                        - 5 -      Formatted:  December 14, 1999

     REVE(6)                                                             REVE(6)
                                  13 November 1991

          -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 hostname), and the connection is established. Note
               that both machines need to have the reve network daemon
               configured. 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 program.

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

     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

                                        - 6 -      Formatted:  December 14, 1999

     REVE(6)                                                             REVE(6)
                                  13 November 1991

          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.

                                        - 7 -      Formatted:  December 14, 1999

     REVE(6)                                                             REVE(6)
                                  13 November 1991

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

                                        - 8 -      Formatted:  December 14, 1999

     REVE(6)                                                             REVE(6)
                                  13 November 1991

          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.

     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

                                        - 9 -      Formatted:  December 14, 1999

     REVE(6)                                                             REVE(6)
                                  13 November 1991

          is possible for one player to have two or more consequentive 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.
     FILES
          /usr/local/lib/reve.edgetable
          /usr/local/lib/reve.help
          ~/.reverc
               edge stability table for all possible edge combinations.
          /etc/services
          /etc/inetd.conf
     BUGS
          See the TODO file for the list of known problems.
     AUTHORS
          Computer strategy:  Yves Gallot    (no net address at present).
          Graphics interface: Rich Burridge  richb@Aus.Sun.COM

                                       - 10 -      Formatted:  December 14, 1999