home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / zsys / znode-12 / a / blkjk.bas < prev    next >
Encoding:
BASIC Source File  |  1994-07-13  |  5.6 KB  |  238 lines

  1. 10 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT
  2. 20 DIM C(52),V$(10)
  3. 30 PRINT "DO YOU WANT INSTRUCTIONS"
  4. 40 INPUT "(Type 0 for NO, 1 for YES)";I
  5. 50 IF I<>0 THEN 2130
  6. 60 C=0
  7. 70 FOR K=0 TO 3
  8. 80 FOR J=1 TO 10
  9. 90 C(J+10*K)=J
  10. 100 NEXT J:NEXT K
  11. 110 FOR J=41 TO 52:C(J)=10:NEXT J
  12. 120 V$(1)=" A"
  13. 130 V$(2)=" 2"
  14. 140 V$(3)=" 3"
  15. 150 V$(4)=" 4"
  16. 160 V$(5)=" 5"
  17. 170 V$(6)=" 6"
  18. 180 V$(7)=" 7"
  19. 190 V$(8)=" 8"
  20. 200 V$(9)=" 9"
  21. 210 V$(10)="10"
  22. 220 L=40
  23. 230 IF L<40 THEN 320
  24. 240 FOR J=1 TO 52
  25. 250 Z=C(J)
  26. 260 R=INT(RND(J)*52+1)
  27. 270 C(J)=C(R)
  28. 280 C(R)=Z
  29. 290 NEXT J
  30. 300 L=1
  31. 310 PRINT "NEW DECK":PRINT
  32. 320 T=0
  33. 330 T1=0
  34. 340 S=0
  35. 350 S1=0
  36. 360 INPUT"BET AMOUNT = $",B
  37. 370 IF B=0 THEN 240
  38. 380 IF B=999 THEN END
  39. 390 IF B>500 THEN 360
  40. 400 IF B<1 THEN 360
  41. 410 IF B<> INT(B) THEN 360
  42. 420 GOSUB 1870
  43. 430 GOSUB 2020
  44. 440 PRINT "    ";V$(C(L-1))
  45. 450 GOSUB 1870 
  46. 460 GOSUB 2020
  47. 470 H=C(L-1)
  48. 480 IF C(L-3)=1 THEN 1760
  49. 490 IF T=21 THEN 1630
  50. 500 IF T1=21 THEN 1710
  51. 510 INPUT D$
  52. 520 IF LEFT$(D$,1)="G" THEN 1340
  53. 530 IF LEFT$(D$,1)="D" THEN 1310
  54. 540 IF LEFT$(D$,1)="H" THEN 1220
  55. 550 IF LEFT$(D$,1)="S" THEN 580
  56. 560 PRINT"    RETYPE: ";
  57. 570 GOTO 510
  58. 580 IF C(L-2)<>C(L-4) THEN 560
  59. 590 PRINT"FIRST HAND"
  60. 600 B1=B
  61. 610 PRINT V$(C(L-2))
  62. 620 X=C(L-2)
  63. 630 T1=X
  64. 640 GOSUB 1870
  65. 650 IF X<>1 THEN 680
  66. 660 T1=T1+10
  67. 670 GOTO 870
  68. 680 INPUT D1$
  69. 690 IF LEFT$(D1$,1)="G" THEN 870
  70. 700 IF LEFT$(D1$,1)="D" THEN 840
  71. 710 IF LEFT$(D1$,1)="H" THEN 730
  72. 720 PRINT"    RETYPE: ";:GOTO 680
  73. 730 GOSUB 1870
  74. 740 IF T1>0 THEN 800
  75. 750 X1=0
  76. 760 C=C-B1
  77. 770 B1=0
  78. 780 PRINT"BUST"
  79. 790 GOTO 890
  80. 800 INPUT D1$
  81. 810 IF LEFT$(D1$,1)="G" THEN 870
  82. 820 IF LEFT$(D1$,1)="H" THEN 730
  83. 830 PRINT"    RETYPE: ";:GOTO 800
  84. 840 B1=2*B
  85. 850 GOSUB 1870
  86. 860 IF T1=0 THEN 750
  87. 870 PRINT:PRINT T1
  88. 880 X1=T1
  89. 890 PRINT"SECOND HAND"
  90. 900 B2=B
  91. 910 PRINT V$(X)
  92. 920 T1=X
  93. 930 GOSUB 1870
  94. 940 IF X<>1 THEN 970
  95. 950 T1=T1+10
  96. 960 GOTO 1180
  97. 970 INPUT D1$
  98. 980 IF LEFT$(D1$,1)="G"THEN 1180
  99. 990 IF LEFT$(D1$,1)="D" THEN 1160
  100. 1000 IF LEFT$(D1$,1)="H" THEN 1020
  101. 1010 PRINT "    RETYPE: ";:GOTO 970
  102. 1020 GOSUB 1870
  103. 1030 IF T1>0 THEN 1110
  104. 1040 X2=0
  105. 1050 C=C-B2
  106. 1060 B2=0
  107. 1070 PRINT"BUST";
  108. 1080 IF X1>0 THEN 1350
  109. 1090 PRINT "    ";V$(H)
  110. 1100 GOTO 1450
  111. 1110 INPUT D1$
  112. 1120 IF LEFT$(D1$,1)="G" THEN 1180
  113. 1130 IF LEFT$(D1$,1)="H"THEN 1020
  114. 1140 PRINT "    RETYPE: ";:GOTO 1110
  115. 1150 B2=2*B
  116. 1160 GOSUB 1870
  117. 1170 IF T1=0 THEN 1040
  118. 1180 PRINT:PRINT T1
  119. 1190 B=B1+B2
  120. 1200 X2=T1
  121. 1210 GOTO 1350
  122. 1220 GOSUB 1870
  123. 1230 IF T1>0 THEN 1270
  124. 1240 PRINT"BUST";
  125. 1250 PRINT"    ";V$(H)
  126. 1260 GOTO 1500
  127. 1270 INPUT D$
  128. 1280 IF LEFT$(D$,1)="G" THEN 1340
  129. 1290 IF LEFT$(D$,1)="H" THEN 1220
  130. 1300 PRINT "    RETYPE: ";:GOTO 1270
  131. 1310 B=2*B
  132. 1320 GOSUB 1870
  133. 1330 IF T1=0 THEN 1240
  134. 1340 PRINT:PRINT T1;
  135. 1350 PRINT"      ";V$(H);
  136. 1360 GOTO 1390
  137. 1370 GOSUB 2020
  138. 1380 PRINT"  ";V$(C(L-1));
  139. 1390 IF T<17 THEN 1370
  140. 1400 IF T>21 THEN 1430
  141. 1410 PRINT":";T
  142. 1420 GOTO 1470
  143. 1430 PRINT": BUST"
  144. 1440 C=C+B
  145. 1450 PRINT"YOU HAVE $";C
  146. 1460 GOTO 230
  147. 1470 IF LEFT$(D$,1)="S" THEN 1520
  148. 1480 IF T1>T THEN 1440
  149. 1490 IF T1=T THEN 1450
  150. 1500 B=-B
  151. 1510 GOTO 1440
  152. 1520 IF T>X1 THEN 1610
  153. 1530 IF T=X1 THEN 1550
  154. 1540 C=C+B1
  155. 1550 IF T>X2 THEN 1590
  156. 1560 IF T=X2 THEN 1450
  157. 1570 C=C+B2
  158. 1580 GOTO 1450
  159. 1590 C=C-B2
  160. 1600 GOTO 1450
  161. 1610 C=C-B1
  162. 1620 GOTO 1550
  163. 1630 IF T1=21 THEN 1680
  164. 1640 C=C-B
  165. 1650 PRINT"    ";V$(H);
  166. 1660 PRINT"  BLACKJACK"
  167. 1670 GOTO 1450
  168. 1680 PRINT"BLACKJACK"
  169. 1690 PRINT "    ";
  170. 1700 GOTO 1650
  171. 1710 PRINT"BLACKJACK"
  172. 1720 PRINT"        ";V$(H);
  173. 1730 PRINT
  174. 1740 C=C+1.5*B
  175. 1750 GOTO 1450
  176. 1760 INPUT"      INSURANCE ";I$
  177. 1770 IF LEFT$(I$,1)="Y" THEN 1800
  178. 1780 PRINT "    ";
  179. 1790 GOTO 490
  180. 1800 IF T=21 THEN 1830
  181. 1810 C=C-.5*B
  182. 1820 GOTO 1780
  183. 1830 PRINT "        10";
  184. 1840 IF T1<>21 THEN 1660
  185. 1850 C=C+B
  186. 1860 GOTO 1660
  187. 1870 IF T1>10 THEN 1910
  188. 1880 IF C(L)<>1 THEN 1910
  189. 1890 T1=T1+10
  190. 1900 S1=1
  191. 1910 T1=T1+C(L)
  192. 1920 PRINT V$(C(L));"  ";
  193. 1930 L=L+1
  194. 1940 IF T1<=21 THEN 2010
  195. 1950 IF S1=0 THEN 1990
  196. 1960 T1=T1-10
  197. 1970 S1=0
  198. 1980 GOTO 2010
  199. 1990 T1=0
  200. 2000 PRINT
  201. 2010 RETURN
  202. 2020 IF T>10 THEN 2060
  203. 2030 IF C(L)<>1 THEN 2060
  204. 2040 T=T+10
  205. 2050 S=1
  206. 2060 T=T+C(L)
  207. 2070 L=L+1
  208. 2080 IF T<=21 THEN 2120
  209. 2090 IF S=0 THEN 2120
  210. 2100 T=T-10
  211. 2110 S=0
  212. 2120 RETURN
  213. 2130 PRINT:PRINT:PRINT
  214. 2140 PRINT"THIS BLACKJACK PROGRAM ENABLES THE OPERATOR TO PLAY HEAD-"
  215. 2150 PRINT"TO-HEAD WITH THE COMPUTER, SIMULATING THE EXACT RULES AS"
  216. 2160 PRINT"THOSE ON THE LAS VAGES STRIP.  THE CARDS ARE DEALT FROM ONE"
  217. 2170 PRINT"52-CARD DECK UNTIL A HAND STARTS WITH LESS THAN 12 CARDS"
  218. 2180 PRINT"REMAINING IN WHICH CASE IT RESHUFFLES.  THE DEALER MUST HIT"
  219. 2190 PRINT"THROUGH A TOTAL OF 16 AND STAND ON ALL TOTALS OF 17 AND ABOVE."
  220. 2200 INPUT"TYPE <RETURN> TO GO ON";W9
  221. 2210 PRINT:PRINT"THE INSURANCE BET IS OFFERED AT HALF THE PLAYER'S BET WHEN"
  222. 2220 PRINT"THE DEALER'S UP-CARD IS AN ACE."
  223. 2230 PRINT"YOU MAY DOUBLE-DOWN ON ANY TWO CARDS, AND RECEIVE ONE MORE"
  224. 2240 PRINT"CARD WHILE THE ORIGINAL BET IS DOUBLED."
  225. 2250 PRINT"YOU MAY SPLIT ANY HAND BUT RESPLITTING IS NOT ALLOWED."
  226. 2260 PRINT"ALSO, ONLY ONE CARD IS DEALT ON EACH OF A PAIR OF ACES."
  227. 2270 PRINT"YOUR CARDS APPEAR IN THE FAR LEFT COLUMN; THE DEALER'S ON THE"
  228. 2280 PRINT"FAR RIGHT.  "
  229. 2290 PRINT" THE COMMANDS ARE AS FOLLOWS:"
  230. 2300 PRINT"      HIT (DRAW ANOTHER CARD)"
  231. 2310 PRINT"      GOOD (STAND ON CURRENT TOTAL)"
  232. 2320 PRINT"      DOUBLE (DOUBLE YOUR BET AND DRAW ONE CARD)"
  233. 2330 PRINT"      SPLIT (FORM TWO HANDS FROM A PAIR WITH THE ORIGINAL"
  234. 2340 PRINT"             BET ON EACH HAND)"
  235. 2350 PRINT:PRINT"COMMANDS MAY BE TYPED IN AS THE FIRST LETTER"
  236. 2360 PRINT "TO EXIT PROGRAM ENTER 999 AS A BET":PRINT"GOOD LUCK":PRINT
  237. 2370 GOTO 60
  238. DS MAY BE TYPED IN AS THE FIRST LETTER