home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / SIMTEL / CPMUG / CPMUG037.ARK / CRAPS.BAS < prev    next >
BASIC Source File  |  1984-04-29  |  41KB  |  1,203 lines

  1. REM  ******************************************************
  2. REM  THE FOLLOWING SECTIONS SEEM TO BE DONE:
  3. REM    BIG EIGHT
  4. REM    BIG SIX
  5. REM    FIELD
  6. REM    COME
  7. REM    PLACE
  8. REM    HARDWAYS
  9. REM    LINE
  10. REM    ODDS
  11. REM  ******************************************************
  12. REM   THIS IS THE GAME OF CRAPS.  I WILL TRY AND INCLUDE ALL
  13. REM   BETS AVAILABLE ONE AT A TIME.
  14.  
  15.  
  16. PRINT"If you would like an explaination of the accounting"
  17. INPUT" practices used in this program put in an 'X' now ";LINE X$
  18. IF X$="X" THEN GOSUB 800
  19.  
  20. INPUT"How much money are you starting with? ";LINE OLD.WINNINGS$
  21.          RANDOMIZE
  22.          REAL.OLD.WINNINGS=VAL(OLD.WINNINGS$)
  23.          OLD.WINNINGS=VAL(OLD.WINNINGS$)
  24.          FIRST%= - 1
  25.  
  26. DIM COME.BET(12),COME.POINT%(12), \
  27.          PLACE.POINT%(12),PLACE(12),LINE.ODDS(12), \
  28.          PLACE.ODDS.AMOUNT(12),COME.ODDS.AMOUNT(12),\
  29.          DICE.ROLL1%(100),DICE.ROLL2%(100),DICE.ROLL.TOTAL%(100)
  30.  
  31. REM ***************************************************
  32. REM *************   BETS   ****************************
  33. REM ***************************************************
  34.  
  35. 1.11     IF AFTER.ROLL% THEN \
  36.          PRINT :\
  37.          PRINT DIE.ONE%;"+";DIE.TWO%;"=";ROLL%,"Was the Roll"
  38.          IF AFTER.ROLL% AND WINNINGS<>OLD.ROLL.WINNINGS THEN \
  39.          PRINT"Before the roll you had...$";OLD.ROLL.WINNINGS :\
  40.          PRINT"you now have...$";WINNINGS :\
  41.          PRINT"Your net gain or loss on last roll was  ";OLD.ROLL.WINNINGS-WINNINGS :\
  42.          PRINT"Your balance for game now  $";WINNINGS
  43.          PRINT
  44.  
  45. 4:
  46.          IF AFTER.ROLL% THEN \
  47.             INPUT"Hit return when ready";LINE TEMP$
  48.  
  49.          AFTER.ROLL%=0
  50.  
  51.          PRINT CHR$(12)
  52.          IF FIRST% AND LINE.BET<1 THEN \
  53.               PRINT"COMING OUT!!  GET ON THE LINE!!!"
  54.          IF FIRST% AND LINE.BET>1 THEN PRINT "STILL COMING OUT!!"
  55.          PRINT
  56.          PRINT"To take bets off when coming out only answer with 'OFF'..."
  57.          PRINT"To take bets off answer with 'PLACE', 'HARD' or 'FIELD', etc."
  58.          PRINT
  59.          PRINT"To take odds on the line or place, or come answer with 'ODDS'"
  60.          PRINT"To get list of current bets answer next question with 'BETS'"
  61.          PRINT"To get list of available bets answer next question with 'LIST'"
  62.          PRINT"When betting first put in the bet code <CR> then the bet <CR>"
  63.  
  64.          PRINT"If you want to quit put in an 'S' or 'STOP'...."
  65.  
  66.          PRINT
  67.          INPUT"BET..........";LINE BETS$
  68.               RANDOMIZE
  69.          BETS$=UCASE$(BETS$)
  70.  
  71.        IF BETS$="S" OR BETS$="STOP" THEN GOTO 9999
  72.  
  73.          IF VAL(BETS$)>19 THEN \
  74.               PRINT"There aren't that many bets available!!!" :\
  75.               GOTO 1.11
  76.  
  77.          IF BETS$="LIST" THEN GOSUB 5000 :\
  78.               GOTO 1.11
  79.  
  80.          IF BETS$="OFF" THEN \
  81.               OFF%=-1 :\
  82.               GOTO 1.11
  83.  
  84.          IF BETS$="BETS" THEN GOSUB 4500 :\
  85.               GOTO 1.11
  86.  
  87.          IF BETS$="PLACE" THEN GOSUB 12 :\
  88.               GOTO 1.11
  89.  
  90.          IF BETS$="FIELD" THEN GOSUB 14 :\
  91.               GOTO 1.11
  92.  
  93.          IF BETS$="HARD" THEN GOSUB 15 :\
  94.               GOTO 1.11
  95.  
  96.          IF BETS$="ODDS" THEN GOSUB 16 :\
  97.               GOTO 1.11
  98.  
  99.          IF VAL(BETS$)<1 THEN GOTO 100
  100.  
  101.               BETS%=VAL(BETS$)
  102.               ON BETS% GOSUB 10.1,10.2,10.3,10.4,10.5,10.6, \
  103.               10.7,10.8,10.9,11,11.1,11.2,11.3,11.4, \
  104.               11.5,11.6,11.7
  105.               GOTO 1.11
  106.  
  107. 10.1     INPUT "How much do you want to bet on the line?";LINE LINE.BET$
  108.               IF VAL(LINE.BET$)<1 THEN RETURN
  109.               LET LINE.BET=VAL(LINE.BET$)
  110.               WINNINGS=WINNINGS - LINE.BET
  111. RETURN
  112.  
  113. 10.2     INPUT "How much do you want to bet on the Hard four?";LINE HARD4$
  114.               IF VAL(HARD4$)<1 THEN RETURN
  115.               HARD4=VAL(HARD4$)
  116.               WINNINGS=WINNINGS - HARD4
  117. RETURN
  118.  
  119. 10.3     INPUT "How much do you want to bet on the Hard 10?";LINE HARD10$
  120.               IF VAL(HARD10$)<1 THEN RETURN
  121.               LET HARD10=VAL(HARD10$)
  122.               WINNINGS=WINNINGS - HARD10
  123. RETURN
  124.  
  125. 10.4     INPUT "How much do you want to bet on the Hard 6?";LINE HARD6$
  126.               IF VAL(HARD6$)<1 THEN RETURN
  127.               LET HARD6=VAL(HARD6$)
  128.               WINNINGS=WINNINGS - HARD6
  129. RETURN
  130.  
  131. 10.5     INPUT "How much do you want to bet on the Hard 8?";LINE HARD8$
  132.               IF VAL(HARD8$)<1 THEN RETURN
  133.               LET HARD8=VAL(HARD8$)
  134.               WINNINGS=WINNINGS - HARD8
  135. RETURN
  136.  
  137. 10.6     IF FIRST% THEN \
  138.               PRINT"No come bets when coming out!!" :\
  139. RETURN
  140.          INPUT"How much do you want to bet on the Come Line?";LINE COME$
  141.               IF VAL(COME$)<1 THEN RETURN
  142.               COME=VAL(COME$)
  143.               WINNINGS=WINNINGS - COME
  144. RETURN
  145.  
  146. 10.7     INPUT"How much do you want on the BIG SIX?";LINE BIG.SIX$
  147.               IF VAL(BIG.SIX$)<1 THEN RETURN
  148.               LET BIG.SIX=VAL(BIG.SIX$)
  149.               WINNINGS=WINNINGS - BIG.SIX
  150. RETURN
  151.  
  152. 10.8     INPUT"How much do you want on the BIG EIGHT?";LINE BIG.EIGHT$
  153.               IF VAL(BIG.EIGHT$)<1 THEN RETURN
  154.               LET BIG.EIGHT=VAL(BIG.EIGHT$)
  155.               WINNINGS=WINNINGS - BIG.EIGHT
  156. RETURN
  157.  
  158. 10.9     INPUT"How much do you want on the FIELD?";LINE FIELD$
  159.               IF VAL(FIELD$)<1 THEN RETURN
  160.               LET FIELD=VAL(FIELD$)
  161.               WINNINGS=WINNINGS - FIELD
  162. RETURN
  163.  
  164. 11       INPUT"What number do you want to Place? ";PLACE.POINT$
  165.               IF VAL(PLACE.POINT$)<1 THEN GOTO 11
  166.               NUMBER.PLACE%=VAL(PLACE.POINT$)
  167.               PLACE.POINT%(NUMBER.PLACE%)=VAL(PLACE.POINT$)
  168.  
  169.          IF (PLACE.POINT%(NUMBER.PLACE%)=4 OR PLACE.POINT%(NUMBER.PLACE%)= \
  170.          10) OR (PLACE.POINT%(NUMBER.PLACE%)=5 OR \
  171.          PLACE.POINT%(NUMBER.PLACE%)=9) THEN \
  172.               PRINT"Remember, you must bet in UNITS OF 5 on that number" :\
  173.          PRINT"How much do you want to place on the ";PLACE.POINT%(NUMBER.PLACE%) :\
  174.          INPUT PLACE(NUMBER.PLACE%)
  175.               WINNINGS=WINNINGS - PLACE(NUMBER.PLACE%)
  176.  
  177.          IF PLACE.POINT%(NUMBER.PLACE%)=6 OR \
  178.          PLACE.POINT%(NUMBER.PLACE%)=8 THEN \
  179.               PRINT"Remember, you must bet in UNITS OF SIX on that number" :\
  180.          PRINT"How much do you want to place on the ";PLACE.POINT%(NUMBER.PLACE%) :\
  181.          INPUT PLACE(NUMBER.PLACE%)
  182.               WINNINGS=WINNINGS - PLACE(NUMBER.PLACE%)
  183.  
  184.          PRINT"You have placed the following bets so far"
  185. PRINT"NUMBER             BET"
  186.          FOR I%=4 TO 10
  187.               IF PLACE(I%)>0 THEN \
  188.               PRINT PLACE.POINT%(I%); :\
  189.               PRINT TAB(25);PLACE(I%)
  190.          NEXT I%
  191.  
  192.          INPUT"Would you like to place any more bets? ";LINE Y$
  193.               Y$=UCASE$(Y$)
  194.               IF Y$="Y" OR Y$="YES" THEN GOTO 11 ELSE RETURN
  195.  
  196. REM **********************************************************
  197. REM ** THE FOLLOWING SECTION WILL TAKE ONE TIME AND HORN BETS*
  198. REM **********************************************************
  199.  
  200. 11.1     REM  HORN BET
  201.          INPUT"How much on the horn?";LINE HORN$
  202.          HORN$=UCASE$(HORN$)
  203.          LET HORN=VAL(HORN$)
  204.          WINNINGS=WINNINGS-HORN
  205. RETURN
  206.  
  207. 11.2     REM SINGLE ROLL BET ON THE SEVEN
  208.          INPUT"How much on the Seven?...";LINE SEVEN$
  209.          SEVEN$=UCASE$(SEVEN$)
  210.          SEVEN=VAL(SEVEN$)
  211.          WINNINGS=WINNINGS-SEVEN
  212. RETURN
  213.  
  214. 11.3     REM SINGLE ROLL BET ON ANY CRAPS
  215.          INPUT"How much on Any Craps?...";LINE ANY$
  216.          ANY$=UCASE$(ANY$)
  217.          ANY=VAL(ANY$)
  218.          WINNINGS=WINNINGS-ANY
  219. RETURN
  220.  
  221. 11.4     REM SINGLE ROLL BET ON THE ELEVEN
  222.          INPUT"How much on the Eleven?...";LINE ELEVEN$
  223.          ELEVEN$=UCASE$(ELEVEN$)
  224.          ELEVEN=VAL(ELEVEN$)
  225.          WINNINGS=WINNINGS-ELEVEN
  226. RETURN
  227.  
  228. 11.5     REM SINGLE ROLL BET ON THE TWO
  229.          INPUT"How much on the Two?...";LINE EYES$
  230.          EYES$=UCASE$(EYES$)
  231.          EYES=VAL(EYES$)
  232.          WINNINGS=WINNINGS-EYES
  233. RETURN
  234.  
  235. 11.6     REM SINGLE ROLL BET ON THE TWELVE
  236.          INPUT"How much on the Twelve?...";LINE TWELVE$
  237.          TWELVE$=UCASE$(TWELVE$)
  238.          TWELVE=VAL(TWELVE$)
  239.          WINNINGS=WINNINGS-TWELVE
  240. RETURN
  241.  
  242. 11.7     REM SINGLE ROLL BET ON THE THREE
  243.          INPUT"How much on the Three?...";LINE THREE$
  244.          THREE$=UCASE$(THREE$)
  245.          THREE=VAL(THREE$)
  246.          WINNINGS=WINNINGS-THREE
  247. RETURN
  248.  
  249. REM **********************************************************
  250. REM **   THE FOLLOWING SECTION WILL BE USED FOR TAKING BETS **
  251. REM **   OFF IF THE PLAYER SHOULD SO ELECT                  **
  252. REM **********************************************************
  253.  
  254. 12:  REM  TAKE OFF PLACE BETS
  255.          INPUT"What is the number of the place bet you want off?";LINE PLACE$
  256.          IF VAL(PLACE$)<1 THEN GOTO 12
  257.          WINNINGS=WINNINGS+PLACE(VAL(PLACE$))
  258.          PLACE(VAL(PLACE$))=0
  259.          PRINT"You now have $";WINNINGS
  260.          INPUT"Want to take off another?...";LINE Y$
  261.               Y$=UCASE$(Y$)
  262.               IF Y$="Y" OR Y$="YES" THEN GOTO 12 ELSE RETURN
  263.  
  264. 14:   REM TAKE OFF FIELD
  265.          IF FIELD>0 THEN \
  266.          WINNINGS=WINNINGS+FIELD
  267.          PRINT"Field Bet is off, you now have $";WINNINGS
  268.               FIELD=0
  269. RETURN
  270.  
  271. 15:   REM HARDWAYS
  272.          INPUT"Which hardways do you want off?..(No. or 'A')";LINE HARDWAY$
  273.          HARDWAY$=UCASE$(HARDWAY$)
  274.          IF HARDWAY$="ALL" OR HARDWAY$="A" THEN GOTO 15.5
  275.          HARDWAY%=VAL(HARDWAY$)
  276.          FOR I%=4 TO 10 STEP 2
  277.               IF I%=4 AND HARD4>0 THEN \
  278.               WINNINGS=WINNINGS+HARD4 :\
  279.               HARD4=0
  280.  
  281.               IF I%=6 AND HARD6>0 THEN \
  282.               WINNINGS=WINNINGS+HARD6 :\
  283.               HARD6=0
  284.  
  285.               IF I%=8 AND HARD8>0 THEN \
  286.               WINNINGS=WINNINGS+HARD8 :\
  287.               HARD8=0
  288.  
  289.               IF I%=10 AND HARD10>0 THEN \
  290.               WINNINGS=WINNINGS+HARD10 :\
  291.               HARD10=0
  292. NEXT I%
  293.  
  294. RETURN
  295.  
  296. 15.5:  REM  TAKE OFF ALL HARDWAYS AT ONCE
  297.          WINNINGS=WINNINGS+(HARD4+HARD6+HARD8+HARD10)
  298.          HARD4=0 : HARD6=0 : HARD8=0 : HARD10=0
  299. RETURN
  300.  
  301. REM *********************************************************
  302. REM ** THIS SECTION WILL BE USED FOR THE TAKING OF ODDS    **
  303. REM ** THIS WILL INCLUDE PLACE BETS AS WELL AS LINE BETS   **
  304. REM *********************************************************
  305.  
  306. 16:
  307.  
  308.          PRINT"To take the odds on any place, come, or line bet answer "
  309.          PRINT"the next question with one of the following:"
  310.          PRINT"    PLACE"
  311.          PRINT"    LINE"
  312.          PRINT"    COME"
  313.  
  314.          PRINT"Should you want a list of 'ODDS' odds answer next questions "
  315.          PRINT"with 'ODDS'....."
  316.          PRINT
  317.          INPUT"Place, Line, or Come Odds?.....";LINE ODD$
  318.          IF ODD$="PLACE" THEN GOTO 16.1
  319.          IF ODD$="LINE" THEN GOTO 20
  320.          IF ODD$="COME" THEN GOTO 25
  321.          IF ODDS$="ODDS" THEN GOSUB 700 :\
  322.               GOTO 16
  323.  
  324. REM   PLACE-BET ODDS
  325.  
  326. 16.1     INPUT"Which Place Bet did you want odds on?...";LINE PLACE$
  327.          IF PLACE$="ODDS" THEN GOSUB 700 :\
  328.               GOTO 16.1
  329.          PLACE.ODDS%=VAL(PLACE$)
  330.          IF PLACE(PLACE.ODDS%)<1 THEN \
  331.               PRINT"You don't have anything on the";PLACE(PLACE.ODDS%) :\
  332. RETURN
  333.          PRINT"How much odds on the ";PLACE.ODDS%;" Maximum $";PLACE(PLACE.ODDS%)
  334.          INPUT ODDS.AMOUNT
  335.          WINNINGS=WINNINGS-ODDS.AMOUNT
  336.  
  337.          PLACE.ODDS.AMOUNT(PLACE.ODDS%)=ODDS.AMOUNT
  338.  
  339.          INPUT"Would you care to add odds to another bet?..";LINE Y$
  340.               Y$=UCASE$(Y$)
  341.               IF Y$="ODDS" THEN GOSUB 700 :\
  342.               GOTO 16
  343.               IF Y$="Y" OR Y$="YES" THEN GOTO 16 ELSE RETURN
  344.  
  345. REM   ODDS ON LINE BET
  346. 20:
  347.  
  348.          IF NOT FIRST% THEN \
  349.          PRINT"You can put as much as $";LINE.BET;" odds on your line bet.."
  350. 21       INPUT"How much would you like to bet?...";LINE LINE.ODDS$
  351.               IF LINE.ODDS$="ODDS" THEN GOSUB 700 :\
  352.               GOTO 21
  353.  
  354.          LINE.ODDS(POINT%)=VAL(LINE.ODDS$)
  355.          WINNINGS=WINNINGS-LINE.ODDS(POINT%)
  356.  
  357. RETURN
  358.  
  359. REM COME BET ODDS
  360.  
  361. 25       INPUT"Which Come Bet did you want odds on?...";LINE COME$
  362.          COME.ODDS%=VAL(COME$)
  363.          IF COME$="ODDS" THEN GOSUB 700 :\
  364.               GOTO 25
  365.  
  366.          IF COME.BET(COME.ODDS%)<1 THEN \
  367.               PRINT"You don't have anything on the";COME.BET(COME.ODDS%) :\
  368. RETURN
  369.          PRINT"How much odds on the ";COME.ODDS%;" Maximum $";COME.BET(COME.ODDS%)
  370.          INPUT ODDS.AMOUNT
  371.          WINNINGS=WINNINGS-ODDS.AMOUNT
  372.  
  373.          COME.ODDS.AMOUNT(COME.ODDS%)=ODDS.AMOUNT
  374.  
  375.          INPUT"Would you care to add odds to another bet?..";LINE Y$
  376.               Y$=UCASE$(Y$)
  377.               IF Y$="Y" OR Y$="YES" THEN GOTO 16 ELSE RETURN
  378.  
  379. 100      IF NOT FIRST% THEN GOTO 120
  380.  
  381. REM **************************************************************
  382. REM ** THE FOLLOWING IS THE ROLL AND PAYOFFS FOR LINE.BET BETS  **
  383. REM **************************************************************
  384.  
  385. REM *****************  FIRST ROLL (COMING OUT)  ****************
  386. 110:
  387.  
  388.          GOSUB 6000
  389.  
  390.          ON ROLL% - 1 GOSUB 150,150,160,160,160, \
  391.               190,160,160,160,190,150
  392.  
  393.          IF ROLL%=3 AND THREE>0 THEN \
  394.          WINNINGS=WINNINGS+(THREE*15)+THREE :\
  395.          THREE=0
  396.  
  397.          IF ROLL%=2 AND TWO>0 THEN \
  398.          WINNINGS=WINNNINGS+(TWO*30)+TWO :\
  399.          TWO=0
  400.  
  401.          IF ROLL%=12 AND TWELVE>0 THEN \
  402.          WINNINGS=WINNINGS+(TWELVE*30)+TWELVE :\
  403.          TWELVE=0
  404.  
  405.          IF ROLL%=11 AND ELEVEN>0 THEN \
  406.          WINNINGS=WINNINGS+(ELEVEN*15)+ELEVEN :\
  407.          ELEVEN=0
  408.  
  409. GOTO 1.11
  410.  
  411. REM *****************SECOND ROLL (NOT COMING OUT)***************
  412. 120:
  413.          FIRST%=0
  414.          GOSUB 6000
  415.  
  416.          IF ROLL%=3 AND THREE>0 THEN \
  417.          WINNINGS=WINNINGS+(THREE*15)+THREE :\
  418.          THREE=0
  419.  
  420.          IF ROLL%=2 AND TWO>0 THEN \
  421.          WINNINGS=WINNNINGS+(TWO*30)+TWO :\
  422.          TWO=0
  423.  
  424.          IF ROLL%=12 AND TWELVE>0 THEN \
  425.          WINNINGS=WINNINGS+(TWELVE*30)+TWELVE :\
  426.          TWELVE=0
  427.  
  428.          IF ROLL%=11 AND ELEVEN>0 THEN \
  429.          WINNINGS=WINNINGS+(ELEVEN*15)+ELEVEN :\
  430.          ELEVEN=0
  431.  
  432.          ON ROLL% - 1 GOSUB \
  433.               180,180,170,170,170,140,170,170,170,195,180
  434.  
  435.          IF ROLL%=POINT% THEN GOSUB 130
  436.  
  437. GOTO 1.11
  438.  
  439. REM ***********************************************
  440. REM ** WIN ON LINE BY MAKING POINT               **
  441. REM************************************************
  442.  
  443. 130      PRINT "YOU WIN  - - BY MAKING YOUR POINT." :\
  444.               WINNINGS=WINNINGS+(LINE.BET*2) :\
  445.          LINE.BET=0
  446.  
  447.          IF LINE.ODDS(ROLL%)>0 THEN GOSUB 668
  448.  
  449.          FIRST%= - 1
  450. RETURN
  451.  
  452. REM ******************************************************
  453. REM ** SEVEN IS ROLLED  -  NOT ON COME OUT              **
  454. REM ******************************************************
  455.  
  456. 140    PRINT "YOU LOSE  - - BY FAILING TO MAKE POINT BEFORE ROLLING 7." :\
  457.               LINE.BET=0
  458.  
  459.          GOSUB 300   REM PLACE BETS & HARDWAYS GO DOWN
  460.  
  461.          IF ANY>0 THEN LET ANY=0
  462.          IF TWELVE>0 THEN LET TWELVE=0
  463.          IF THREE>0 THEN LET THREE=0
  464.          IF TWO>0 THEN LET TWO=0
  465.          IF ELEVEN>0 THEN LET ELEVEN=0
  466.  
  467.          IF SEVEN>0 THEN \
  468.               WINNINGS=WINNINGS+(SEVEN*8) :\
  469.               PRINT"Winner on the Seven...." :\
  470.               SEVEN=0
  471.  
  472.          IF BIG.SIX>0 OR BIG.EIGHT>0 THEN GOSUB 450
  473.  
  474.          IF COME>0 THEN \
  475.               PRINT"Winner on the come line!!..." :\
  476.               WINNINGS=WINNINGS+(COME*2) :\
  477.               COME=0
  478.  
  479.          FOR I%=4 TO 10
  480.               IF COME.BET(I%)>0 THEN \
  481.               PRINT"Come Bet on the ";ROLL%;"coming down!!" :\
  482.               COME.BET(I%)=0
  483.          NEXT I%
  484.  
  485.          FOR I%=4 TO 10
  486.               IF LINE.ODDS(I%)>0 THEN \
  487.               PRINT"You have also lost your line odds!!! " :\
  488.               LINE.ODDS(I%)=0
  489.          NEXT I%
  490.  
  491.          FIRST%= - 1
  492.  
  493. RETURN
  494.  
  495. REM *******************************************************
  496. REM ** 2,3, OR 12 IS ROLLED  -  COMING OUT               **
  497. REM********************************************************
  498.  
  499. 150      PRINT "YOU LOSE ON THE FIRST ROLL  -  2,3, OR 12 ." :\
  500.               LINE.BET=0
  501.  
  502.          IF FIELD>0 THEN GOSUB 500
  503.  
  504.          FIRST%= - 1
  505.  
  506.  
  507. RETURN
  508.  
  509. 160:
  510. REM *******************************************************
  511. REM **  THIS SECTION TAKES CARE OF FIRST ROLLS IF THEY   **
  512. REM **  HAPPEN TO BE A 4,5,6,8,9, OR A 10                **
  513. REM *******************************************************
  514.  
  515.          IF FIELD>0 AND (ROLL%<5 OR ROLL%>8) THEN \
  516.                GOSUB 500
  517.  
  518.          IF COME.BET(ROLL%)>0 THEN \
  519.               PRINT "Winner on the come!!... ";ROLL% :\
  520.               WINNINGS=WINNINGS+(COME.BET(ROLL%)*2) :\
  521.               COME.BET(ROLL%)=0
  522.  
  523.          IF (BIG.SIX>0 OR BIG.EIGHT>0) AND (ROLL%=6 OR ROLL%=8) THEN \
  524.               GOSUB 400
  525.  
  526.          IF NOT OFF% THEN \
  527.               GOSUB 350 :\
  528.               GOSUB 600
  529.  
  530.          IF (DIE.ONE%=DIE.TWO%) AND NOT OFF% THEN \
  531.          ON ROLL% - (ROLL%/2) GOSUB 110,205,250,260,210
  532.  
  533.          IF FIELD>0 AND (ROLL%>4 AND ROLL%<9) THEN \
  534.               PRINT"Field Bets are lost (damn!)..." :\
  535.               FIELD=0
  536.  
  537.          IF NOT OFF% AND PLACE(ROLL%)>0 THEN GOSUB 550
  538.  
  539. FIRST%=0
  540. RETURN
  541.  
  542. 170:
  543.  
  544. REM ******************************************************
  545. REM ** THIS SECTION TAKES CARE OF ROLLS IF THEY ARE NOT **
  546. REM ** COMING OUT AND HAPPEN TO BE A 4,5,6,8,9, OR 10   **
  547. REM ******************************************************
  548.  
  549.          IF (BIG.SIX>0 OR BIG.EIGHT>0) AND (ROLL%=6 OR ROLL%=8) THEN \
  550.               GOSUB 400
  551.  
  552.          IF DIE.ONE%=DIE.TWO% THEN \
  553.          ON ROLL% - (ROLL%/2) GOSUB 110,205,250,260,210
  554.  
  555.          IF COME.BET(ROLL%)>0 THEN \
  556.               PRINT"Winner on the come ";ROLL% :\
  557.               WINNINGS=WINNINGS+(COME.BET(ROLL%)*2) :\
  558.               COME.BET(ROLL%)=0
  559.  
  560.          IF COME > 0 THEN LET COME.BET(ROLL%)=COME :\
  561.               COME=0
  562.  
  563.          IF DIE.ONE%<>DIE.TWO% THEN \
  564.               GOSUB 350
  565.  
  566.          IF FIELD>0 AND (ROLL%<5 OR ROLL%>8) THEN \
  567.               GOSUB 500
  568.               GOSUB 600
  569.  
  570.           IF FIELD>0 AND (ROLL%=5 OR ROLL%=6 OR ROLL%=8) THEN \
  571.               PRINT"Field Bets are lost (double-damn!!).." :\
  572.               FIELD=0
  573.  
  574.          IF PLACE(ROLL%)>0 THEN GOSUB 550
  575.  
  576. FIRST%=0
  577. RETURN
  578.  
  579. 180:
  580.  
  581. REM **********************************************************
  582. REM ** THIS SECTION TAKES CARE OF 2,3, OR 12 ROLL IF NOT    **
  583. REM ** COMING OUT                                           **
  584. REM **********************************************************
  585.  
  586.          IF COME>0 THEN \
  587.               PRINT"Come Line bets just went away..." :\
  588.               COME=0
  589.  
  590.          IF ANY>0 THEN LET WINNINGS=WINNINGS+(ANY*7)+ANY :\
  591.               ANY=0
  592.          IF FIELD>0 THEN GOSUB 500
  593.  
  594. FIRST%=0
  595. RETURN
  596.  
  597. REM **********************************************************
  598. REM ** THIS SECTION IS WHEN FIRST ROLL IS 7 OR 11           **
  599. REM **********************************************************
  600.  
  601. 190      PRINT "YOU WIN ON THE FIRST ROLL  -  7 OR 11." :\
  602.               WINNINGS=WINNINGS+(LINE.BET*2) :\
  603.               LINE.BET=0
  604.  
  605.          IF ANY>0 THEN LET ANY=0
  606.          IF TWELVE>0 THEN LET TWELVE=0
  607.          IF THREE>0 THEN LET THREE=0
  608.          IF TWO>0 THEN LET TWO=0
  609.          IF ELEVEN>0 THEN LET ELEVEN=0
  610.  
  611.          IF SEVEN>0 THEN \
  612.               WINNINGS=WINNINGS+(SEVEN*8) :\
  613.               PRINT"Winner on the Seven...." :\
  614.               SEVEN=0
  615.  
  616.          IF NOT OFF% THEN GOSUB 300
  617.  
  618.          IF ROLL%=7 AND OFF% THEN \
  619.               FOR I%=4 TO 10 :\
  620.                    WINNINGS=WINNINGS+COME.ODDS.AMOUNT(ROLL%) :\
  621.                    COME.ODDS.AMOUNT(ROLL%)=0 :\
  622.               NEXT I%
  623.  
  624.          IF FIELD>0 AND ROLL%=7 THEN \
  625.               PRINT "You have just lost your $";FIELD;"field bet" :\
  626.               FIELD=0
  627.  
  628.          IF FIELD>0 AND ROLL%=11 THEN \
  629.               GOSUB 500
  630.  
  631.          IF (BIG.SIX>0 OR BIG.EIGHT>0) AND ROLL%=7 THEN GOSUB 450
  632.  
  633.          FIRST%= - 1
  634.  
  635. RETURN
  636.  
  637. 195:
  638.  
  639. REM **************************************************************
  640. REM ** THIS SECTION PAYS ON THE COME IF ROLL IS 11         **
  641. REM **************************************************************
  642.  
  643.          IF COME > 0 THEN \
  644.               WINNINGS=WINNINGS+(COME*2)
  645.               PRINT "Win on the come line......"
  646.               COME=0
  647.          FIRST%=0
  648.  
  649.          IF FIELD>0 THEN GOSUB 500
  650.  
  651. RETURN
  652.  
  653. 200:
  654. REM ***********************************************************
  655. REM **     PAYOFF ON HARD 4 & 10  *****************************
  656. REM ***********************************************************
  657.  
  658. 205:
  659.          IF HARD4<1 THEN RETURN
  660.          PRINT"Winner on the Hard 4!!..."
  661.          WINNINGS=WINNINGS+(HARD4*8)
  662. RETURN
  663.  
  664. 210:
  665.          IF HARD10<1 THEN RETURN
  666.          PRINT"Winner on the Hard 10"
  667.          WINNINGS=WINNINGS+(HARD10*8)
  668. RETURN
  669.  
  670. 250:
  671. REM ***************************************************
  672. REM **  PAYOFF ON HARD 6 & 8  *************************
  673. REM ***************************************************
  674.  
  675.          IF HARD6<1 THEN RETURN
  676.               PRINT"Winner on the Hard 6!!..."
  677.          WINNINGS=WINNINGS+(HARD6*10)
  678.          PRINT "WINNINGS NOW = $";WINNINGS
  679. RETURN
  680.  
  681. 260:
  682.          IF HARD8<1 THEN RETURN
  683.          PRINT"Winner on the Hard 8!!..."
  684.          WINNINGS=WINNINGS+(HARD8*10)
  685. RETURN
  686. RETURN
  687.  
  688. 300:
  689. REM *******************************************************
  690. REM **      LOSSES WHEN SEVEN IS ROLLED                 ***
  691. REM *******************************************************
  692.  
  693. REM  HARDWAYS
  694.          IF HARD4>0 OR HARD6>0 OR HARD8>0 OR HARD10>0 THEN \
  695.          PRINT"Your hardways just fell...." :\
  696.               HARD4=0
  697.               HARD6=0
  698.               HARD8=0
  699.               HARD10=0
  700.  
  701.          IF LINE.ODDS(ROLL%)>0 THEN \
  702.               PRINT"You have lost your odds on the line!!.."
  703.               LINE.ODDS=0
  704.  
  705.          FOR I%=4 TO 10
  706.               IF PLACE(I%)>0 THEN \
  707.               PRINT"Place Bet on the ";i%; "coming down!!" :\
  708.               PLACE(I%)=0
  709.          NEXT I%
  710.          NUMBER.PLACE%=0
  711.  
  712.          FOR I%=4 TO 10
  713.               IF COME.BET(I%)>0 THEN \
  714.               PRINT"Come Bet on the ";I%;"coming down!!" :\
  715.               COME.BET(ROLL%)=0
  716.          NEXT I%
  717.  
  718.          FOR I%=4 TO 10
  719.               IF PLACE.ODDS.AMOUNT(I%)>0 THEN \
  720.               PRINT"Odds on the ";I%;"coming down!!" :\
  721.               PLACE.ODDS.AMOUNT(I%)=0
  722.          NEXT I%
  723.  
  724.          FOR I%=4 TO 10
  725.               IF COME.ODDS.AMOUNT(I%)>0 THEN \
  726.               PRINT"Odds on the ";I%;"coming down!!" :\
  727.               COME.ODDS.AMOUNT(I%)=0
  728.          NEXT I%
  729.  
  730.          IF FIELD>0 AND ROLL%=7 THEN \
  731.               PRINT "You have just lost your $";FIELD;"field bet" :\
  732.               FIELD=0
  733.  
  734. RETURN
  735.  
  736. 350:
  737.  
  738. REM ***********************************************************
  739. REM **         HARDWAYS GO DOWN                             ***
  740. REM ***********************************************************
  741.  
  742.          IF ROLL%=4 AND DIE.ONE% <> DIE.TWO% AND HARD4>0 THEN  :\
  743.               PRINT"Hard 4 just went down...." :\
  744.               HARD4=0
  745.  
  746.          IF ROLL%=6 AND DIE.ONE% <> DIE.TWO% AND HARD6>0 THEN  :\
  747.               PRINT"HARD 6 just went down...." :\
  748.               HARD6=0
  749.  
  750.          IF ROLL%=8 AND DIE.ONE% <> DIE.TWO% AND HARD8>0 THEN  :\
  751.               PRINT"HARD 8 just went down...." :\
  752.               HARD8=0
  753.  
  754.          IF ROLL%=10 AND DIE.ONE% <> DIE.TWO% AND HARD10>0 THEN  :\
  755.               PRINT"HARD 10 just went down...." :\
  756.               HARD10=0
  757.  
  758.  
  759. RETURN
  760.  
  761. 400:
  762.  
  763. REM ************************************************************
  764. REM **        BIG SIX & EIGHT                                 **
  765. REM ************************************************************
  766.  
  767.          IF ROLL%<>6 THEN GOTO 440
  768.             IF BIG.SIX>0 THEN LET WINNINGS=WINNINGS+(BIG.SIX*2) :\
  769.             PRINT"Lucked out on the big six..." :\
  770.             BIG.SIX=0 :\
  771. RETURN
  772.  
  773. 440      IF BIG.EIGHT>0 THEN LET WINNINGS=WINNINGS+(BIG.EIGHT*2) :\
  774.          PRINT"Lucked out on the big eight..." :\
  775.          BIG.EIGHT=0
  776.  
  777. RETURN
  778.  
  779. 450:
  780.  
  781. REM ************************************************************
  782. REM **       BIG SIX & EIGHT GO DOWN                          **
  783. REM ************************************************************
  784.  
  785.          IF BIG.SIX>0 THEN \
  786.          PRINT"Suprise!! You just lost your big six bet" :\
  787.          BIG.SIX=0
  788.  
  789.          IF BIG.EIGHT>0 THEN \
  790.          PRINT"Suprise!! You just lost your big eight bet" :\
  791.          BIG.EIGHT=0
  792.  
  793. RETURN
  794.  
  795. 500:
  796.  
  797. REM *************************************************
  798. REM **            FIELD BETS                        **
  799. REM *************************************************
  800.  
  801.          IF ROLL% <> 11 THEN GOTO 505
  802.          PRINT"Win on the field !! " :\
  803.          PRINT"You now have $";FIELD*2;" on the field." :\
  804.               LET FIELD=FIELD*2 :\
  805.          INPUT"Do you want to leave it? ";LINE Y$ :\
  806.               Y$=UCASE$(Y$) 
  807.               IF LEFT$(Y$,1)="Y" THEN RETURN
  808.          WINNINGS=WINNINGS+FIELD :\
  809.               FIELD=0 :\
  810.               RETURN
  811.  
  812. 505      IF ROLL% <> 2 THEN GOTO 510
  813.          PRINT"Win on the field !! " :\
  814.          PRINT"You now have $";FIELD*3;" on the Field." :\
  815.                LET FIELD=FIELD*3 :\
  816.          INPUT"Do you want to leave it? ";LINE Y$ :\
  817.               Y$=UCASE$(Y$)
  818.               IF LEFT$(Y$,1)="Y" THEN RETURN
  819.          WINNINGS=WINNINGS+FIELD :\
  820.               FIELD=0 :\
  821.               RETURN
  822.  
  823. 510      IF ROLL% <> 12 THEN GOTO 520
  824.          PRINT"Win on the field !! " :\
  825.          PRINT"You now have $";FIELD*4;" on the Field." :\
  826.                LET FIELD=FIELD*4 :\
  827.          INPUT"Do you want to leave it? ";LINE Y$ :\
  828.               Y$=UCASE$(Y$)
  829.               IF LEFT$(Y$,1)="Y" THEN RETURN
  830.          WINNINGS=WINNINGS+FIELD :\
  831.               FIELD=0 :\
  832.               RETURN
  833.  
  834. 520:
  835.          IF ROLL%=7 THEN RETURN
  836.          PRINT"Win on the field !! " :\
  837.          PRINT"You now have $";FIELD*2;" on the Field." :\
  838.                LET FIELD=FIELD*2 :\
  839.          INPUT"Do you want to leave it? ";LINE Y$ :\
  840.               Y$=UCASE$(Y$)
  841.               IF LEFT$(Y$,1)="Y" THEN RETURN
  842.          WINNINGS=WINNINGS+FIELD :\
  843.               FIELD=0
  844.  
  845.          RETURN
  846.  
  847. 550:
  848.  
  849. REM ***********************************************************
  850. REM **           PLACE BET WINS                              **
  851. REM ***********************************************************
  852.  
  853.          IF PLACE(ROLL%)>0 THEN GOTO 560 ELSE GOTO 570
  854. 560           PLACE(ROLL%)=PLACE(ROLL%)+INT((PLACE(ROLL%)) * 1.8) :\
  855.               PRINT"You now have $";INT%(PLACE(ROLL%)); :\
  856.               PRINT" on the ";ROLL% :\
  857.               INPUT"Do you want to leave it on?";LINE Y$
  858.               Y$=UCASE$(Y$)
  859.               IF LEFT$(Y$,1)="Y" THEN RETURN
  860.          WINNINGS=WINNINGS+INT%((PLACE(ROLL%)))
  861.          PLACE(ROLL%)=0
  862.  
  863. 570     IF PLACE(ROLL%)>0 THEN GOTO 571 ELSE GOTO 575
  864. 571           PLACE(ROLL%)=PLACE(ROLL%)+INT%(PLACE(ROLL%)) * 1.8 :\
  865.               PRINT"You now have $";INT%(PLACE(ROLL%)); :\
  866.               PRINT" on the ";ROLL% :\
  867.               INPUT"Do you want to leave it on?";LINE Y$
  868.               Y$=UCASE$(Y$)
  869.               IF LEFT$(Y$,1)="Y" THEN RETURN
  870.          WINNINGS=WINNINGS+INT%((PLACE(ROLL%)))
  871.          PLACE(ROLL%)=0
  872.  
  873. 575      IF PLACE(ROLL%)>0 THEN GOTO 576 ELSE GOTO 580
  874. 576           PLACE(ROLL%)=PLACE(ROLL%)+ INT%(PLACE(ROLL%)) * 1.4 :\
  875.               PRINT"You now have $";INT%(PLACE(ROLL%)); :\
  876.               PRINT" on the ";ROLL% :\
  877.               INPUT"Do you want to leave it on?";LINE Y$
  878.               Y$=UCASE$(Y$)
  879.               IF LEFT$(Y$,1)="Y" THEN RETURN
  880.          WINNINGS=WINNINGS+ INT%((PLACE(ROLL%)))
  881.          PLACE(ROLL%)=0
  882.  
  883. 580      IF PLACE(ROLL%)>0 THEN GOTO 581 ELSE GOTO 585
  884. 581           PLACE(ROLL%)=PLACE(ROLL%)+ INT%(PLACE(ROLL%)) * 1.4 :\
  885.               PRINT"You now have $";INT%(PLACE(ROLL%)); :\
  886.               PRINT" on the ";ROLL% :\
  887.               INPUT"Do you want to leave it on?";LINE Y$
  888.               Y$ = UCASE$(Y$)
  889.               IF LEFT$(Y$,1)="Y" THEN RETURN
  890.          WINNINGS=WINNINGS + INT%((PLACE(ROLL%)))
  891.          PLACE(ROLL%)=0
  892.  
  893. 585      IF PLACE(ROLL%)>0 THEN GOTO 586 ELSE GOTO 590
  894. 586           PLACE(ROLL%)=PLACE(ROLL%) + INT%(PLACE(ROLL%)) * 1.166666667 :\
  895.               PRINT"You now have $";INT%(PLACE(ROLL%)); :\
  896.               PRINT" on the ";ROLL% :\
  897.               INPUT"Do you want to leave it on?";LINE Y$
  898.               Y$=UCASE$(Y$)
  899.               IF LEFT$(Y$,1)="Y" THEN RETURN
  900.          WINNINGS=WINNINGS + INT%((PLACE(ROLL%)))
  901.          PLACE(ROLL%)=0
  902.  
  903. 590      IF PLACE(ROLL%)>0 THEN GOTO 591 ELSE RETURN
  904. 591           PLACE(ROLL%)=PLACE(ROLL%) + INT%(PLACE(ROLL%)) * 1.66666667 :\
  905.               PRINT"You now have $";INT%(PLACE(ROLL%)); :\
  906.               PRINT" on the ";ROLL% :\
  907.               INPUT"Do you want to leave it on?";LINE Y$
  908.               Y$=UCASE$(Y$)
  909.               IF LEFT$(Y$,1)="Y" THEN RETURN
  910.          WINNINGS=WINNINGS + INT%((PLACE(ROLL%)*1.66666667))
  911.          PLACE(ROLL%)=0
  912.          RETURN
  913.  
  914. 600:
  915.  
  916. REM ***********************************************************
  917. REM **  THIS SECTION WILL DEAL WITH PAYING OFF ANY ODDS      **
  918. REM **  BETS THERE HAPPEN TO BE                              **
  919. REM ***********************************************************
  920.  
  921. 605      IF PLACE.ODDS.AMOUNT(ROLL%)>0 THEN GOTO 606 ELSE GOTO 618
  922. 606           PLACE.ODDS.AMOUNT(ROLL%)=PLACE.ODDS.AMOUNT(ROLL%) + INT%(PLACE.ODDS.AMOUNT(ROLL%)) * 3 :\
  923.               PRINT"You now have $";INT%(PLACE.ODDS.AMOUNT(ROLL%)); :\
  924.               PRINT" on the Place Odds ";ROLL% :\
  925.               INPUT"Do you want to leave it on?";LINE Y$
  926.               Y$=UCASE$(Y$)
  927.               IF LEFT$(Y$,1)="Y" THEN RETURN
  928.          WINNINGS=WINNINGS + INT%((PLACE.ODDS.AMOUNT(ROLL%)))
  929.          PLACE.ODDS.AMOUNT(ROLL%)=0
  930.  
  931. 618      IF PLACE.ODDS.AMOUNT(ROLL%)>0 THEN GOTO 616 ELSE GOTO 628
  932. 616           PLACE.ODDS.AMOUNT(ROLL%)=PLACE.ODDS.AMOUNT(ROLL%) + INT%(PLACE.ODDS.AMOUNT(ROLL%)) * (3/2) :\
  933.               PRINT"You now have $";INT%(PLACE.ODDS.AMOUNT(ROLL%)); :\
  934.               PRINT" on the Place Odds ";ROLL% :\
  935.               INPUT"Do you want to leave it on?";LINE Y$
  936.               Y$=UCASE$(Y$)
  937.               IF LEFT$(Y$,1)="Y" THEN RETURN
  938.          WINNINGS=WINNINGS + INT%((PLACE.ODDS.AMOUNT(ROLL%)))
  939.          PLACE.ODDS.AMOUNT(ROLL%)=0
  940.  
  941. 628      IF PLACE.ODDS.AMOUNT(ROLL%)>0 THEN GOTO 626 ELSE GOTO 638
  942. 626           PLACE.ODDS.AMOUNT(ROLL%)=PLACE.ODDS.AMOUNT(ROLL%) + INT%(PLACE.ODDS.AMOUNT(ROLL%)) * (6/5) :\
  943.               PRINT"You now have $";INT%(PLACE.ODDS.AMOUNT(ROLL%)); :\
  944.               PRINT" on the Place Odds ";ROLL% :\
  945.               INPUT"Do you want to leave it on?";LINE Y$
  946.               Y$=UCASE$(Y$)
  947.               IF LEFT$(Y$,1)="Y" THEN RETURN
  948.          WINNINGS=WINNINGS + INT%((PLACE.ODDS.AMOUNT(ROLL%)))
  949.          PLACE.ODDS.AMOUNT(ROLL%)=0
  950.  
  951.  
  952. 638      IF COME.ODDS.AMOUNT(ROLL%)>0 THEN GOTO 639 ELSE GOTO 648
  953. 639           COME.ODDS.AMOUNT(ROLL%)=COME.ODDS.AMOUNT(ROLL%) + INT%(COME.ODDS.AMOUNT(ROLL%)) * 3 :\
  954.          WINNINGS=WINNINGS + INT%((COME.ODDS.AMOUNT(ROLL%)))
  955.          COME.ODDS.AMOUNT(ROLL%)=0
  956.  
  957. 648      IF COME.ODDS.AMOUNT(ROLL%)>0 THEN GOTO 646 ELSE GOTO 658
  958. 646           COME.ODDS.AMOUNT(ROLL%)=COME.ODDS.AMOUNT(ROLL%) + INT%(COME.ODDS.AMOUNT(ROLL%)) * (3/2) :\
  959.          WINNINGS=WINNINGS + INT%((COME.ODDS.AMOUNT(ROLL%)))
  960.          COME.ODDS.AMOUNT(ROLL%)=0
  961.  
  962. 658      IF COME.ODDS.AMOUNT(ROLL%)>0 THEN GOTO 656 ELSE GOTO 668
  963. 656           COME.ODDS.AMOUNT(ROLL%)=COME.ODDS.AMOUNT(ROLL%) + INT%(COME.ODDS.AMOUNT(ROLL%)) * (6/5) :\
  964.          WINNINGS=WINNINGS + INT%((COME.ODDS.AMOUNT(ROLL%)))
  965.          COME.ODDS.AMOUNT(ROLL%)=0
  966.  
  967. 668      IF  LINE.ODDS(ROLL%)>0 THEN GOTO 666 ELSE GOTO 678
  968. 666      IF ROLL%=6 OR ROLL%=8 THEN \
  969.               LINE.ODDS(ROLL%)=LINE.ODDS(ROLL%) + INT%(LINE.ODDS(ROLL%)) * (6/5)
  970.  
  971.          IF ROLL%=4 OR ROLL%=10 THEN \
  972.          LINE.ODDS(ROLL%)=LINE.ODDS(ROLL%)+(LINE.ODDS(ROLL%)*2)
  973.  
  974.          IF ROLL%=5 OR ROLL%=9 THEN \
  975.          LINE.ODDS(ROLL%)=LINE.ODDS(ROLL%)+(LINE.ODDS(ROLL%)*(3/2))
  976.  
  977.          WINNINGS=WINNINGS + INT%((LINE.ODDS(ROLL%)))
  978.          LINE.ODDS(ROLL%)=0
  979.          RETURN
  980.  
  981. 678 RETURN
  982.  
  983. 700:
  984.  
  985. REM *******************************************************
  986. REM ** THIS SECTION IS A LIST OF ODDS PAYED ON THE ODDS  **
  987. REM *******************************************************
  988.  
  989.          PRINT"4 AND 10 ";TAB(20);"2 TO 1"
  990.          PRINT"5 AND 9  ";TAB(20);"3 TO 2"
  991.          PRINT"6 AND 8  ";TAB(20);"6 T0 5"
  992.  
  993. RETURN
  994.  
  995. 800:
  996.  
  997. REM *******************************************************
  998. REM ** THE FOLLOWING IS AN ATTEMPT TO EXPLAIN THE        **
  999. REM ** ACCOUNTING USED IN THIS PROGRAM                   **
  1000. REM *******************************************************
  1001.  
  1002. PRINT"Certain assumptions have been made in this program which might"
  1003. PRINT"help and explain to the player how he can tell how he is doing"
  1004. PRINT"and how much he has won or lost after each roll."
  1005. PRINT"    The first point is that all money put on the table is"
  1006. PRINT"    considered to be lost until the bet is actually won"
  1007. PRINT"    i.e. Every bet is a minus amount unless it is either"
  1008. PRINT"    taken off or won.  What this means is that if you are"
  1009. PRINT"    just starting out and bet $10.00 then the balance will"
  1010. PRINT"    show you to be $10.00 in the hold, etc."
  1011. PRINT
  1012. PRINT"    The amounts shown after each roll (net win or loss)"
  1013. PRINT"    is the difference between what you started with and"
  1014. PRINT"    what you have after the roll.  If you have been"
  1015. PRINT"    losing steadily this figure will show up as a minus"
  1016. PRINT"    figure even though you might have gained in actuality."
  1017. PRINT
  1018. PRINT"    All this may seem confusing but after you work with"
  1019. PRINT"    it for a little while I suspect it will remain just"
  1020. PRINT"    as murkey as it does right now!!!"
  1021. PRINT
  1022. RETURN
  1023.  
  1024. 4500:
  1025.  
  1026. REM **************************************************************
  1027. REM ** THIS SECTION WILL TELL THE PLAYER WHAT BETS HE OR SHE    **
  1028. REM ** HAS OUT, HOW MUCH HE HAS BET ON EACH ONE AND HOW MUCH    **
  1029. REM ** TOTAL IS BET - THIS, IN THEORY CAN BE CALLED AT ANY TIME **
  1030. REM **************************************************************
  1031.  
  1032. PRINT CHR$(12)
  1033.  
  1034. IF LINE.BET>0 THEN PRINT "LINE BET";TAB(25);"$";LINE.BET
  1035. IF HARD4>0 THEN PRINT"HARD 4";TAB(25);"$";HARD4;TAB(30);
  1036. IF HARD6>0 THEN PRINT"HARD 6"; TAB(60);"$";HARD6
  1037. IF HARD8>0 THEN PRINT"HARD 8";TAB(25);"$";HARD8;TAB(30);
  1038. IF HARD10>0 THEN PRINT"HARD 10";TAB(60);"$";HARD10
  1039. IF FIELD>0 THEN PRINT"FIELD";TAB(25);"$";FIELD;TAB(30);
  1040. IF COME>0 THEN PRINT "COME LINE";TAB(60);"$";COME
  1041. IF BIG.EIGHT>0 THEN PRINT "BIG 8";TAB(25);"$";BIG.EIGHT;TAB(60);
  1042. IF BIG.SIX>0 THEN PRINT "BIG 6";TAB(60);"$";BIG.SIX
  1043. IF HORN>0 THEN PRINT"HORN";TAB(25);"$";HORN;TAB(60);
  1044. IF TWO>0 THEN PRINT"TWO";TAB(60);"$";TWO
  1045. IF THREE>0 THEN PRINT"THREE";TAB(25);"$";THREE;TAB(60);
  1046. IF TWELVE>0 THEN PRINT"TWELVE";TAB(60);"$";TWELVE
  1047. IF SEVEN>0 THEN PRINT"SEVEN";TAB(25);"$";SEVEN;TAB(60);
  1048. IF ELEVEN>0 THEN PRINT"ELEVEN";TAB(60);"$";ELEVEN
  1049. IF ANY>0 THEN PRINT"ANY CRAPS";TAB(25);"$";ANY;TAB(60);
  1050.  
  1051.         FOR I%=4 TO 10
  1052.               IF COME.BET(I%)>0 THEN \
  1053.         PRINT "COME BET on the "; :\
  1054.                PRINT I%;TAB(25);COME.BET(I%) :\
  1055.         COME.TOTAL=COME.TOTAL + COME.BET(I%)
  1056.     NEXT I%
  1057.  
  1058.          FOR I%=4 TO 10
  1059.               IF PLACE(I%)>0 THEN \
  1060.               PRINT"PLACE  ";I%;TAB(25);"$";PLACE(I%) :\
  1061.               TOTAL.PLACE=TOTAL.PLACE + PLACE(I%)
  1062.          NEXT I%
  1063.  
  1064.          FOR I%=4 TO 10
  1065.               IF LINE.ODDS(I%)>0 THEN \
  1066.               PRINT"LINE ODDS ";TAB(25);LINE.ODDS(I%)
  1067.  
  1068.               IF PLACE.ODDS.AMOUNT(I%)>0 THEN \
  1069.               PRINT"PLACE ODDS AMOUNT ";I%;TAB(25);"$";PLACE.ODDS.AMOUNT(I%)
  1070.  
  1071.               IF COME.ODDS.AMOUNT(I%)>0 THEN \
  1072.               PRINT"COME ODDS AMOUNT ";I%;TAB(25);"$";COME.ODDS.AMOUNT(I%)
  1073.  
  1074.               TOTAL.ODDS=TOTAL.ODDS + \
  1075.               LINE.ODDS(I%) + PLACE.ODDS.AMOUNT(I%) + COME.ODDS.AMOUNT(I%)
  1076.          NEXT I%
  1077.  
  1078. TOTAL.BETS=LINE.BET+HARD4+HARD6+HARD8+HARD10+COME.TOTAL+ \
  1079.          FIELD+TOTAL.PLACE+TOTAL.ODDS+COME+BIG.EIGHT+BIG.SIX \
  1080.          +TWO+TWELVE+THREE+SEVEN+ANY+HORN
  1081. IF TOTAL.BETS<1 THEN LET TOTAL.BETS=0
  1082. PRINT"TOTAL BETS OUT=$";TOTAL.BETS
  1083. PRINT"Your total bets, wins and losses are $";INT%(WINNINGS)
  1084. PRINT"You started with $";OLD.WINNINGS
  1085. PRINT"Your Balance is $";OLD.WINNINGS+INT%(WINNINGS)
  1086. COME.TOTAL=0
  1087. TOTAL.PLACE=0
  1088. TOTAL.ODDS=0
  1089. LET TOTAL.BETS=0
  1090. PRINT
  1091. IF FIRST% THEN \
  1092.          PRINT "You are coming out!" ELSE \
  1093.          PRINT "The Point is ";POINT%
  1094.  
  1095. PRINT
  1096. INPUT"If you want to quit put in an 'S' or 'STOP' Else hit return..";LINE TEMP$
  1097. IF TEMP$="S" OR TEMP$="STOP" THEN GOTO 9999
  1098.  
  1099.          RANDOMIZE
  1100. RETURN
  1101.  
  1102. 5000:
  1103.  
  1104. REM ******************************************************************
  1105. REM * THE FOLLOWING WILL BE THE MASTER LIST FOR BETS AVAILABLE       *
  1106. REM * THIS LIST IS IN A IN A GOSUB SO THAT THE PLAYER                *
  1107. REM * CAN CALL IT UP ANYTIME HE WANTS TO BET TO SEE IT               *
  1108. REM ******************************************************************
  1109.  
  1110. PRINT CHR$(12)
  1111.  
  1112. PRINT"The following is a list of the available bets along with"
  1113. PRINT"the odds for that bet.  To make a specific bet the player"
  1114. PRINT"need only put in the code number for a given bet when asked"
  1115. PRINT"for a bet."
  1116. PRINT"1   LINE BET       EVEN";             REM:  LINE.BET
  1117. PRINT TAB(40);"12  7              7 TO 1"   REM:  SEVEN
  1118. PRINT"2   HARDWAY 4      7 to 1";           REM:  HARD2
  1119. PRINT TAB(40);"13  ANY CRAPS      7 TO 1"   REM:  ANY
  1120. PRINT"3   HARDWAY 10     7 to 1";           REM:  HARD10
  1121. PRINT TAB(40);"14  11            15 TO 1"   REM:  ELEVEN
  1122. PRINT"4   HARDWAY 6      9 to 1";           REM:  HARD6
  1123. PRINT TAB(40);"15  2             30 TO 1"   REM:  EYES
  1124. PRINT"5   HARDWAY 8      9 to 1";           REM:  HARD8
  1125. PRINT TAB(40);"16  12            30 TO 1"   REM:  TWELVE
  1126. PRINT"6   COME BET       EVEN";             REM:  COME.BET(%)
  1127. PRINT TAB(40);"17  3             15 TO 1"   REM:  THREE
  1128. PRINT"7   BIG SIX        EVEN";             REM:  BIG.SIX
  1129. PRINT TAB(40);"ODDS  LINE ODDS   VARIES"    REM:  LINE.ODDS()
  1130. PRINT"8   BIG EIGHT      EVEN";             REM:  BIG.EIGHT
  1131. PRINT TAB(40);"ODDS  PLACE ODDS  VARIES"    REM:  PLACE.ODDS.AMOUNT()
  1132. PRINT"9   FIELD          VARIES";           REM:  FIELD
  1133. PRINT TAB(40);"ODDS  COME ODDS   VARIES"    REM:  COME.ODDS.AMOUNT()
  1134. PRINT"10  PLACE BET      EVEN"              REM:  PLACE(%)
  1135. PRINT"11  HORN BET       VARIES"            REM:  HORN()
  1136.  
  1137. IF FIRST% THEN \
  1138.          PRINT "You are coming out!" ELSE \
  1139.          PRINT "The Point is ";POINT%
  1140.  
  1141.          INPUT"When you are through looking at this hit return";LINE TEMP$
  1142.  
  1143. RETURN
  1144.  
  1145. REM **********************************************
  1146. REM **           ROLL DICE                      **
  1147. REM **********************************************
  1148.  
  1149. 6000     LET DIE.ONE%=INT%(6*RND + 1)
  1150.          DIE.TWO%=INT%(6*RND + 1)
  1151.          ROLL%=DIE.ONE% + DIE.TWO%
  1152.        THROW%=THROW%+1
  1153.        DICE.ROLL1%(THROW%)=DIE.ONE%
  1154.        DICE.ROLL2%(THROW%)=DIE.TWO%
  1155.        DICE.ROLL.TOTAL%(THROW%)=ROLL%
  1156.  
  1157.          IF FIRST% THEN LET POINT%=ROLL%
  1158.          PRINT CHR$(12)
  1159.          PRINT "First die=" ; DIE.ONE% ; TAB(15) ; "Second Die=" ; DIE.TWO%
  1160.          PRINT
  1161.          PRINT"Point rolled is ";ROLL%
  1162.          PRINT
  1163.          PRINT"Point is   ";POINT%
  1164.  
  1165.          OLD.ROLL.WINNINGS=WINNINGS
  1166.  
  1167.          INPUT"Hit return when you are ready for more";LINE TEMP$
  1168.          RANDOMIZE
  1169.          AFTER.ROLL%=-1
  1170.          PRINT CHR$(12)
  1171.  
  1172. RETURN
  1173.  
  1174. 9999:
  1175. REM  ************************************************************
  1176. REM  **  THIS IS THE NORMAL END OF THE PROGRAM.  IT WILL WRITE **
  1177. REM  **  OUT TO A FILE CALLED CRAPS.DAT WHAT ROLLS WERE MADE   **
  1178. REM  **  IN THE SEQUENCE IN WHICH THEY WERE ROLLED FOR LATER   **
  1179. REM  **  PERUSAL.  IT SHOULD ALSO PUT A SPACE IN THE FILE EVERY**
  1180. REM  **  TIME A SEVEN IS ROLLED.                               **
  1181. REM  ************************************************************
  1182.  
  1183.          TRUE%=-1
  1184.          NUL.STRING$="***************"
  1185.          IF END #1 THEN 9999.1
  1186.          CRAPS.DAT$="CRAPS.DAT"
  1187.          FILE CRAPS.DAT$
  1188.          WHILE TRUE%
  1189.                    READ #1;LINE DUMMY$
  1190.          WEND
  1191.  
  1192. 9999.1   FOR I%=1 TO THROW%
  1193.                PRINT USING "##   ##   ##";#1; \
  1194.                DICE.ROLL1%(I%),DICE.ROLL2%(I%),DICE.ROLL.TOTAL%(I%)
  1195.                    IF DICE.ROLL.TOTAL%(I%)=7 THEN \
  1196.                    PRINT #1;NUL.STRING$
  1197. 9999.2   NEXT I%
  1198.  
  1199. CLOSE 1
  1200. STOP
  1201.  
  1202. END
  1203.