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 / CPMUG020.ARK / BLACKJAC.BAS next >
BASIC Source File  |  1984-04-29  |  8KB  |  333 lines

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