mattmcgrath

blkjac.bas (harder)

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