home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / mbug / mbug055.arc / BLACKJK.BAS < prev    next >
BASIC Source File  |  1979-12-31  |  9KB  |  354 lines

  1. 1 '    * * * * * B L A C K J A C K * * * * *
  2. 2 FOR A = 1 TO 5:
  3. 3    PRINT
  4. 4 NEXT A:
  5. 5 PRINT TAB(20)"B L A C K J A C K ";
  6. 6 PRINT "  Las Vegas style.":
  7. 7 FOR A = 1 TO 9:
  8. 8    PRINT
  9. 9 NEXT A:
  10. 10 PRINT "DO YOU WANT INSTRUCTIONS (Y or N)";
  11. 15 INPUT IN$
  12. 25 IF IN$ = "N" THEN GOTO 155:
  13. 30 FOR A = 1 TO 4
  14. 35    PRINT:
  15. 40 NEXT A:
  16. 50 PRINT TAB(10)"This is the game of BLACKJACK,";
  17. 51 PRINT TAB(43)"Las Vegas style.":
  18. 52 PRINT
  19. 53 PRINT "Here are the rules of the HOUSE :-":
  20. 54 PRINT "1. The DEALER must HIT on 16 or less, and STAY";:
  21. 55 PRINT " on 17 or more.":
  22. 56 PRINT "2. YOU may SPLIT two cards if they are the same";:
  23. 57 PRINT ", and play one":
  24. 58 PRINT "   hand with each of them.":
  25. 59 PRINT "3. You may DOUBLE your bet and receive another";:
  26. 60 PRINT " card, but only":
  27. 61 PRINT "   on your first HIT.":
  28. 62 PRINT
  29. 63 PRINT "Other INSTRUCTIONS are :-":
  30. 64 PRINT " 0 - NO HIT;  1 - HIT;  2 - DOUBLE;  4 - ";:
  31. 65 PRINT "SPLIT A PAIR.":
  32. 66 PRINT:
  33. 67 PRINT TAB(40)"HIT ENTER TO CONT...";:
  34. 68 INPUT IN$
  35. 70 PRINT "General Instructions."
  36. 71 PRINT "When the DEALER has an exposed ACE, he will";:
  37. 72 PRINT " ask you for an":
  38. 73 PRINT "INSURANCE bet. An INSURANCE BET will risk half";:
  39. 74 PRINT " of your BET":
  40. 75 PRINT "for an amount equal to your bet, IF you WIN.
  41. 76 PRINT "You win if the DEALER has a BLACKJACK and ";:
  42. 77 PRINT "you lose if he DOESN'T. The House LIMIT is $500.00":
  43. 78 PRINT "GOOD LUCK .
  44. 79 PRINT 
  45. 80 PRINT "OH, by the way, the DEALER is noted for dealing";:
  46. 81 PRINT " off the bottom":
  47. 82 PRINT "of the deck, so WATCH HIM VERY CLOSELY."
  48. 135 PRINT" HERE HE IS NOW."
  49. 155    LET K=0
  50. 160    LET W1=0
  51. 170 LET N=INT(1945*RND+1)
  52. 175   PRINT
  53. 180 PRINT "To reshuffle the deck of cards, type '7777' when";:
  54. 185 PRINT " I ask you for":
  55. 190 PRINT "for your WAGER, and I will be very HAPPY to oblige."
  56. 200 LET X=INT(10*RND)
  57. 210 DIM D(52),E(5),V(5),T(5),WIN(5)
  58. 215   FOR A=1 TO 52
  59. 220    LET D(A)=0
  60. 225   NEXT A
  61. 230   DIM Q(52)
  62. 235   FOR A=0 TO 39 STEP 13
  63. 240   FOR C=1 TO 13
  64. 245    LET Q(A+C)=C
  65. 250   NEXT C
  66. 255   NEXT A
  67. 265    LET K=K+1
  68. 270   FOR P=1 TO 5
  69. 275    LET E(P)=0
  70. 280    LET V(P)=0
  71. 285    LET T(P)=0
  72. 290   NEXT P
  73. 295    LET V(3)=1
  74. 300   PRINT
  75. 315   PRINT"WAGER";
  76. 320    LET P=1
  77. 325   INPUT W
  78. 330    LET WIN(2)=W
  79. 335   IF W<=0 THEN 1685
  80. 340   IF W<=500 THEN 370
  81. 345   IF W<>7777 THEN 360
  82. 350   GOSUB 1645
  83. 355   GOTO 315
  84. 360   PRINT"THAT'S TOO MUCH - HOUSE LIMIT IS $500"
  85. 365   GOTO 315
  86. 370   PRINT
  87. 375 PRINT "I SHOW",
  88. 380   GOSUB 865
  89. 385   IF E(1)=0 THEN 395
  90. 390    LET V(4)=1
  91. 395    LET V(5)=1
  92. 400   GOSUB 865
  93. 405    LET M=X
  94. 410    LET P=2
  95. 415   PRINT"FIRST CARD IS",
  96. 420   GOSUB 865
  97. 425    LET G=X
  98. 430   PRINT"NEXT CARD IS",
  99. 435   GOSUB 865
  100. 440   IF V(2)>0 THEN 605
  101. 445    LET S=X
  102. 450   IF V(3)<>1 THEN 605
  103. 455   IF T(P)<>21 THEN 505
  104. 460 PRINT "   ***BLACKJACK***   "
  105. 465   PRINT
  106. 470   PRINT" THAT'S GETTING A BIT RIDICULOUS::::"
  107. 475   PRINT
  108. 480 PRINT "MY HOLE CARD WAS ",
  109. 485    LET X=M
  110. 490   GOSUB 1035
  111. 495    LET W1=W1+1.5*W
  112. 500   GOSUB 1335
  113. 505   IF V(4)=0 THEN 570
  114. 510   PRINT"INSURANCE ANYONE   (TYPE 1 OR 0, 1 MEANS YES)";
  115. 515   INPUT I
  116. 520   PRINT
  117. 525   IF I=0 THEN 570
  118. 530   IF T(1)<>21 THEN 555
  119. 535    LET W1=W1+W
  120. 540   PRINT
  121. 545 PRINT "YOU WIN $";W;"ON YOUR INSURANCE BET"
  122. 550   GOTO 570
  123. 555    LET W1=W1-W/2
  124. 560   PRINT
  125. 565 PRINT"YOU LOST $";W/2;"ON YOUR INSURANCE BET,I DON'T HAVE BLACKJACK"
  126. 570   IF T(1)<>21 THEN 605
  127. 575   PRINT
  128. 580   PRINT"**I HAVE BLACKJACK**"
  129. 585 PRINT "MY HOLE CARD WAS ",
  130. 590    LET X=M
  131. 595   GOSUB 1035
  132. 600   GOTO 1300
  133. 605   IF T(P)<=21 THEN 650
  134. 610   IF E(P)>0 THEN 640
  135. 615   PRINT"YOU BUSTED, ";
  136. 620 PRINT"YOUR TOTAL IS ";T(P)
  137. 625    LET C1=T(P)-5*(INT(T(P)/5))
  138. 630   IF V(2)=1 THEN 775
  139. 635   GOTO 1175
  140. 640    LET E(P)=E(P)-1
  141. 645    LET T(P)=T(P)-10
  142. 650   IF V(1)=2 THEN 620
  143. 655    LET V(3)=V(3)+1
  144. 660   PRINT"HIT ";
  145. 665   INPUT V(1)
  146. 670   IF V(1)<>3 THEN 830
  147. 675   IF V(2)>0 THEN 820
  148. 680   IF V(3)<>2 THEN 820
  149. 685   IF Q(G)=Q(S) THEN 700
  150. 690   PRINT"NOW IS THAT A PAIR?"
  151. 695   GOTO 660
  152. 700    LET V(2)=1
  153. 705   IF Q(G)<>1 THEN 715
  154. 710    LET V(1)=2
  155. 715    LET P=3
  156. 720   PRINT"       PLAY HAND ONE NOW"
  157. 725   PRINT"FIRST CARD IS ",
  158. 730    LET WIN(3)=W
  159. 735    LET X=G
  160. 740   GOSUB 750
  161. 745   GOTO 430
  162. 750   GOSUB 990
  163. 755   GOSUB 1035
  164. 760    LET V(3)=1
  165. 765    LET T(P)=C
  166. 770   RETURN
  167. 775    LET P=2
  168. 780    LET V(2)=2
  169. 785   PRINT"       PLAY HAND TWO NOW"
  170. 790   PRINT"FIRST CARD IS",
  171. 795    LET X=S
  172. 800   GOSUB 750
  173. 805   IF Q(G)=1 THEN 815
  174. 810    LET V(1)=0
  175. 815   GOTO 430
  176. 820   PRINT"NO SPLITS NOW -- TRY AGAIN"
  177. 825   GOTO 660
  178. 830   IF V(1)<>2 THEN 855
  179. 835   IF V(3)=2 THEN 850
  180. 840   PRINT"TOO LATE TO DOUBLE, CHARLIE."
  181. 845   GOTO 660
  182. 850    LET WIN(P)=2*WIN(P)
  183. 855   IF V(1)>0 THEN 430
  184. 860   GOTO 620
  185. 865   GOSUB 900
  186. 870    LET T(P)=T(P)+C
  187. 875   IF V(5)=0 THEN 890
  188. 880    LET V(5)=0
  189. 885   RETURN
  190. 890   GOSUB 1035
  191. 895   RETURN
  192. 900   IF R>=50 THEN 945
  193. 905    LET N=10*(1+ABS(COS(N+W1)))
  194. 910   FOR A=1 TO N
  195. 915    LET X=INT(52.99999900000002#*RND)
  196. 920   IF X=0 THEN 915
  197. 925   NEXT A
  198. 930   IF D(X)=0 THEN 980
  199. 935    LET R=R+1
  200. 940   IF R<50 THEN 900
  201. 945   FOR A=1 TO 52
  202. 950   IF D(A)=K THEN 960
  203. 955    LET D(A)=0
  204. 960   NEXT A
  205. 965    LET R=0
  206. 970   PRINT"   I RESHUFFLED   ";
  207. 975   GOTO 900
  208. 980    LET R=0
  209. 985    LET D(X)=K
  210. 990   IF Q(X)<>1 THEN 1010
  211. 995    LET C=11
  212. 1000    LET E(P)=E(P)+1
  213. 1005   RETURN
  214. 1010   IF Q(X)>10 THEN 1025
  215. 1015    LET C=Q(X)
  216. 1020   RETURN
  217. 1025    LET C=10
  218. 1030   RETURN
  219. 1035   GOSUB 1050
  220. 1040   GOSUB 1120
  221. 1045   RETURN
  222. 1050   IF Q(X)<>1 THEN 1065
  223. 1055   PRINT" ACE ";
  224. 1060   RETURN
  225. 1065   IF Q(X)>10 THEN 1080
  226. 1070   PRINT Q(X);" ";
  227. 1075   RETURN
  228. 1080   IF Q(X)>11 THEN 1095
  229. 1085   PRINT " JACK ";
  230. 1090   RETURN
  231. 1095   IF Q(X)>12 THEN 1110
  232. 1100   PRINT" QUEEN ";
  233. 1105   RETURN
  234. 1110   PRINT" KING ";
  235. 1115   RETURN
  236. 1120   IF X>39 THEN 1145
  237. 1125   IF X>26 THEN 1155
  238. 1130   IF X>13 THEN 1165
  239. 1135   PRINT"OF SPADES"
  240. 1140   RETURN
  241. 1145   PRINT"OF CLUBS"
  242. 1150   RETURN
  243. 1155   PRINT"OF HEARTS"
  244. 1160   RETURN
  245. 1165   PRINT"OF DIAMONDS"
  246. 1170   RETURN
  247. 1175    LET P=2
  248. 1180 PRINT "MY HOLE CARD WAS ",
  249. 1185    LET X=M
  250. 1190   GOSUB 1035
  251. 1195   IF T(2)<22 THEN 1210
  252. 1200   IF V(2)=0 THEN 1300
  253. 1205   IF T(3)>21 THEN 1300
  254. 1210    LET P=1
  255. 1215   IF T(1)<17 THEN 1360
  256. 1220   IF T(1)>17 THEN 1230
  257. 1225   IF E(1)>0 THEN 1360
  258. 1230   IF T(1)>21 THEN 1375
  259. 1235    LET P=2
  260. 1240 PRINT"MY TOTAL IS ";T(1)
  261. 1245   IF T(P)>21 THEN 1300
  262. 1250   IF T(1)>21 THEN 1265
  263. 1255   IF T(1)>T(P) THEN 1300
  264. 1260   IF T(1)=T(P) THEN 1330
  265. 1265    LET W1=W1+WIN(P)
  266. 1270   IF C1>3 THEN 1445
  267. 1275   IF C1>2 THEN 1465
  268. 1280   IF C1>1 THEN 1485
  269. 1285   IF C1>0 THEN 1505
  270. 1290   GOTO 1525
  271. 1295   GOTO 1330
  272. 1300    LET W1=W1-WIN(P)
  273. 1305   IF C1>3 THEN 1545
  274. 1310   IF C1>2 THEN 1565
  275. 1315   IF C1>1 THEN 1585
  276. 1320   IF C1>0 THEN 1605
  277. 1325   GOTO 1625
  278. 1330   IF V(2)>0 THEN 1345
  279. 1335   GOSUB 1405
  280. 1340   GOTO 265
  281. 1345    LET P=3
  282. 1350    LET V(2)=0
  283. 1355   GOTO 1245
  284. 1360 PRINT "I DRAW",
  285. 1365   GOSUB 865
  286. 1370   GOTO 1210
  287. 1375   IF E(1)=0 THEN 1395
  288. 1380    LET E(1)=E(1)-1
  289. 1385    LET T(1)=T(1)-10
  290. 1390   GOTO 1210
  291. 1395   PRINT"I BUSTED *****"
  292. 1400   GOTO 1235
  293. 1405   IF W1<0 THEN 1425
  294. 1410   IF W1=0 THEN 1435
  295. 1415 PRINT"YOU'RE AHEAD $";W1
  296. 1420   RETURN
  297. 1425 PRINT"YOU'RE BEHIND $";ABS(W1)
  298. 1430   RETURN
  299. 1435   PRINT"YOU'RE EVEN"
  300. 1440   RETURN
  301. 1445   PRINT
  302. 1450   PRINT"I MUST HAVE DEALT WRONG."
  303. 1455   PRINT
  304. 1460   GOTO 1330
  305. 1465   PRINT
  306. 1470   PRINT"YOU LUCKED OUT AGAIN:"
  307. 1475   PRINT
  308. 1480   GOTO 1330
  309. 1485   PRINT
  310. 1490   PRINT"YOU MUST HAVE BEEN PEEKING."
  311. 1495   PRINT
  312. 1500   GOTO 1330
  313. 1505   PRINT
  314. 1510   PRINT"I COULD LOSE MY JOB THIS WAY."
  315. 1515   PRINT
  316. 1520   GOTO 1330
  317. 1525   PRINT
  318. 1530   PRINT"THE CARDS HAVE TURNED AGAINST ME:"
  319. 1535   PRINT
  320. 1540   GOTO 1330
  321. 1545   PRINT
  322. 1550   PRINT"THE BOTTOM OF THE DECK STRIKES AGAIN:"
  323. 1555   PRINT
  324. 1560   GOTO 1330
  325. 1565   PRINT
  326. 1570   PRINT"A VICTORY FOR US GOOD GUYS."
  327. 1575   PRINT
  328. 1580   GOTO 1330
  329. 1585   PRINT
  330. 1590   PRINT"YOU CAN'T BEAT SKILL."
  331. 1595   PRINT
  332. 1600   GOTO 1330
  333. 1605   PRINT
  334. 1610   PRINT"YOU CAN'T WIN 'EM ALL."
  335. 1615   PRINT
  336. 1620   GOTO 1330
  337. 1625   PRINT
  338. 1630   PRINT"BABY GETS A NEW PAIR OF SHOES:"
  339. 1635   PRINT
  340. 1640   GOTO 1330
  341. 1645   FOR M9 = 1 TO 52
  342. 1650    LET D(M9)=0
  343. 1655   NEXT M9
  344. 1660    LET R=0
  345. 1665   PRINT
  346. 1670   PRINT" I RESHUFFLED"
  347. 1675   PRINT""
  348. 1680 RETURN
  349. 1685 END
  350. ET D(M9)=0
  351. 1655   NEXT M9
  352. 1660    LET R=0
  353. 1665   PRINT
  354. 1670   PRINT" I RESHUFFLED"