billr@saab.CNA.TEK.COM (Bill Randle) (12/22/90)
Submitted-by: Rich Burridge <rburridge@sun.COM> Posting-number: Volume 12, Issue 7 Archive-name: reve/Patch3g Patch-To: reve: Volume 11, Issue 52-58 Environment: SunView, XView, X11R4, termcap #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of archive 7 (of 9)." # Contents: patches03d # Wrapped by billr@saab on Fri Dec 21 11:27:44 1990 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'patches03d' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'patches03d'\" else echo shar: Extracting \"'patches03d'\" \(45079 characters\) sed "s/^X//" >'patches03d' <<'END_OF_FILE' X X------- rev_eval.c ------- X*** /tmp/da07623 Sun Dec 9 15:17:12 1990 X--- rev_eval.c Wed Dec 5 10:37:09 1990 X*************** X*** 47,65 **** X int niv ; X { X register int *d, *p ; X! register int i, x, y ; X register long note ; X register int vp, vo ; X register long tnote, cx ; X X d = damier[niv] ; X X if (mnb > 60 - profmax) X { X note = 0 ; X for (p = &d[0]; p < &d[64]; p++) X! if (*p == macouleur) note++ ; X! else if (*p == tacouleur) note-- ; X return(note) ; X } X else X--- 47,67 ---- X int niv ; X { X register int *d, *p ; X! register int i, x, y, tc, mc ; X register long note ; X register int vp, vo ; X register long tnote, cx ; X X d = damier[niv] ; X+ tc = tacouleur ; X+ mc = macouleur ; X X if (mnb > 60 - profmax) X { X note = 0 ; X for (p = &d[0]; p < &d[64]; p++) X! if (*p == mc) note++ ; X! else if (*p == tc) note-- ; X return(note) ; X } X else X*************** X*** 66,73 **** X { X x = y = 0 ; X for (p = &d[0]; p < &d[64]; p++) X! if (*p == macouleur) x++ ; X! else if (*p == tacouleur) y++ ; X if (x == 0) return(-100000000) ; X if (y == 0) return( 100000000) ; X X--- 68,75 ---- X { X x = y = 0 ; X for (p = &d[0]; p < &d[64]; p++) X! if (*p == mc) x++ ; X! else if (*p == tc) y++ ; X if (x == 0) return(-100000000) ; X if (y == 0) return( 100000000) ; X X*************** X*** 78,163 **** X for (p = &d[0]; p < &d[8]; p++) X { X i += i + i ; X! if (*p == FREE) i++ ; X! else if (*p == macouleur) i += 2 ; X } X note = edges[i] ; X X- if (((i == 2191) && (d[13] == macouleur)) || X- ((i == 2917) && (d[10] == macouleur)) || X- ((i == 3643) && (d[10] == tacouleur)) || X- ((i == 4369) && (d[13] == tacouleur))) X- note -= edges[i] ; X- X i = 0 ; X for (p = &d[56]; p < &d[64]; p++) X { X i += i + i ; X! if (*p == FREE) i++ ; X! else if (*p == macouleur) i += 2 ; X } X note += edges[i] ; X X- if (((i == 2191) && (d[53] == macouleur)) || X- ((i == 2917) && (d[50] == macouleur)) || X- ((i == 3643) && (d[50] == tacouleur)) || X- ((i == 4369) && (d[53] == tacouleur))) X- note -= edges[i] ; X- X i = 0 ; X for (p = &d[0]; p < &d[64]; p += 8) X { X i += i + i ; X! if (*p == FREE) i++ ; X! else if (*p == macouleur) i += 2 ; X } X note += edges[i] ; X X- if (((i == 2191) && (d[41] == macouleur)) || X- ((i == 2917) && (d[17] == macouleur)) || X- ((i == 3643) && (d[17] == tacouleur)) || X- ((i == 4369) && (d[41] == tacouleur))) X- note -= edges[i] ; X- X i = 0 ; X for (p = &d[7]; p < &d[64]; p += 8) X { X i += i + i ; X! if (*p == FREE) i++ ; X! else if (*p == macouleur) i += 2 ; X } X note += edges[i] ; X X- if (((i == 2191) && (d[46] == macouleur)) || X- ((i == 2917) && (d[22] == macouleur)) || X- ((i == 3643) && (d[22] == tacouleur)) || X- ((i == 4369) && (d[46] == tacouleur))) X- note -= edges[i] ; X- X cx = 8 * (50 - mnb - profmax) ; X X if (d[0] == FREE) X { X! if (d[9] == macouleur) note -= cx ; X! else if (d[9] == tacouleur) note += cx ; X } X X if (d[7] == FREE) X { X! if (d[14] == macouleur) note -= cx ; X! else if (d[14] == tacouleur) note += cx ; X } X X if (d[56] == FREE) X { X! if (d[49] == macouleur) note -= cx ; X! else if (d[49] == tacouleur) note += cx ; X } X X if (d[63] == FREE) X { X! if (d[54] == macouleur) note -= cx ; X! else if (d[54] == tacouleur) note += cx ; X } X X tnote = c1 * note + c2 * (long) 1000 * (vp0 - vo0) / (vp0 + vo0 + 2) ; X--- 80,141 ---- X for (p = &d[0]; p < &d[8]; p++) X { X i += i + i ; X! if (*p == FREE) i++ ; X! else if (*p == mc) i += 2 ; X } X note = edges[i] ; X X i = 0 ; X for (p = &d[56]; p < &d[64]; p++) X { X i += i + i ; X! if (*p == FREE) i++ ; X! else if (*p == mc) i += 2 ; X } X note += edges[i] ; X X i = 0 ; X for (p = &d[0]; p < &d[64]; p += 8) X { X i += i + i ; X! if (*p == FREE) i++ ; X! else if (*p == mc) i += 2 ; X } X note += edges[i] ; X X i = 0 ; X for (p = &d[7]; p < &d[64]; p += 8) X { X i += i + i ; X! if (*p == FREE) i++ ; X! else if (*p == mc) i += 2 ; X } X note += edges[i] ; X X cx = 8 * (50 - mnb - profmax) ; X X if (d[0] == FREE) X { X! if (d[9] == mc) note -= cx ; X! else if (d[9] == tc) note += cx ; X } X X if (d[7] == FREE) X { X! if (d[14] == mc) note -= cx ; X! else if (d[14] == tc) note += cx ; X } X X if (d[56] == FREE) X { X! if (d[49] == mc) note -= cx ; X! else if (d[49] == tc) note += cx ; X } X X if (d[63] == FREE) X { X! if (d[54] == mc) note -= cx ; X! else if (d[54] == tc) note += cx ; X } X X tnote = c1 * note + c2 * (long) 1000 * (vp0 - vo0) / (vp0 + vo0 + 2) ; X*************** X*** 167,173 **** X for (y = 0; y < 8; y++) X { X i = (x << 3) + y ; X! if (d[i] == tacouleur) X { X if ((x > 0) && (d[i - 8] == FREE)) vp++ ; X else if ((x < 7) && (d[i + 8] == FREE)) vp++ ; X--- 145,151 ---- X for (y = 0; y < 8; y++) X { X i = (x << 3) + y ; X! if (d[i] == tc) X { X if ((x > 0) && (d[i - 8] == FREE)) vp++ ; X else if ((x < 7) && (d[i + 8] == FREE)) vp++ ; X*************** X*** 178,184 **** X else if ((x > 0) && (y < 7) && (d[i - 7] == FREE)) vp++ ; X else if ((x < 7) && (y < 7) && (d[i + 9] == FREE)) vp++ ; X } X! if (d[i] == macouleur) X { X if ((x > 0) && (d[i - 8] == FREE)) vo++ ; X else if ((x < 7) && (d[i + 8] == FREE)) vo++ ; X--- 156,162 ---- X else if ((x > 0) && (y < 7) && (d[i - 7] == FREE)) vp++ ; X else if ((x < 7) && (y < 7) && (d[i + 9] == FREE)) vp++ ; X } X! if (d[i] == mc) X { X if ((x > 0) && (d[i - 8] == FREE)) vo++ ; X else if ((x < 7) && (d[i + 8] == FREE)) vo++ ; X*************** X*** 200,222 **** X i = (x << 3) + y ; X if (d[i] == FREE) X { X! if ((x > 0) && (d[i - 8] == tacouleur)) vp++ ; X! else if ((x < 7) && (d[i + 8] == tacouleur)) vp++ ; X! else if ((y > 0) && (d[i - 1] == tacouleur)) vp++ ; X! else if ((y < 7) && (d[i + 1] == tacouleur)) vp++ ; X! else if ((x > 0) && (y > 0) && (d[i - 9] == tacouleur)) vp++ ; X! else if ((x < 7) && (y > 0) && (d[i + 7] == tacouleur)) vp++ ; X! else if ((x > 0) && (y < 7) && (d[i - 7] == tacouleur)) vp++ ; X! else if ((x < 7) && (y < 7) && (d[i + 9] == tacouleur)) vp++ ; X X! if ((x > 0) && (d[i - 8] == macouleur)) vo++ ; X! else if ((x < 7) && (d[i + 8] == macouleur)) vo++ ; X! else if ((y > 0) && (d[i - 1] == macouleur)) vo++ ; X! else if ((y < 7) && (d[i + 1] == macouleur)) vo++ ; X! else if ((x > 0) && (y > 0) && (d[i - 9] == macouleur)) vo++ ; X! else if ((x < 7) && (y > 0) && (d[i + 7] == macouleur)) vo++ ; X! else if ((x > 0) && (y < 7) && (d[i - 7] == macouleur)) vo++ ; X! else if ((x < 7) && (y < 7) && (d[i + 9] == macouleur)) vo++ ; X } X } X X--- 178,200 ---- X i = (x << 3) + y ; X if (d[i] == FREE) X { X! if ((x > 0) && (d[i - 8] == tc)) vp++ ; X! else if ((x < 7) && (d[i + 8] == tc)) vp++ ; X! else if ((y > 0) && (d[i - 1] == tc)) vp++ ; X! else if ((y < 7) && (d[i + 1] == tc)) vp++ ; X! else if ((x > 0) && (y > 0) && (d[i - 9] == tc)) vp++ ; X! else if ((x < 7) && (y > 0) && (d[i + 7] == tc)) vp++ ; X! else if ((x > 0) && (y < 7) && (d[i - 7] == tc)) vp++ ; X! else if ((x < 7) && (y < 7) && (d[i + 9] == tc)) vp++ ; X X! if ((x > 0) && (d[i - 8] == mc)) vo++ ; X! else if ((x < 7) && (d[i + 8] == mc)) vo++ ; X! else if ((y > 0) && (d[i - 1] == mc)) vo++ ; X! else if ((y < 7) && (d[i + 1] == mc)) vo++ ; X! else if ((x > 0) && (y > 0) && (d[i - 9] == mc)) vo++ ; X! else if ((x < 7) && (y > 0) && (d[i + 7] == mc)) vo++ ; X! else if ((x > 0) && (y < 7) && (d[i - 7] == mc)) vo++ ; X! else if ((x < 7) && (y < 7) && (d[i + 9] == mc)) vo++ ; X } X } X X*************** X*** 229,251 **** X i = (x << 3) + y ; X if (d[i] == FREE) X { X! if ((x > 0) && (d[i - 8] == tacouleur)) vp++ ; X! if ((x < 7) && (d[i + 8] == tacouleur)) vp++ ; X! if ((y > 0) && (d[i - 1] == tacouleur)) vp++ ; X! if ((y < 7) && (d[i + 1] == tacouleur)) vp++ ; X! if ((x > 0) && (y > 0) && (d[i - 9] == tacouleur)) vp++ ; X! if ((x < 7) && (y > 0) && (d[i + 7] == tacouleur)) vp++ ; X! if ((x > 0) && (y < 7) && (d[i - 7] == tacouleur)) vp++ ; X! if ((x < 7) && (y < 7) && (d[i + 9] == tacouleur)) vp++ ; X X! if ((x > 0) && (d[i - 8] == macouleur)) vo++ ; X! if ((x < 7) && (d[i + 8] == macouleur)) vo++ ; X! if ((y > 0) && (d[i - 1] == macouleur)) vo++ ; X! if ((y < 7) && (d[i + 1] == macouleur)) vo++ ; X! if ((x > 0) && (y > 0) && (d[i - 9] == macouleur)) vo++ ; X! if ((x < 7) && (y > 0) && (d[i + 7] == macouleur)) vo++ ; X! if ((x > 0) && (y < 7) && (d[i - 7] == macouleur)) vo++ ; X! if ((x < 7) && (y < 7) && (d[i + 9] == macouleur)) vo++ ; X } X } X X--- 207,229 ---- X i = (x << 3) + y ; X if (d[i] == FREE) X { X! if ((x > 0) && (d[i - 8] == tc)) vp++ ; X! if ((x < 7) && (d[i + 8] == tc)) vp++ ; X! if ((y > 0) && (d[i - 1] == tc)) vp++ ; X! if ((y < 7) && (d[i + 1] == tc)) vp++ ; X! if ((x > 0) && (y > 0) && (d[i - 9] == tc)) vp++ ; X! if ((x < 7) && (y > 0) && (d[i + 7] == tc)) vp++ ; X! if ((x > 0) && (y < 7) && (d[i - 7] == tc)) vp++ ; X! if ((x < 7) && (y < 7) && (d[i + 9] == tc)) vp++ ; X X! if ((x > 0) && (d[i - 8] == mc)) vo++ ; X! if ((x < 7) && (d[i + 8] == mc)) vo++ ; X! if ((y > 0) && (d[i - 1] == mc)) vo++ ; X! if ((y < 7) && (d[i + 1] == mc)) vo++ ; X! if ((x > 0) && (y > 0) && (d[i - 9] == mc)) vo++ ; X! if ((x < 7) && (y > 0) && (d[i + 7] == mc)) vo++ ; X! if ((x > 0) && (y < 7) && (d[i - 7] == mc)) vo++ ; X! if ((x < 7) && (y < 7) && (d[i + 9] == mc)) vo++ ; X } X } X X*************** X*** 254,256 **** X--- 232,235 ---- X return(tnote / 1000) ; X } X } X+ X X------- rev_ip.c ------- X*** /tmp/da07626 Sun Dec 9 15:17:13 1990 X--- rev_ip.c Sat Dec 8 18:12:25 1990 X*************** X*** 23,34 **** X #include <signal.h> X #include <setjmp.h> X #include <sys/types.h> X- #ifdef SYSV X- #include <sys/times.h> X- #else X- #include <sys/time.h> X- #endif /*SYSV*/ X- X #include "reve.h" X X extern int saveres ; X--- 23,28 ---- X*************** X*** 35,41 **** X extern time_t timeleft, time() ; X extern int damier[NIVEAUMAX][64] ; X extern int tacouleur, macouleur ; X! extern int mnb, profmax ; X extern long c1, c2, c3 ; X X /* Reve structure. Play_Reve evaluates a board and returns a move and a note X--- 29,35 ---- X extern time_t timeleft, time() ; X extern int damier[NIVEAUMAX][64] ; X extern int tacouleur, macouleur ; X! extern int mnb, profmax, max_depth ; X extern long c1, c2, c3 ; X X /* Reve structure. Play_Reve evaluates a board and returns a move and a note X*************** X*** 167,173 **** X if (d0[cpk[cp]] == JPJ) k++ ; X X count = note = cpmax = 0 ; X! timeused = profmax = 1 ; X X if (((k == 1) && (mnb < 52)) || (mnb == 1)) X { X--- 161,168 ---- X if (d0[cpk[cp]] == JPJ) k++ ; X X count = note = cpmax = 0 ; X! timeused = 1 ; X! profmax = max_depth - 1 ; X X if (((k == 1) && (mnb < 52)) || (mnb == 1)) X { X*************** X*** 221,227 **** X } X else X { X! allotime = timeleft * 3 / (61 - mnb) ; X firsttime = time((time_t *) NULL) ; X X cpmaxi[0] = cpmaxi[1] = cpmaxi[2] = cpmaxi[3] = 0 ; X--- 216,222 ---- X } X else X { X! allotime = timeleft * 4 / (61 - mnb) ; X firsttime = time((time_t *) NULL) ; X X cpmaxi[0] = cpmaxi[1] = cpmaxi[2] = cpmaxi[3] = 0 ; X*************** X*** 378,384 **** X--- 373,383 ---- X { X if (d0[cpk[cp]] == TPJ) X { X+ #ifdef hp9000s300 X+ for (k = 0; k < 64; k++) damier[niv + 1][k] = damier[niv][k] ; X+ #else X for (k = 0; k < 64; k++) d1[k] = d0[k] ; X+ #endif X tujouesen(cpi[cp], cpj[cp], niv + 1) ; X if (niv == profmax) lnote = evalue(niv + 1) ; X else if (jepeuxjouer(niv + 1) == TRUE) X*************** X*** 427,433 **** X--- 426,436 ---- X { X if (d0[cpk[cp]] == JPJ) X { X+ #ifdef hp9000s300 X+ for (k = 0; k < 64; k++) damier[niv + 1][k] = damier[niv][k] ; X+ #else X for (k = 0; k < 64; k++) d1[k] = d0[k] ; X+ #endif X jejoueen(cpi[cp], cpj[cp], niv + 1) ; X if (niv == profmax) lnote = evalue(niv + 1) ; X else if (tupeuxjouer(niv + 1) == TRUE) X X------- reve.man ------- X*** /tmp/da07629 Sun Dec 9 15:17:14 1990 X--- reve.man Sun Dec 9 14:35:12 1990 X*************** X*** 1,5 **** X .\" %Z%%M% %I% %E% X! .TH REVE 6 "18 October 1990" X .SH NAME X reve \- an othello game. X .SH SYNOPSIS X--- 1,5 ---- X .\" %Z%%M% %I% %E% X! .TH REVE 6 "29 November 1990" X .SH NAME X reve \- an othello game. X .SH SYNOPSIS X*************** X*** 7,12 **** X--- 7,14 ---- X [ X .B \-animate X ] [ X+ .B \-bestmove X+ ] [ X .B \-black X .I [ display ] X ] [ X*************** X*** 28,33 **** X--- 30,37 ---- X .B \-load X .I gamefile X ] [ X+ .B \-log X+ ] [ X .B \-m X ] [ X .B \-notes X*************** X*** 36,43 **** X ] [ X .B \-quick X ] [ X- .B \-r X- ] [ X .B \-v X ] [ X .B \-white X--- 40,45 ---- X*************** X*** 82,93 **** X down as you move around the board, the square you are currently over will X be highlighted. X .LP X! There are various buttons and cyclic selections available. Their meanings X! are given below, plus an indication of their keyboard equivalents. With the X! cyclic selections, clicking over the left half of the cycle item increments X! the selection, and clicking over the right half of the cycle item decrements X! the selection. With the SunView and XView versions, it is also possible to X! make a selection from a popup menu using the right mouse button. X .LP X By default, a human will play black, and the computer will play white. If X you want a human vs human startup or some other combination, then you should X--- 84,94 ---- X down as you move around the board, the square you are currently over will X be highlighted. X .LP X! There are various buttons, choice, toggles and cyclic selections available. X! Their meanings are given below, plus an indication of their keyboard X! equivalents. With the cyclic selections, clicking over the left half of the X! cycle item increments the selection, and clicking over the right half of the X! cycle item decrements the selection. X .LP X By default, a human will play black, and the computer will play white. If X you want a human vs human startup or some other combination, then you should X*************** X*** 95,102 **** X .SH REVE BUTTONS X .LP X With the graphics versions, there are eight buttons that are normally X! displayed at the top of the Reve window. Each of these buttons, except X! the "done" button has a keyboard equivalent which is given in brackets below. X .LP X .IP "\fBload [ L ]\fP" 18 X Load a game file. The format of this game file is given below. With the X--- 96,103 ---- X .SH REVE BUTTONS X .LP X With the graphics versions, there are eight buttons that are normally X! displayed at the top of the Reve window. Each of these buttons, has a X! keyboard equivalent which is given in brackets below. X .LP X .IP "\fBload [ L ]\fP" 18 X Load a game file. The format of this game file is given below. With the X*************** X*** 124,158 **** X Undo the last "move". If the opponent is the computer, the two "moves" are X undone. A "move" is considered to be all previous consecutive moves by X the opponent. X! .IP "\fBdone [ No keyboard equivalent]\fP" 18 X! Change \fIreve\fP to an icon. X .IP "\fBquit [ q ]\fP" 18 X Exit the X .I reve X program. X! .SH REVE CYCLIC SELECTIONS X! With the graphical versions, just below the eight buttons are four cycle items. X! These can either be selected with the left mouse button, to increment or X! decrement the current selection (depending upon which half on the item X! you click over), or a selection can be made from a popup menu when you X! click with the right mouse button (SunView and XView versions only). X! Each cycle value has a keyboard equivalent which is given in brackets below. X! This must be followed by the value of the new selection you wish to make. X! The dumb tty version has the equivalent of these items displayed to the X right of the reve board display. X .LP X! .IP "\fBBlack: [ B ]\fP" 18 X! Select whether the black player should be a human or the computer. The X! keyboard equivalents are 'h' for human, and 'c' for computer. X! .IP "\fBWhite: [ W ]\fP" 18 X! Select whether the white player should be a human or the computer. The X! keyboard equivalents are the same as for the \fBBlack:\fP item. X .IP "\fBDifficulty: [ D ]\fP" 18 X! Sets the degree of difficulty for the computers moves. Keyboard selection X! values are in the range '1' to '9'. The computer move is determined on a X! time basis. The degree of difficulty determines the total amount of time X! that the computer will take to make all its moves. Here are the time periods X! for each level of difficulty: X .LP X Difficulty Time X .LP X--- 125,160 ---- X Undo the last "move". If the opponent is the computer, the two "moves" are X undone. A "move" is considered to be all previous consecutive moves by X the opponent. X! .IP "\fBprops [ p ]\fP" 18 X! Display a property sheet containing choices and toggles which will X! alter various \fIreve\fP properties. X .IP "\fBquit [ q ]\fP" 18 X Exit the X .I reve X program. X! .SH REVE PROPERTY SHEET SELECTIONS X! With the graphical versions, there is a property sheet window which can be X! displayed. The property sheet has two choice items, one cyclic item, and six X! toggle items. Click with the left mouse button over the option you want from X! the choice items. With the cyclic items, click with the left mouse button over X! the appropriate half, to either increment or decrement the current value. X! Clicking left over the toggle item boxes, will toggle the value of that item X! on or off. X! The choice items also have keyboard equivalents which are given in brackets X! below. They must be followed by the value of the new selection you wish to X! make. The dumb tty version has the equivalent of these items displayed to the X right of the reve board display. X .LP X! .IP "\fBComputer plays: [ C ]\fP" 18 X! A choice item which selects what color[s] the computer should play. The X! keyboard equivalents are 'b' for black, 'w' for white, 'n' for neither, X! and 'a' for all (both). X .IP "\fBDifficulty: [ D ]\fP" 18 X! A choice item which sets the degree of difficulty for the computers moves. X! Keyboard selection values are in the range '1' to '9'. The computer move is X! determined on a time basis. The degree of difficulty determines the total X! amount of time that the computer will take to make all its moves. Here are the X! time periods for each level of difficulty: X .LP X Difficulty Time X .LP X*************** X*** 175,184 **** X 9 60 minutes. X .LP X Level eight is tournament level. X! .IP "\fBNotes: [ N ]\fP" 18 X! Select whether computer notes are displayed. When you are playing against X! the computer, the note gives the position of the last computer move, and X! an indication of whether it was a good or bad move. X .SH OPTIONS X .TP X .B \-animate X--- 177,198 ---- X 9 60 minutes. X .LP X Level eight is tournament level. X! .IP "\fBSet search depth: [ No keyboard equivalent ]\fP" 18 X! A cyclic item which sets the maximum search depth for a computer move. X! .IP "\fBAnimate move option. [ No keyboard equivalent ]\fP" 18 X! A toggle item for animating the computer move and the dragging of human pieces. X! .IP "\fBShow current best move option. [ No keyboard equivalent ]\fP" 18 X! A toggle item for showing the current best move as the computer makes it's X! move. X! .IP "\fBShow last move option. [ No keyboard equivalent ]\fP" 18 X! A toggle item for outlining the square containing the last move. X! .IP "\fBShow evaluation information option. [ No keyboard equivalent ]\fP" 18 X! A toggle information for displaying evaluation information for each computer X! move. X! .IP "\fBNumber last move option. [ No keyboard equivalent ]\fP" 18 X! A toggle item for number the last move stone. X! .IP "\fBDon't show flip option. [ No keyboard equivalent ]\fP" 18 X! A toggle item to prevent the flip of the stones as a turn is completed. X .SH OPTIONS X .TP X .B \-animate X*************** X*** 186,191 **** X--- 200,209 ---- X corner of the board, and when you hold the left mouse button down, your X stone is dragged around. X .TP X+ .B \-bestmove X+ As the computer is making it's move, continually show the position of the X+ best move found so far. X+ .TP X .BI \-black " [ display ]" X Black will be played by a human. With the X11 variant of X .I reve X*************** X*** 225,230 **** X--- 243,254 ---- X Load a game file. The format of this game file is given below. The board X will be setup with these stones. X .TP X+ .B \-log X+ Save a log of computer move information to the file X+ .I reve.res X+ as the game progresses. This information is probably only useful to X+ people trying to improve the computer algorithm. X+ .TP X .B \-m X Always display in monochrome, even on a color screen. X .TP X*************** X*** 237,248 **** X .B \-quick X Play a quick game. Don't flash the stones as they are being turned. X .TP X- .B \-r X- Save a log of computer move information to the file X- .I reve.res X- as the game progresses. This information is probably only useful to X- people trying to improve the computer algorithm. X- .TP X .B \-? X Print the version number and usage message for this release of the X .I reve X--- 261,266 ---- X*************** X*** 272,277 **** X--- 290,383 ---- X .BI \-WP " x y" X Start the icon position at X .I x y X+ .SH RESOURCES X+ On startup, the X11 and XView version of X+ .I reve X+ will use the following X resources: X+ .TP 15 X+ .PD 0 X+ .B Resource: X+ reve.animate X+ .TP X+ .B Values: X+ True, False (False) X+ .TP X+ .B Description X+ Indicates whether various animation effects are shown. X+ .sp X+ .TP X+ .B Resource: X+ reve.bestmove X+ .TP X+ .B Values: X+ True, False (False) X+ .TP X+ .B Description X+ Indicates whether to continually show the best move so far, as the computer X+ is making it's move. X+ .sp X+ .TP X+ .B Resource: X+ reve.difficulty X+ .TP X+ .B Values: X+ Difficulty value (numeric) X+ .TP X+ .B Description X+ The computer difficulty level. X+ .sp X+ .TP X+ .B Resource: X+ reve.last X+ .TP X+ .B Values: X+ True, False (False) X+ .TP X+ .B Description X+ Indicates whether the position of the last stone placed is shown by a square. X+ .sp X+ .TP X+ .B Resource: X+ reve.log X+ .TP X+ .B Values: X+ True, False (False) X+ .TP X+ .B Description X+ Indicates whether to save a log of computer information to the file X+ .I reve.res/ X+ .sp X+ .TP X+ .B Resource: X+ reve.notes X+ .TP X+ .B Values: X+ True, False (False) X+ .TP X+ .B Description X+ Indicates whether todisplay computer notes. X+ .sp X+ .TP X+ .B Resource: X+ reve.number X+ .TP X+ .B Values: X+ True, False (False) X+ .TP X+ .B Description X+ Indicates whether the last stone placed in numbered. X+ .sp X+ .TP X+ .B Resource: X+ reve.quick X+ .TP X+ .B Values: X+ True, False (False) X+ .TP X+ .B Description X+ Indicates whether a quick game should be played. Stones are not flashed as X+ they are placed, if this resource is set true. X+ .sp X .SH REVE GAMES FILE FORMAT X .I Reve X has the ability to load or save games. The format of the games files are: X X------- reve.man.text ------- X*** /tmp/da07632 Sun Dec 9 15:17:15 1990 X--- reve.man.text Sun Dec 9 14:35:19 1990 X*************** X*** 9,19 **** X reve - an othello game. X X SYNOPSIS X! reve [ -animate ] [ -b [ display ] ] [ -c ] [ -d difficulty X! ] [ -e edgefile ] [ -g geometry ] [ -i ] [ -last ] [ -load X! gamefile ] [ -m ] [ -notes ] [ -number ] [ -quick ] [ -r ] [ X! -v ] [ -w [ display ] ] [ -? ] [ -Wi ] [ -Wp x y ] [ -WP x y X! ] X X DESCRIPTION X Reve is a version of the popular Othello game. It contains X--- 9,19 ---- X reve - an othello game. X X SYNOPSIS X! reve [ -animate ] [ -bestmove ] [ -black [ display ] ] [ -c X! ] [ -d difficulty ] [ -e edgefile ] [ -g geometry ] [ -i ] [ X! -last ] [ -load gamefile ] [ -log ] [ -m ] [ -notes ] [ X! -number ] [ -quick ] [ -v ] [ -white [ display ] ] [ -? ] [ X! -Wi ] [ -Wp x y ] [ -WP x y ] X X DESCRIPTION X Reve is a version of the popular Othello game. It contains X*************** X*** 46,66 **** X the board, the square you are currently over will be X highlighted. X X! There are various buttons and cyclic selections available. X! Their meanings are given below, plus an indication of their X! keyboard equivalents. With the cyclic selections, clicking X! over the left half of the cycle item increments the selec- X! tion, and clicking over the right half of the cycle item X! decrements the selection. With the SunView and XView ver- X! sions, it is also possible to make a selection from a popup X! menu using the right mouse button. X X By default, a human will play black, and the computer will X play white. If you want a human vs human startup or some X X X X! Sun Release 4.1 Last change: 18 October 1990 1 X X X X--- 46,66 ---- X the board, the square you are currently over will be X highlighted. X X! There are various buttons, choice, toggles and cyclic selec- X! tions available. Their meanings are given below, plus an X! indication of their keyboard equivalents. With the cyclic X! selections, clicking over the left half of the cycle item X! increments the selection, and clicking over the right half X! of the cycle item decrements the selection. X X By default, a human will play black, and the computer will X play white. If you want a human vs human startup or some X+ other combination, then you should use the appropriate com- X+ mand line options (see below). X X X X! Sun Release 4.1 Last change: 29 November 1990 1 X X X X*************** X*** 71,84 **** X X X X- other combination, then you should use the appropriate com- X- mand line options (see below). X- X REVE BUTTONS X With the graphics versions, there are eight buttons that are X normally displayed at the top of the Reve window. Each of X! these buttons, except the "done" button has a keyboard X! equivalent which is given in brackets below. X X load [ L ] Load a game file. The format of this game X file is given below. With the graphical X--- 71,81 ---- X X X X REVE BUTTONS X With the graphics versions, there are eight buttons that are X normally displayed at the top of the Reve window. Each of X! these buttons, has a keyboard equivalent which is given in X! brackets below. X X load [ L ] Load a game file. The format of this game X file is given below. With the graphical X*************** X*** 115,132 **** X A "move" is considered to be all previous X consecutive moves by the opponent. X X! done [ No keyboard equivalent] X! Change reve to an icon. X X quit [ q ] Exit the reve program. X X! REVE CYCLIC SELECTIONS X! With the graphical versions, just below the eight buttons X! are four cycle items. These can either be selected with the X X X X! Sun Release 4.1 Last change: 18 October 1990 2 X X X X--- 112,132 ---- X A "move" is considered to be all previous X consecutive moves by the opponent. X X! props [ p ] Display a property sheet containing X! choices and toggles which will alter vari- X! ous reve properties. X X quit [ q ] Exit the reve program. X X! REVE PROPERTY SHEET SELECTIONS X! With the graphical versions, there is a property sheet win- X! dow which can be displayed. The property sheet has two X! choice items, one cyclic item, and six toggle items. Click X! with the left mouse button over the option you want from the X X X X! Sun Release 4.1 Last change: 29 November 1990 2 X X X X*************** X*** 137,171 **** X X X X! left mouse button, to increment or decrement the current X! selection (depending upon which half on the item you click X! over), or a selection can be made from a popup menu when you X! click with the right mouse button (SunView and XView ver- X! sions only). Each cycle value has a keyboard equivalent X! which is given in brackets below. This must be followed by X! the value of the new selection you wish to make. The dumb X! tty version has the equivalent of these items displayed to X! the right of the reve board display. X X! Black: [ B ] Select whether the black player should be X! a human or the computer. The keyboard X! equivalents are 'h' for human, and 'c' for X! computer. X X! White: [ W ] Select whether the white player should be X! a human or the computer. The keyboard X! equivalents are the same as for the Black: X! item. X X- Difficulty: [ D ] Sets the degree of difficulty for the com- X- puters moves. Keyboard selection values X- are in the range '1' to '9'. The computer X- move is determined on a time basis. The X- degree of difficulty determines the total X- amount of time that the computer will take X- to make all its moves. Here are the time X- periods for each level of difficulty: X- X Difficulty Time X X 1 Time allocation disabled (fast simple move). X--- 137,169 ---- X X X X! choice items. With the cyclic items, click with the left X! mouse button over the appropriate half, to either increment X! or decrement the current value. Clicking left over the tog- X! gle item boxes, will toggle the value of that item on or X! off. The choice items also have keyboard equivalents which X! are given in brackets below. They must be followed by the X! value of the new selection you wish to make. The dumb tty X! version has the equivalent of these items displayed to the X! right of the reve board display. X X! Computer plays: [ C ] X! A choice item which selects what color[s] X! the computer should play. The keyboard X! equivalents are 'b' for black, 'w' for X! white, 'n' for neither, and 'a' for all X! (both). X X! Difficulty: [ D ] A choice item which sets the degree of X! difficulty for the computers moves. Key- X! board selection values are in the range X! '1' to '9'. The computer move is deter- X! mined on a time basis. The degree of dif- X! ficulty determines the total amount of X! time that the computer will take to make X! all its moves. Here are the time periods X! for each level of difficulty: X X Difficulty Time X X 1 Time allocation disabled (fast simple move). X*************** X*** 180,212 **** X X Level eight is tournament level. X X! Notes: [ N ] Select whether computer notes are X! displayed. When you are playing against X! the computer, the note gives the position X! of the last computer move, and an indica- X! tion of whether it was a good or bad move. X X! OPTIONS X! -animate X! Show animation. The computer's stone will glide in from X X X X- Sun Release 4.1 Last change: 18 October 1990 3 X X X X X X X REVE(6) GAMES AND DEMOS REVE(6) X X X X the top left corner of the board, and when you hold the X left mouse button down, your stone is dragged around. X X! -b [ display ] X Black will be played by a human. With the X11 variant X of reve it is possible to give an optional display X value. X--- 178,236 ---- X X Level eight is tournament level. X X! Set search depth: [ No keyboard equivalent ] X! A cyclic item which sets the maximum X! search depth for a computer move. X X! Animate move option. [ No keyboard equivalent ] X! A toggle item for animating the computer X! move and the dragging of human pieces. X X+ Show current best move option. [ No keyboard equivalent ] X+ A toggle item for showing the current best X+ move as the computer makes it's move. X X X X+ Sun Release 4.1 Last change: 29 November 1990 3 X X X X X X+ X REVE(6) GAMES AND DEMOS REVE(6) X X X X+ Show last move option. [ No keyboard equivalent ] X+ A toggle item for outlining the square X+ containing the last move. X+ X+ Show evaluation information option. [ No keyboard equivalent ] X+ A toggle information for displaying X+ evaluation information for each computer X+ move. X+ X+ Number last move option. [ No keyboard equivalent ] X+ A toggle item for number the last move X+ stone. X+ X+ Don't show flip option. [ No keyboard equivalent ] X+ A toggle item to prevent the flip of the X+ stones as a turn is completed. X+ X+ OPTIONS X+ -animate X+ Show animation. The computer's stone will glide in from X the top left corner of the board, and when you hold the X left mouse button down, your stone is dragged around. X X! -bestmove X! As the computer is making it's move, continually show X! the position of the best move found so far. X! X! -black [ display ] X Black will be played by a human. With the X11 variant X of reve it is possible to give an optional display X value. X*************** X*** 231,236 **** X--- 255,274 ---- X information. X X -i Invert the reve window before displaying it. For use by X+ X+ X+ X+ Sun Release 4.1 Last change: 29 November 1990 4 X+ X+ X+ X+ X+ X+ X+ REVE(6) GAMES AND DEMOS REVE(6) X+ X+ X+ X people who started their graphics environment in X inverse mode. This option is currently only implemented X for the SunView version. X*************** X*** 243,248 **** X--- 281,291 ---- X Load a game file. The format of this game file is given X below. The board will be setup with these stones. X X+ -log Save a log of computer move information to the file X+ reve.res as the game progresses. This information is X+ probably only useful to people trying to improve the X+ computer algorithm. X+ X -m Always display in monochrome, even on a color screen. X X -notes X*************** X*** 255,279 **** X Play a quick game. Don't flash the stones as they are X being turned. X X- X- X- X- Sun Release 4.1 Last change: 18 October 1990 4 X- X- X- X- X- X- X- REVE(6) GAMES AND DEMOS REVE(6) X- X- X- X- -r Save a log of computer move information to the file X- reve.res as the game progresses. This information is X- probably only useful to people trying to improve the X- computer algorithm. X- X -? Print the version number and usage message for this X release of the reve program. X X--- 298,303 ---- X*************** X*** 280,286 **** X -v Print the version number and usage message for this X release of the reve program. X X! -w [ display ] X White will be played by a human. With the X11 variant X of reve it is possible to give an optional display X value. X--- 304,310 ---- X -v Print the version number and usage message for this X release of the reve program. X X! -white [ display ] X White will be played by a human. With the X11 variant X of reve it is possible to give an optional display X value. X*************** X*** 295,346 **** X -WP x y X Start the icon position at x y X X REVE GAMES FILE FORMAT X Reve has the ability to load or save games. The format of X the games files are: X- X 1, <C-4> - [ remarks field ] X 2, - <E-3> [ remarks field ] X- X There is one move per line. Lines starting with a '#' and X blank lines are ignored. The first field of each line is the X move number. This will be present before the comma. It is X used as a consistency check. Next are the black and white X fields. If the '<' character is present before the white. X- The three characters between the '<' and '>' are the move, X- and give the column and row. The column letter can be in X- either lower or upper case. X X- It is possible for one player to have two or more consequen- X- tive moves, hence the need for the above scheme. Reve is X- flexible about white space (except between the '<' and '>' X- characters). The remarks field is ignored. The program will X- stop on the first line it thinks is in error, and display X- the reason for this. As valid lines are read from a game X- file, the board is updated. X X- FILES X- /usr/local/lib/reve.edgetable X X X X- Sun Release 4.1 Last change: 18 October 1990 5 X X X X X- X- X REVE(6) GAMES AND DEMOS REVE(6) X X X X edge stability table for all possible edge combina- X tions. X- X BUGS X See the TODO file for the list of known problems. X- X AUTHORS X Computer strategy: Yves Gallot galloty@cernvax.cern.ch X Graphics interface: Rich Burridge richb@Aus.Sun.COM X--- 319,422 ---- X -WP x y X Start the icon position at x y X X+ RESOURCES X+ On startup, the X11 and XView version of reve will use the X+ X+ X+ X+ Sun Release 4.1 Last change: 29 November 1990 5 X+ X+ X+ X+ X+ X+ X+ REVE(6) GAMES AND DEMOS REVE(6) X+ X+ X+ X+ following X resources: X+ X+ Resource: reve.animate X+ Values: True, False (False) X+ Description Indicates whether various animation effects X+ are shown. X+ X+ Resource: reve.bestmove X+ Values: True, False (False) X+ Description Indicates whether to continually show the X+ best move so far, as the computer is making X+ it's move. X+ X+ Resource: reve.difficulty X+ Values: Difficulty value (numeric) X+ Description The computer difficulty level. X+ X+ Resource: reve.last X+ Values: True, False (False) X+ Description Indicates whether the position of the last X+ stone placed is shown by a square. X+ X+ Resource: reve.log X+ Values: True, False (False) X+ Description Indicates whether to save a log of computer X+ information to the file reve.res/ X+ X+ Resource: reve.notes X+ Values: True, False (False) X+ Description Indicates whether todisplay computer notes. X+ X+ Resource: reve.number X+ Values: True, False (False) X+ Description Indicates whether the last stone placed in X+ numbered. X+ X+ Resource: reve.quick X+ Values: True, False (False) X+ Description Indicates whether a quick game should be X+ played. Stones are not flashed as they are X+ placed, if this resource is set true. X+ X REVE GAMES FILE FORMAT X Reve has the ability to load or save games. The format of X the games files are: X 1, <C-4> - [ remarks field ] X 2, - <E-3> [ remarks field ] X There is one move per line. Lines starting with a '#' and X blank lines are ignored. The first field of each line is the X move number. This will be present before the comma. It is X used as a consistency check. Next are the black and white X fields. If the '<' character is present before the white. X X X X+ Sun Release 4.1 Last change: 29 November 1990 6 X X X X X X X REVE(6) GAMES AND DEMOS REVE(6) X X X X+ The three characters between the '<' and '>' are the move, X+ and give the column and row. The column letter can be in X+ either lower or upper case. X+ It is possible for one player to have two or more consequen- X+ tive moves, hence the need for the above scheme. Reve is X+ flexible about white space (except between the '<' and '>' X+ characters). The remarks field is ignored. The program will X+ stop on the first line it thinks is in error, and display X+ the reason for this. As valid lines are read from a game X+ file, the board is updated. X+ FILES X+ /usr/local/lib/reve.edgetable X edge stability table for all possible edge combina- X tions. X BUGS X See the TODO file for the list of known problems. X AUTHORS X Computer strategy: Yves Gallot galloty@cernvax.cern.ch X Graphics interface: Rich Burridge richb@Aus.Sun.COM X*************** X*** 380,396 **** X X X X! X! X! X! X! X! X! X! X! X! X! Sun Release 4.1 Last change: 18 October 1990 6 X X X X--- 456,462 ---- X X X X! Sun Release 4.1 Last change: 29 November 1990 7 X X X X END_OF_FILE if test 45079 -ne `wc -c <'patches03d'`; then echo shar: \"'patches03d'\" unpacked with wrong size! fi # end of 'patches03d' fi echo shar: End of archive 7 \(of 9\). cp /dev/null ark7isdone MISSING="" for I in 1 2 3 4 5 6 7 8 9 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 9 archives. rm -f ark[1-9]isdone ark[1-9][0-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0