home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / enterprs / cpm / game / games.lbr / BLKJK.BZS / BLKJK.BAS
BASIC Source File  |  1993-03-04  |  7KB  |  259 lines

  1. 10 PRINT CHR$(26):PRINT:PRINT:PRINT:PRINT:PRINT
  2. 20 DIM C(52),V$(10)
  3. 30 INPUT "Do you want instructions (Y or N)";ANS$
  4. 40 IF LEFT$(ANS$,1)="Y" THEN 2310
  5. 50 IF LEFT$(ANS$,1)="y" THEN 2310
  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 PRINT:PRINT:INPUT"BET = ";B
  37. 370 IF B=0 THEN 240
  38. 380 IF B=999 THEN SYSTEM
  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 2050
  43. 430 GOSUB 2200
  44. 440 PRINT "         ";V$(C(L-1))
  45. 450 GOSUB 2050 
  46. 460 GOSUB 2200
  47. 470 H=C(L-1)
  48. 480 IF C(L-3)=1 THEN 1930
  49. 490 IF T=21 THEN 1800
  50. 500 IF T1=21 THEN 1880
  51. 510 INPUT D$
  52. 520 IF LEFT$(D$,1)="G" THEN 1500
  53. 530 IF LEFT$(D$,1)="g" THEN 1500
  54. 540 IF LEFT$(D$,1)="D" THEN 1470
  55. 550 IF LEFT$(D$,1)="d" THEN 1470
  56. 560 IF LEFT$(D$,1)="H" THEN 1360
  57. 570 IF LEFT$(D$,1)="h" THEN 1360
  58. 580 IF LEFT$(D$,1)="S" THEN 620
  59. 590 IF LEFT$(D$,1)="s" THEN 620
  60. 600 PRINT"    RETYPE: ";
  61. 610 GOTO 510
  62. 620 IF C(L-2)<>C(L-4) THEN 600
  63. 630 PRINT"FIRST HAND"
  64. 640 B1=B
  65. 650 PRINT V$(C(L-2))
  66. 660 X=C(L-2)
  67. 670 T1=X
  68. 680 GOSUB 2050
  69. 690 IF X<>1 THEN 720
  70. 700 T1=T1+10
  71. 710 GOTO 960
  72. 720 INPUT D1$
  73. 730 IF LEFT$(D1$,1)="G" THEN 960
  74. 740 IF LEFT$(D1$,1)="g" THEN 960
  75. 750 IF LEFT$(D1$,1)="D" THEN 930
  76. 760 IF LEFT$(D1$,1)="d" THEN 930
  77. 770 IF LEFT$(D1$,1)="H" THEN 800
  78. 780 IF LEFT$(D1$,1)="h" THEN 800
  79. 790 PRINT"    RETYPE: ";:GOTO 720
  80. 800 GOSUB 2050
  81. 810 IF T1>0 THEN 870
  82. 820 X1=0
  83. 830 C=C-B1
  84. 840 B1=0
  85. 850 PRINT"BUST"
  86. 860 GOTO 980
  87. 870 INPUT D1$
  88. 880 IF LEFT$(D1$,1)="G" THEN 960
  89. 890 IF LEFT$(D1$,1)="g" THEN 960
  90. 900 IF LEFT$(D1$,1)="H" THEN 800
  91. 910 IF LEFT$(D1$,1)="h" THEN 800
  92. 920 PRINT"    RETYPE: ";:GOTO 870
  93. 930 B1=2*B
  94. 940 GOSUB 2050
  95. 950 IF T1=0 THEN 820
  96. 960 PRINT:PRINT T1
  97. 970 X1=T1
  98. 980 PRINT"SECOND HAND"
  99. 990 B2=B
  100. 1000 PRINT V$(X)
  101. 1010 T1=X
  102. 1020 GOSUB 2050
  103. 1030 IF X<>1 THEN 1060
  104. 1040 T1=T1+10
  105. 1050 GOTO 1320
  106. 1060 INPUT D1$
  107. 1070 IF LEFT$(D1$,1)="G"THEN 1320
  108. 1080 IF LEFT$(D1$,1)="g"THEN 1320
  109. 1090 IF LEFT$(D1$,1)="D" THEN 1300
  110. 1100 IF LEFT$(D1$,1)="d" THEN 1300
  111. 1110 IF LEFT$(D1$,1)="H" THEN 1140
  112. 1120 IF LEFT$(D1$,1)="h" THEN 1140
  113. 1130 PRINT "    RETYPE: ";:GOTO 1060
  114. 1140 GOSUB 2050
  115. 1150 IF T1>0 THEN 1230
  116. 1160 X2=0
  117. 1170 C=C-B2
  118. 1180 B2=0
  119. 1190 PRINT"BUST";
  120. 1200 IF X1>0 THEN 1510
  121. 1210 PRINT "         ";V$(H)
  122. 1220 GOTO 1610
  123. 1230 INPUT D1$
  124. 1240 IF LEFT$(D1$,1)="G" THEN 1320
  125. 1250 IF LEFT$(D1$,1)="g" THEN 1320
  126. 1260 IF LEFT$(D1$,1)="H"THEN 1140
  127. 1270 IF LEFT$(D1$,1)="h"THEN 1140
  128. 1280 PRINT "    RETYPE: ";:GOTO 1230
  129. 1290 B2=2*B
  130. 1300 GOSUB 2050
  131. 1310 IF T1=0 THEN 1160
  132. 1320 PRINT:PRINT T1
  133. 1330 B=B1+B2
  134. 1340 X2=T1
  135. 1350 GOTO 1510
  136. 1360 GOSUB 2050
  137. 1370 IF T1>0 THEN 1410
  138. 1380 PRINT"BUST";
  139. 1390 PRINT"             ";V$(H)
  140. 1400 GOTO 1670
  141. 1410 INPUT D$
  142. 1420 IF LEFT$(D$,1)="G" THEN 1500
  143. 1430 IF LEFT$(D$,1)="g" THEN 1500
  144. 1440 IF LEFT$(D$,1)="H" THEN 1360
  145. 1450 IF LEFT$(D$,1)="h" THEN 1360
  146. 1460 PRINT "    RETYPE: ";:GOTO 1410
  147. 1470 B=2*B
  148. 1480 GOSUB 2050
  149. 1490 IF T1=0 THEN 1380
  150. 1500 PRINT:PRINT T1;
  151. 1510 PRINT"              ";V$(H);
  152. 1520 GOTO 1550
  153. 1530 GOSUB 2200
  154. 1540 PRINT"       ";V$(C(L-1));
  155. 1550 IF T<17 THEN 1530
  156. 1560 IF T>21 THEN 1590
  157. 1570 PRINT":";T
  158. 1580 GOTO 1630
  159. 1590 PRINT": BUST"
  160. 1600 C=C+B
  161. 1610 PRINT"YOU HAVE $";C
  162. 1620 GOTO 230
  163. 1630 IF LEFT$(D$,1)="S" THEN 1690
  164. 1640 IF LEFT$(D$,1)="s" THEN 1690
  165. 1650 IF T1>T THEN 1600
  166. 1660 IF T1=T THEN 1610
  167. 1670 B=-B
  168. 1680 GOTO 1600
  169. 1690 IF T>X1 THEN 1780
  170. 1700 IF T=X1 THEN 1720
  171. 1710 C=C+B1
  172. 1720 IF T>X2 THEN 1760
  173. 1730 IF T=X2 THEN 1610
  174. 1740 C=C+B2
  175. 1750 GOTO 1610
  176. 1760 C=C-B2
  177. 1770 GOTO 1610
  178. 1780 C=C-B1
  179. 1790 GOTO 1720
  180. 1800 IF T1=21 THEN 1850
  181. 1810 C=C-B
  182. 1820 PRINT"         ";V$(H);
  183. 1830 PRINT"  BLACKJACK"
  184. 1840 GOTO 1610
  185. 1850 PRINT"BLACKJACK"
  186. 1860 PRINT "         ";
  187. 1870 GOTO 1820
  188. 1880 PRINT"BLACKJACK"
  189. 1890 PRINT"             ";V$(H);
  190. 1900 PRINT
  191. 1910 C=C+1.5*B
  192. 1920 GOTO 1610
  193. 1930 INPUT"      INSURANCE ";I$
  194. 1940 IF LEFT$(I$,1)="Y" THEN 1980
  195. 1950 IF LEFT$(I$,1)="y" THEN 1980
  196. 1960 PRINT "         ";
  197. 1970 GOTO 490
  198. 1980 IF T=21 THEN 2010
  199. 1990 C=C-.5*B
  200. 2000 GOTO 1960
  201. 2010 PRINT "             10";
  202. 2020 IF T1<>21 THEN 1830
  203. 2030 C=C+B
  204. 2040 GOTO 1830
  205. 2050 IF T1>10 THEN 2090
  206. 2060 IF C(L)<>1 THEN 2090
  207. 2070 T1=T1+10
  208. 2080 S1=1
  209. 2090 T1=T1+C(L)
  210. 2100 PRINT V$(C(L));"       ";
  211. 2110 L=L+1
  212. 2120 IF T1<=21 THEN 2190
  213. 2130 IF S1=0 THEN 2170
  214. 2140 T1=T1-10
  215. 2150 S1=0
  216. 2160 GOTO 2190
  217. 2170 T1=0
  218. 2180 PRINT
  219. 2190 RETURN
  220. 2200 IF T>10 THEN 2240
  221. 2210 IF C(L)<>1 THEN 2240
  222. 2220 T=T+10
  223. 2230 S=1
  224. 2240 T=T+C(L)
  225. 2250 L=L+1
  226. 2260 IF T<=21 THEN 2300
  227. 2270 IF S=0 THEN 2300
  228. 2280 T=T-10
  229. 2290 S=0
  230. 2300 RETURN
  231. 2310 PRINT CHR$(26):PRINT:PRINT
  232. 2315 PRINT"This  blackjack program  enables  the operator  to play  head-"
  233. 2320 PRINT"to-head with the computer, simulating the exact rules as those"
  234. 2330 PRINT"on the  Las Vegas strip.  The cards are dealt from one 52-card"
  235. 2340 PRINT"deck until a hand starts with less than 12 cards remaining, in"
  236. 2350 PRINT"which case it reshuffles.  The dealer MUST hit through a total"
  237. 2360 PRINT"of 16 and stand on all totals of 17 and above."
  238. 2370 PRINT:PRINT:INPUT"TYPE <RETURN> TO GO ON";W9
  239. 2380 PRINT CHR$(26);
  240. 2385 PRINT"The INSURANCE bet is offered at half the player's bet when"
  241. 2390 PRINT"the dealer's up-card is an Ace.":PRINT
  242. 2400 PRINT"You may DOUBLE-DOWN on any two cards, and receive one more"
  243. 2410 PRINT"card while the original bet is doubled.":PRINT
  244. 2420 PRINT"You may split any hand, but resplitting is not allowed."
  245. 2430 PRINT"Also, only one card is dealt on each of a pair of aces.":PRINT
  246. 2440 PRINT"Your cards appear in the far left column; the dealer's on the"
  247. 2450 PRINT"far right.  ":PRINT
  248. 2460 PRINT" THE COMMANDS ARE AS FOLLOWS:"
  249. 2470 PRINT"      HIT (draw another card)"
  250. 2480 PRINT"      GOOD (stand on current total)"
  251. 2490 PRINT"      DOUBLE (double your bet and draw one card)"
  252. 2500 PRINT"      SPLIT (form two hands from a pair with the original"
  253. 2510 PRINT"             bet on each hand)"
  254. 2520 PRINT:PRINT"Commands may be typed in as the FIRST LETTER"
  255. 2530 PRINT "To exit program enter 999 as a bet":PRINT" - GOOD LUCK! - ":PRINT
  256. 2535 INPUT "PRESS <RETURN> TO START GAME";W9:PRINT CHR$(26)
  257. 2540 GOTO 60
  258.  enter 999 as a bet":PRINT" - GOOD LUCK! - ":PRINT
  259. 25