PROGRAM DESCRIPTION

     THE PROGRAM IS DIVIDED INTO FOUR MAIN SECTIONS:

       1) DECLARATION OF VARIABLES

       2) SUBROUTINES

       3) COMPUTATIONAL FUNCTIONS AND ROUTINES
 
       4) MAIN BODY

1) DECLARATION OF VARIABLES

     I HOPE THAT VARIABLE NAMES ARE SELF-EXPLANATORY AS POSSIBLE.  THIS 

LIST WILL EXPLAIN MOST OF THEM IN MORE DETAIL.

  BBOFF,WBOFF -- THE NUMBER OF BLACKS AND WHITES BORN OFF

  DICE1,DICE2,DICE3,DICE4 -- DICE1 AND DICE2 HOLD WHITES THROW.  DICE3

    AND DICE4 ARE USED WHEN WHITE IS BEARING OFF AND DOUBLES ARE THROWN

  BARFL -- A FLAG USED TO INDICATE THAT THERE IS ONE WHITE ON THE BAR

    SO THAT WHEN TESTING FOR THE BEST MOVE, THIS PIECE IS SURE TO BE

    MOVED.

  BRDVAL -- THE FUNCTIONAL RESULT OF A BOARD CONFIGURATION GIVEN BY THE

    EQUATION W1*FUNCTION1+.....+W10*FUNCTION10

  BSTVAL -- THE HIGHEST BRDVAL ASSOCIATED WITH A GIVEN THROW OF THE DICE

  COMPVAL -- THE BSTVAL OF THE PREVIOUS THROW OF THE DICE

  M1,M2,M3,M4 -- USED TO INDICATE THAT 1,2,3, OR 4 MOVES ARE TO BE MADE.

    THIS IS NECESSARY WHEN WHITE CANNOT MAKE A MOVE WITH THE GIVEN THROW

    OF THE DICE.

  V1-V10 -- USED IN BOARD VALUE ROUTINES TO STORE ADDENDS OF THE BOARD

    VALUE FUNCTION.

  G,H,I,J,K,L,M,N -- INDEXES FOR CYCLE LOOPS

  RUNNING -- A FLAG TO INDICATE THAT THE FORCES HAVE SEPARATED AND TO

    DISCONTINUE COMPARING BOARD VALUES.

  W1-W10 -- USED TO STORE THE WEIGHTS LOADED FROM AND TO A SEPARATE FILE.

  BV1-BV10 -- USED TO STORE THE VALUES OF THE ADDENDS(V1-V10) EACH TIME A

    NEW BSTVAL IS FOUND.

  PT1,PT2,PT3,PT4 -- THE POINT FROM WHICH A WHITE HAS BEEN MOVED DURING A

    "TEST" MOVE.  PT3 AND PT4 ARE USED ONLY IN CASE OF DOUBLES.

  BSTPT1,BSTPT2,BSTPT3,BSTPT4 -- USED TO STORE THE POINTS FROM WHICH A

    NEW BSTVAL WAS FOUND.

  BSTMOV1,BSTMOV2 -- USED TO STORE THE DICE THROW ASSOCIATED WITH A BEST

    POINT.  IN CASE OF DOUBLES, ALL MOVES ARE THE SAME.

  BARPT1,BARPT2,BARPT3,BARPT4 -- FLAGS TO INDICATE THAT A "TEST" MOVE RE-

    SULTED IN REMOVING A BLACK FROM THE BOARD.

  SECOND -- USED TO INDICATE DICE HAVE BEEN SWOPPED SO THAT BOARD VALUE

    CALCULATIONS ARE NOT DUPLICATED.

  NOMOV -- USED IN BEARING OFF TO INDICATE NO MOVE POSSILBE FROM A CERTAIN

    POINT WITH THE GIVE DIE.

  ODDS -- A TWELVE ELEMENT ARRAY WHICH CONTAINS THE ODDS OF BLACK LANDING

    ONE TO TWELVE SPACES AHEAD OF HIM WITH A GIVEN THROW OF THE DICE.  THERE

    IS A COMMON FACTOR OF 105 WHICH IS IGNORED.  THESE ODDS ARE USED IN 

    DETERMINING WHICH PIECE WHITE SHOULD LEAVE AS A SINGLE, IF HE MUST DO 

    SO.  DOUBLES ARE INCLUDED UP TO TWELVE, I.E. 12=6+6=4+4+4=3+3+3+3,

    WITH HIGHER DOUBLES COMBINATIONS BEING RATHER INSIGNIFICANT.

2) SUBROUTINES

     THESE COULD HAVE BEEN INCLUDED IN THE MAIN BODY IN MOST CASES, BUT

WERE REMOVED TO MAKE THE PROGRAM MORE READABLE.  EACH HAS A SPECIFIC TASK

WHICH IN MOST CASES IS SELF-EXPLANATORY.

  DOBLACK -- A SEPARATE PROGRAM IN ITSELF TO PERFORM THE OPPONENTS MOVE.

    IT BEGINS BY READING BLACK'S THROW AND MAKING SURE IT IS LEGAL.

    THEN THERE IS A SERIES OF STATEMENTS TO SEE IF BLACK CAN MOVE, AND IF

    SO, DOES HE HAVE AN OPTION.  IF HE DOES NOT HAVE AN OPTION, THEN THE 

    PROGRAM MAKES HIS MOVE.  OTHERWISE, THE PROGRAM READS THE POINT FROM

    WHICH BLACK WISHES TO MOVE AND THE AMOUNT HE WANTS THE PIECE MOVED.

    AT THIS POINT, THE MOVE TYPED IS IRREVOCABLE.  THEN A SERIES OF TESTS

    ARE MADE TO SEE IF HE HAS A PIECE ON THE POINT, HAS A PIECE ON THE BAR

    AND DID NOT MOVE IT FIRST, TRIED TO BEAR OFF BEFORE ALL HIS MEN WERE

    HOME, TRIED TO MOVE TO A POINT OCCUPIED BY THE COMPUTER, OR TRIED TO

    USE A DICE THROW HE DID NOT HAVE.  IF THE MOVE TYPED IS LEGAL, THEN IT

    IS MADE, OR A MAN IS BORN OFF, AND THE PROGRAM LOOPS TO MAKE THE SEC-

    OND MOVE, OR THE THIRD OR FOURTH MOVE IN CASE OF DOUBLES.

  INITIALIZE -- THE PIECES ARE PLACED ON THE BOARD.

  PRINTSTATE -- A STRAIGHTFORWARD ROUTINE TO PRINT THE BOARD AND OTHER REL-

    EVANT INFORMATION.  IN THIS CASE, THE POINTS ARE NUMBERED AND THE BAR

    IS NOT SHOWN GRAPHICALLY.  ALSO, A MAXIMUM OF SEVEN PIECES ARE SHOWN

    ON A PARTICULAR POINT, BUT THE EXTRA MEN ARE NOT LOST TO THE COMPUTER.

    THE NUMBER OF MEN ON THE BAR AND THE NUMBER OF MEN BORN OFF ARE WRIT-

    TEN AFTER THE BOARD IS OUTPUT, IF IT IS NECESSARY.

  MMOVE -- AN OFTEN USED ROUTINE WHICH ACTUALLY MAKES A MOVE AFTER THE BEST

    MOVE HAS BEEN FOUND.  FIRST, THE WHITE IS "REMOVED" FROM ITS CURRENT

    POINT AND THEN "PLACED" ON ITS NEW POINT.  THEN, IF THERE IS

    A BLACK ON THE LATTER POINT, IT IS REMOVED AND PLACED ON THE BAR.

  MTSTMOV -- THIS ROUTINE IS THE SAME AS MMOVE EXCEPT THAT A FLAG IS SET

    WHEN A BLACK IS REMOVED FROM THE BOARD.  THE ROUTINE IS USED TO

    MAKE A "TEST" MOVE SO THAT ALL POSSIBLE BOARD CONFIGURATIONS CAN

    BE TESTED FOR MERIT.  THIS COULD BE INTERPRETED IN REAL LIFE AS A

    PLAYER MOVING A PIECE BUT KEEPING HIS FINGER ON IT.

  CLTSTMOV -- RESTORES THE BOARD POSITION AS IT WAS BEFORE A MTSTMOV.

    THIS INCLUDES RETURNING ANY BLACK WHICH MAY HAVE BEEN TEMP-

    ORARILY REMOVED FROM A POINT.

  LOADWTS & DUMPWTS -- THE WEIGHTS ARE READ AT THE BEGINNING OF THE PROGRAM

    FROM A SEPARATE FILE AND THE POSSIBLY ALTERED WEIGHTS ARE WRITTEN

    BACK TO THE SAME FILE AT THE END OF THE PROGRAM.

  DOBEST -- THIS SUBROUTINE IS USED WHEN BEARING OFF THE SECOND MAN, AND

    ALSO THE THIRD AND FOURTH MAN IN CASE OF DOUBLES.  IT FIRST TESTS
   
    TO SEE IF A MAN CAN BE REMOVED FROM THE MAXIMUM DISTANCE AWAY FROM THE

    EDGE OF THE BOARD.  IT THEN SEES IF THERE IS A MAN ON THE SPOT OF THE

    MAXIMUM DISTANCE MINUS ONE.  IT THEN ATTEMPTS TO "LEVEL OUT" THE HOME

    AREA.  IF ANY OF THESE ALTERNATIVES ARE FOUND, THE MOVE IS MADE.  IF

    NOT, THE MAN FARTHEST FROM BEING BORN OFF IS MOVED FORWARD.  THIS IS 

    DISCUSSED FURTHER UNDER "STRATEGY".

  MTSTBOFF & CLTSTBOFF -- THESE ROUTINES ARE CALLED WHEN WHITE

    IS IN A POSITION TO BEAR OFF, BUT THERE ARE STILL BLACKS IN HIS HOME

    AREA.  THEY FUNCTION MUCH THE SAME AS MTSTMOV AND CLTSTMOV, EXCEPT WITH
 
    THE ADDED COMPLICATION THAT A "TEST" MOVE MAY ENTAIL MOVING A PIECE

    OFF THE BOARD.

3) COMPUTATIONAL FUNCTIONS AND ROUTINES

  HOMEB -- IS CALLED WHEN BLACK ATTEMPTS TO BEAR OFF TO MAKE SURE ALL

    HIS MEN ARE HOME.  THE FUNCTION RETURNS 1 IF THEY ARE, 0 IF THEY ARE

    NOT ALL HOME.

  WBEARO -- IS THE COMPLEMENTARY FUNCTION FOR WHITE, ONLY IT RETURNS THE

    NUMBER OF WHITES HOME INSTEAD.

  GBRDVAL -- COMPUTES THE BRDVAL FUNCTION IN SUCH A WAY AS TO COMPARE WHITES

    BOARD POSITION RELATIVE TO BLACK, OR IN OTHER WORDS, TO SEE WHO IS

    WINNING.  THIS FUNCTION IS USED IN DETERMINING WHETHER BLACK OR WHITE

    MADE THE BETTER MOVE IRREGARDLESS OF THE DICE THROWN.

  GBRD -- COMPUTES THE BRDVAL FUNCTION WITH ONLY WHITES BOARD POSITION IN

    MIND.  THIS FUNCTION IS USED TO DETERMINE WHITES BEST MOVE.  IT STORES

    POINTS AND ASSOCIATED MOVE WHENEVER A NEW BSTVAL IS FOUND.  IT ALSO 

    KEEPS TRACK OF THE WEIGHTS ASSOCIATED WITH THE NEW BEST MOVE.  THE REA-
 
    SON FOR THIS IS EXPLAINED BY THE NEXT TWO ROUTINES.

  GOOD -- THIS ROUTINE IS PASSED THE VALUES SAVED BY GBRD AND THE VALUES

    OF THE WEIGHTS.  AS THE NAME IMPLIES, A GOOD MOVE WAS MADE; SO ALL WEIGHTS

    WHICH GAVE A POSITIVE ADDEND ARE INCREMENTED (THIS IS TO SAY THAT THIS

    FUNCTION, OR ADDEND, IS IMPORTANT IN MAKING GOOD MOVES), WHILE ALL AD-

    DENDS WHICH GAVE A NEGATIVE VALUE ARE DECREMENTED (THIS IS TO SAY THAT
   
    THE COMPUTER MADE A GOOD MOVE DESPITE THIS ADDENDS "WARNING", SO PER-
 
    HAPS THIS "WARNING" IS OVER-RATED).  ZERO ADDENDS ARE LEFT UNCHANGED.

  BAD -- HERE, A BAD MOVE WAS MADE, SO ALL "WARNINGS" OR NEGATIVE VALUE

    ADDENDS ARE INCREMENTED AND ALL POSITIVE INDICATORS ARE DECREMENTED.

THE REMAINING FUNCTIONS ARE PAIRED.  THESE FUNCTIONS DESCRIBE A BOARD POSI-

TION WHICH I FEEL IS IMPORTANT IN DETERMINING THE OUTCOME OF THE GAME.  I

WILL ONLY DESCRIBE THE FUNCTIONS DEALING WITH WHITES POSITION; THOSE 

FOR BLACK ARE EXACTLY THE SAME EXCEPT THAT THE BOARD DIRECTION IS REVERSED.

  WBAR -- THE NUMBER OF WHITES ON THE BAR (BOARD POSITION 0 = BAR).

  WSIN -- THE NUMBER OF POINTS WITH ONLY ONE WHITE PIECE OCCUPYING IT.

  WSINCL -- THIS IS PROBABLY THE SINGLE MOST IMPORTANT FUNCTION.  WHEN WHITE

    LEAVES A SINGLE, THIS FUNCTION DETERMINES THE ODDS OF THE PIECE BEING

    TAKEN BY DETERMINING HOW FAR IT IS FROM A BLACK AND ADDING THE

    ODDS OF THIS BLACK PIECE TAKING THE WHITE TO THE ODDS OF ANY OTHER 

    BLACK PIECE WHICH MAY TAKE THIS WHITE.  THIS IS DONE FOR ALL THE WHITE

    SINGLES.

  WPTSHOME -- THE NUMBER OF POINTS IN WHITES HOME (BOARD POSITIONS 19-24)

    WHICH ARE HELD BY WHITE.

  WPTS -- THE NUMBER OF POINTS HELD BY WHITE ANYWHERE ON THE BOARD.

  WPTSSUCC -- THE NUMBER OF SIDE-BY-SIDE POINTS HELD BY WHITE.

  WFST3,WFST6,WFST12 -- THE NUMBER OF WHITES ON THE FIRST THREE, SIX, AND 

    TWELVE POINTS OF THE BOARD (THOSE POINTS FARTHEST AWAY FROM WHITES

    HOME).

  WHOME -- THE NUMBER OF PIECES WHITE HAS ON HIS SIX HOME POSITIONS.

  WTOGO -- THE TOTAL VALUE OF DICE THROWS IT WILL TAKE TO GET ALL WHITES 

    MEN HOME.  THIS IS OFTEN USED AS THE MOST IMPORTANT INDICATOR AS TO 

    WHO IS ACTUALLY WINNING THE GAME IN REAL LIFE GAMES.

4) MAIN BODY

     THE MAIN BODY IS DIVIDED INTO THREE PARTS:

  A) THE COMPETITIVE GAME

     IN PREPARATION FOR THE GAME, THE WEIGHTS ARE LOADED, THE TELETYPE IS

SELECTED, THE BOARD IS INITIALIZED AND THEN PRINTED.  THE GAME IS NOW READY

TO BEGIN.  WHITE GOES FIRST.  THE DICE ARE READ AND IF DOUBLES ARE

THROWN, DICE3 AND DICE4 ARE ASSIGNED FOR USE IN CASE OF BEARING OFF.  BSTVAL

IS GIVEN THE MOST NEGATIVE NUMBER REPRESENTABLE BY THE COMPUTER TO INSURE

THAT THE FIRST MOVE WILL GIVE A NEW BSTVAL.  TWO TESTS ARE THEN MADE TO SEE

IF WHITE IS IN A POSITION TO BEAR OFF, OR TO SEE IF THE FORCES ARE SEPA-

RATED.  IF SO, CONTROL PASSES TO ONE OF THE OTHER PARTS OF THE MAIN BODY.

     WHITE IS NOW READY TO MOVE.  HE FIRST CHECKS TO SEE IF HE HAS ANY MEN

ON THE BAR.  IF HE HAS NO CHOICE OF A MOVE TO MAKE, THE MOVE IS MADE DIRECT-

LY (OR IF HE CANNOT MOVE, NO MOVE IS MADE).  IF HE HAS A CHOICE, THEN THE 

BARFL IS SET, WHICH INSURES THAT THE MAN ON THE BAR IS MOVED.  

     THE K-CYCLE IS USED FOR SWOPPING THE DICE WHEN THEY ARE

DIFFERENT.  THE IDEA BEHIND THIS CYCLE AND THE FOUR NESTED CYCLES IS DIS-

CUSSED IN STRATEGIES.  THE I-CYCLE IS THEN ENTERED.  WHEN A POSSIBLE MOVE

IS FOUND IT IS STORED IN PT1, AND THEN TESTS ARE MADE TO SEE IF THE MOVE

IS FEASIBLE.  IF SO, A TEST MOVE IS MADE.  IF AT ANY TIME AFTER A TEST

MOVE IS MADE AND THERE IS ANOTHER MOVE REMAINING AND WHITE IS IN A POSI-

TION TO BEAROFF, CONTROL IS PASSED TO THAT SECTION OF THE MAIN BODY.  THE

J-CYCLE IS THEN ENTERED, WITH A TEST TO MAKE SURE THAT A TEST MOVE IS NOT

DUPLICATED.  WHEN A MOVE IS FOUND, AND DOULBLES WERE NOT THROWN, THE PRO-

GRAM EVALUATES THIS BOARD POSITION AND STORES THE RESULT IF THIS IS THE 

BEST POSSIBLE MOVE SO FAR.  IF NO MOVE IS FOUND, THE MOVE FLAG (M1-M4) DOES

NOT GET SET AND NO MOVE WILL BE MADE.  IF DOUBLES WERE THROWN, THE BOARD

EVALUATION WILL NOT BE MADE UNTIL AFTER FOUR POSSIBLE MOVES HAVE BEEN FOUND.

AFTER THE BOARD EVALUATION, THE LAST TEST MOVE IS RETURNED AND A NEW

MOVE WITH THAT DIE IS SOUGHT.

     AFTER ALL TEST MOVES ARE EVALUATED, THE BEST MOVE IS READY TO BE MADE.

IF NOT ALL OF THE DICE THROW COULD BE USED, I.E. SIX AND FOUR BUT A SIX

MOVE WAS IMPOSSIBLE, THE LAST TEST MOVE MADE WITH THE DIE THAT COULD BE 

USED IS MADE (THIS IS PURELY RANDOM, BUT THE PROGRAMMING TO OVERCOME THIS

WOULD BE OUT OF PROPORTION WITH THE LIKELYHOOD OF IT ACTUALLY OCCURING).

     DONE IS THE FINISHING POINT FOR THE THREE MAIN PARTS OF THE PROGRAM.

FIRST, A CHECK IS MADE TO SEE IF WHITE HAS WON.  IF NOT, THE BOARD IS

PRINTED, BLACK MAKES HIS MOVE, AND A TEST IS MADE TO SEE IF HE WON.  IF THE

FORCES ARE SEPARATED OR WHITE IS BEARING OFF, THE CYCLE IS FINISHED AND 

WHITE IS ASKED TO MAKE HIS NEXT MOVE.  IF NOT, THE BOARD IS EVALUATED

IN SUCH A WAY TO SEE WHO IS WINNING.  IF WHITE HAS IMPROVED HIS POSI-

TION SINCE THE LAST MOVE, THE GOOD ROUTINE IS CALLED.  IF WHITE MADE A BAD

MOVE ON COMPARISON WITH BLACK, THEN THE BAD ROUTINE IS CALLED.  THE NEW 

BRDVAL IS STORED FOR COMPARISON AFTER THE NEXT SET OF MOVES, AND WHITE 

THEN PROCEEDS TO MAKE HIS NEXT MOVE.

  B)FORCES SEPARATED BUT NOT ALL WHITES ARE HOME

     THIS PART OF THE PROGRAM DEALS WITH GETTING THE MEN HOME IN AS FEW
 
MOVES AS POSSIBLE.  IT SIMPLY WORKS ON THE PRINCIPLE OF MOVING THE MAN FAR-

THEST AWAY THE LARGER OF THE TWO DIE ROLLS.  UNFORTUNEATELY, THIS IS NOT

THE BEST ALGORITHM IN PRACTICE, AND IS DISCUSSED IN STRATEGIES.  IF ALL  

THE MEN ARE MOVED HOME AND THERE IS A ROLL OR ROLLS LEFT OVER, CONTROL IS 

PASSED TO BEAROFF.

  C)BEARING OFF

     BEARING OFF IS DIVIDED INTO TWO SECTIONS.  THE FIRST DEALS WITH BEAR-

ING OFF WHEN THE FORCES ARE SEPARATED, AND THE SECOND DEALS WITH THE CASE

WHEN BLACK STILL HAS MEN IN WHITES HOME GROUND (OR ON THE BAR).

     IN THE FORMER CASE, A STRIAGHTFORWARD METHOD IS USED TO BEAR OFF.

FIRST, THE SMALLER OF THE DICE IS DEALT WITH.  THE ONLY DIFFERENCE

IN HANDLING OF THE FIRST AND SECOND DIE COMES LATER IN THE METHOD AND WILL

BE DISCUSSED THERE, SO WE CAN ASSUME THAT WE DEAL WITH ALL ROLLS IDENTICALLY.

     THE FIRST POSSIBLE MOVE OCCURS IF A MAN CAN BE BORN OFF FROM THE

MAXIMUM DISTANCE FROM THE EDGE OF THE BOARD.  IF THERE ARE NO MEN ON THIS

POINT, A MAN MAY BE BORN OFF FROM ONE LESS THAN THIS MAXIMUM DISTANCE.

IF THERE ARE NO MEN ON EITHER OF THESE POINTS, THEN AN ATTEMPT IS MADE

TO EVEN OUT THE HOME AREA.  IN OTHER WORDS, IF THERE ARE A DISPROPORTION-

ATE MANY NUMBER OF MEN ON THE POINTS FARTHER AWAY FROM THE EDGE OF THE 

BOARD, THEY ARE MOVED FORWARD.  IF THIS IS NOT THE CASE, THE MAN FARTHEST

AWAY FROM THE EDGE OF THE BOARD IS MOVED FORWARD, OR BORN OFF, EXCEPT IN

THE CASE OF THE FIRST DICE MOVING FORWARD A MAN THAT WOULD BE BORN OFF BY

THE SECOND DICE.  IN THAT CASE, THE SECOND FARTHEST MAN IS MOVED.

THE PROCESS IS REPEATED FOR A THIRD AND FOURTH MAN IN THE CASE OF DOUBLES.

     IN THE LATTER CASE, CARE MUST BE TAKEN NOT TO LEAVE ANY SINGLES IN

A POSITION TO BE TAKEN.  FIRST, A SERIES OF STATEMENTS IS EXECUTED TO

GET THE LARGEST ROLL IN DICE1. (REMEMBER BEAROFF MAY BE ENTERED AFTER A

MOVE HAS BEEN MADE, BUT WITH ONE OR MORE MOVES LEFT OVER.) THE K-CYCLE

HERE CYCLES THROUGH POSSIBLE VALUES OF WSINCL.  THE NESTED CYCLE STRUCTURE

IS VERY SIMILAR TO THAT USED IN THE COMPETITIVE GAME, WITH THE ADDED COMP-

LICATION THAT DURING TEST MOVES IT IS POSSIBLE TO BEAR A MAN OFF.  ON THE

FIRST LOOP OF THE K-CYCLE, A MOVE IS SOUGHT THAT WILL LEAVE NO MEN IN A

POSITION TO BE TAKEN.  IF NO SUCH MOVE IS POSSIBLE, THE MOVE THAT PROVIDES

THE LOWEST ODDS OF HAVING A MAN TAKEN IS MADE.  WHEN A MOVE IS MADE, CON-

TROL PASSES TO THE DONE LABEL.

     THIS COMPLETES THE DESCRIPTION OF THE MAIN BODY AND OF THE PROGRAM.