home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / BASIC / EBASIC.ZIP / POKER.BAS < prev    next >
Encoding:
BASIC Source File  |  1987-01-11  |  8.1 KB  |  416 lines

  1. 1 DIM A(50),B(15)
  2. 2 DEF FNA (X)=INT(10*RND)
  3. 3 DEF FNB (X)=X-100*INT(X/100)
  4. 4 PRINT "WELCOME TO THE HALLDEN CASINO.  WE EACH HAVE $200"
  5. 5 PRINT "I WILL OPEN THE BETTING BEFORE THE DRAW; YOU OPEN AFTER"
  6. 6 PRINT "WHEN YOU FOLD, BET 0;  TO CHECK, BET .5"
  7. 7 PRINT "ENOUGH TALK -- LET'S GET DOWN TO BUSINESS"
  8.   PRINT
  9.   PRINT "ARE YOU READY";
  10.   INPUT J$
  11.   IF LEFT$(J$,1) <> "Y" THEN 7
  12.   RANDOMIZE
  13. 8 PRINT
  14. 9 LET O=1
  15. 10 LET C=200
  16. 11 LET S=200
  17. 12 LET P=0
  18. 14 PRINT
  19. 15 IF C<=5 THEN 367
  20. 16 PRINT "THE ANTE IS $5.  I WILL DEAL"
  21. 17 PRINT
  22. 18 IF S>5 THEN 20
  23. 19 GOSUB 383
  24. 20 LET P=P+10
  25. 21 LET S=S-5
  26. 22 LET C=C-5
  27. 23 FOR Z=1 TO 10
  28. 24 GOSUB 174
  29. 25 NEXT Z
  30. 26 PRINT "YOUR HAND:"
  31. 27 LET N=1
  32. 28 GOSUB 185
  33. 29 LET N=6
  34. 30 LET I=2
  35. 31 GOSUB 217
  36. 32 PRINT
  37. 33 IF I<>6 THEN 47
  38. 34 IF FNA (0)<=7 THEN 37
  39. 35 LET X=11100
  40. 36 GOTO 42
  41. 37 IF FNA (0)<=7 THEN 40
  42. 38 LET X=11110
  43. 39 GOTO 42
  44. 40 IF FNA (0)>=1 THEN 45
  45. 41 LET X=11111
  46. 42 LET I=7
  47. 43 LET Z=23
  48. 44 GOTO 58
  49. 45 LET Z=1
  50. 46 GOTO 51
  51. 47 IF U>=13 THEN 54
  52. 48 IF FNA (0)>=2 THEN 50
  53. 49 GOTO 42
  54. 50 LET Z=0
  55. 51 LET K=0
  56. 52 PRINT "I CHECK"
  57. 53 GOTO 62
  58. 54 IF U<=16 THEN 57
  59. 55 LET Z=2
  60. 56 IF FNA (0)>=1 THEN 58
  61. 57 LET Z=35
  62. 58 LET V=Z+FNA(0)
  63. 59 GOSUB 348
  64. 60 PRINT  "I'LL OPEN WITH ";V
  65. 61 LET K=V
  66. 62 GOSUB 305
  67. 63 GOSUB 65
  68. 64 GOTO 82
  69. 65 IF I<>3 THEN 76
  70. 66 PRINT
  71. 67 PRINT "I WIN"
  72. 68 LET C=C+P
  73. 69 PRINT "NOW I HAVE $";C;"AND YOU HAVE $";S
  74. 70 PRINT "DO YOU WISH TO CONTINUE";
  75. 71 INPUT H$
  76. 72 IF LEFT$(H$,1)="Y" THEN 12
  77. 73 IF LEFT$(H$,1)="N" THEN 410
  78. 74 PRINT "ANSWER YES OR NO"
  79. 75 GOTO 70
  80. 76 IF I<>4 THEN 81
  81. 77 PRINT
  82. 78 PRINT "YOU WIN"
  83. 79 LET S=S+P
  84. 80 GOTO 69
  85. 81 RETURN
  86. 82 PRINT
  87. 83 PRINT "NOW WE DRAW -- HOW MANY CARDS DO YOU WANT";
  88. 84 INPUT T
  89. 85 IF T=0 THEN 98
  90. 86 LET Z=10
  91. 87 IF T<4 THEN 90
  92. 88 PRINT "YOU CAN'T DRAW MORE THAN THREE CARDS"
  93. 89 GOTO 84
  94. 90 PRINT "WHAT ARE THEIR NUMBERS"
  95. 91 FOR Q=1 TO T
  96. 92 INPUT U
  97. 93 GOSUB 173
  98. 94 NEXT Q
  99. 95 PRINT "YOUR NEW HAND:"
  100. 96 LET N=1
  101. 97 GOSUB 185
  102. 98 LET Z=10+T
  103. 99 FOR U=6 TO 10
  104. 100 IF INT(X/10^(U-6))<>10*INT(X/10^(U-5)) THEN 102
  105. 101 GOSUB 173
  106. 102 NEXT U
  107. 103 PRINT
  108. 104 PRINT "I AM TAKING ";Z-10-T;"CARD" ;
  109. 105 IF Z=11+T THEN 109 
  110. 106 PRINT "S"
  111. 107 PRINT 
  112. 108 GOTO 110 
  113. 109 PRINT
  114. 110 LET N=6 
  115. 111 LET V=I
  116. 112 LET I=1
  117. 113 GOSUB 217 
  118. 114 LET R=U
  119. 115 LET M=D 
  120. 116 IF V<>7 THEN 119 
  121. 117 LET Z=28 
  122. 118 GOTO 133 
  123. 119 IF I<>6 THEN 122 
  124. 120 LET Z=1 
  125. 121 GOTO 133 
  126. 122 IF U>=13 THEN 127
  127. 123 LET Z=2
  128. 124 IF FNA (0)<>6 THEN 126
  129. 125 LET Z=19
  130. 126 GOTO 133
  131. 127 IF U>=16 THEN 132
  132. 128 LET Z=19
  133. 129 IF FNA (0)<>8 THEN 131
  134. 130 LET Z=11
  135. 131 GOTO 133
  136. 132 LET Z=2
  137. 133 LET K=0
  138. 134 GOSUB 305
  139. 135 IF T<>.5 THEN 145
  140. 136 IF V=7 THEN 140
  141. 137 IF I<>6 THEN 140
  142. 138 PRINT "I'LL CHECK"
  143. 139 GOTO 146
  144. 140 LET V=Z+FNA(0)
  145. 141 GOSUB 348
  146. 142 PRINT "I'LL BET ";V
  147. 143 LET K=V
  148. 144 GOSUB 306
  149. 145 GOSUB 65
  150. 146 PRINT
  151. 147 PRINT "NOW WE COMPARE HANDS"
  152. 148 LET J$=H$
  153. 149 LET K$=I$
  154. 150 PRINT "MY HAND:"
  155. 151 LET N=6
  156. 152 GOSUB 185
  157. 153 LET N=1
  158. 154 GOSUB 217
  159. 155 PRINT
  160. 156 PRINT "YOU HAVE ";
  161. 157 LET K=D
  162. 158 GOSUB 369
  163. 159 LET H$=J$
  164. 160 LET I$=K$
  165. 161 LET K=M
  166. 162 PRINT "AND I HAVE ";
  167. 163 GOSUB 369
  168. 164 IF R>U THEN 67
  169. 165 IF U>R THEN 78
  170. 166 IF H$="A FLUS" THEN 170
  171. 167 PRINT "THE HAND IS DRAWN"
  172. 168 PRINT "ALL $";P;" REMAIN IN THE POT"
  173. 169 GOTO 14
  174. 170 IF FNB (M)>FNB (D) THEN 67
  175. 171 IF FNB (D)>FNB (M) THEN 78
  176. 172 GOTO 167
  177. 173 LET Z=Z+1
  178. 174 LET A(Z)=INT(1000*RND)
  179. 175 IF INT(A(Z)/100)>3 THEN 174
  180. 176 IF A(Z)-100*INT(A(Z)/100)>12 THEN 174
  181.  IF Z=1 THEN 180
  182. 177 FOR K=1 TO Z-1
  183. 178 IF A(Z)=A(K) THEN 174
  184. 179 NEXT K
  185. 180 IF Z<=10 THEN 184
  186. 181 LET N=A(U)
  187. 182 LET A(U)=A(Z)
  188. 183 LET A(Z)=N
  189. 184 RETURN
  190. 185 FOR Z=N TO N+4
  191. 186 PRINT Z;"--  ";
  192. 187 GOSUB 195
  193. 188 PRINT " OF";
  194. 189 GOSUB 207
  195. 190 IF Z/2<>INT(Z/2) THEN 192
  196. 191 PRINT
  197. 192 NEXT Z
  198. 193 PRINT
  199. 194 RETURN
  200. 195 LET K=FNB (A(Z))
  201. 196 IF K<>9 THEN 198
  202. 197 PRINT "JACK";
  203. 198 IF K<>10 THEN 200
  204. 199 PRINT "QUEEN";
  205. 200 IF K<>11 THEN 202
  206. 201 PRINT "KING";
  207. 202 IF K<>12 THEN 204
  208. 203 PRINT "ACE";
  209. 204 IF K>=9 THEN 206
  210. 205 PRINT K+2;
  211. 206 RETURN
  212. 207 LET K=INT(A(Z)/100)
  213. 208 IF K<>0 THEN 210
  214. 209 PRINT " CLUBS",
  215. 210 IF K<>1 THEN 212
  216. 211 PRINT " DIAMONDS",
  217. 212 IF K<>2 THEN 214
  218. 213 PRINT " HEARTS",
  219. 214 IF K<>3 THEN 216
  220. 215 PRINT " SPADES",
  221. 216 RETURN
  222. 217 LET U=0
  223. 218 FOR Z=N TO N+4
  224. 219 LET B(Z)=FNB(A(Z))
  225. 220 IF Z=N+4 THEN 223
  226. 221 IF INT(A(Z)/100) <>INT(A(Z+1)/100) THEN 223
  227. 222 LET U=U+1
  228. 223 NEXT Z
  229. 224 IF U<>4 THEN 231
  230. 225 LET X=11111
  231. 226 LET D=A(N)
  232. 227 LET H$="A FLUS"
  233. 228 LET I$="H IN"
  234. 229 LET U=15
  235. 230 RETURN
  236. 231 FOR Z=N TO N+3
  237. 232 FOR K=Z+1 TO N+4
  238. 233 IF B(Z)<=B(K) THEN 239
  239. 234 LET X=A(Z)
  240. 235 LET A(Z)=A(K)
  241. 236 LET B(Z)=B(K)
  242. 237 LET A(K)=X
  243. 238 LET B(K)=A(K)-100*INT(A(K)/100)
  244. 239 NEXT K
  245. 240 NEXT Z
  246. 241 LET X=0
  247. 242 FOR Z=N TO N+3
  248. 243 IF B(Z)<>B(Z+1) THEN 247
  249. 244 LET X=X+11*10^(Z-N)
  250. 245 LET D=A(Z)
  251. 246 GOSUB 276
  252. 247 NEXT Z
  253. 248 IF X<>0 THEN 262
  254. 249 IF B(N)+3<>B(N+3) THEN 252
  255. 250 LET X=1111
  256. 251 LET U=10
  257. 252 IF B(N+1)+3<>B(N+4) THEN 262
  258. 253 IF U<>10 THEN 260
  259. 254 LET U=14
  260. 255 LET H$="STRAIG"
  261. 256 LET I$="HT"
  262. 257 LET X=11111
  263. 258 LET D=A(N+4)
  264. 259 RETURN
  265. 260 LET U=10
  266. 261 LET X=11110
  267. 262 IF U>=10 THEN 269
  268. 263 LET D=A(N+4)
  269. 264 LET H$="SCHMAL"
  270. 265 LET I$="TZ, "
  271. 266 LET U=9
  272. 267 LET X=11000
  273. 268 GOTO 274
  274. 269 IF U<>10 THEN 272
  275. 270 IF I=1 THEN 274
  276. 271 GOTO 275
  277. 272 IF U>12 THEN 275
  278. 273 IF FNB(D)>6 THEN 275
  279. 274 LET I=6
  280. 275 RETURN
  281. 276 IF U>=11 THEN 281
  282. 277 LET U=11
  283. 278 LET H$="A PAIR"
  284. 279 LET I$=" OF "
  285. 280 RETURN
  286. 281 IF U<>11 THEN 291
  287. 282 IF B(Z)<>B(Z-1) THEN 287
  288. 283 LET H$="THREE"
  289. 284 LET I$=" "
  290. 285 LET U=13
  291. 286 RETURN
  292. 287 LET H$="TWO P"
  293. 288 LET I$="AIR, "
  294. 289 LET U=12
  295. 290 RETURN
  296. 291 IF U<>12 THEN 296
  297. 292 LET U=16
  298. 293 LET H$="FULL H"
  299. 294 LET I$="OUSE, "
  300. 295 RETURN
  301. 296 IF B(Z)<>B(Z-1) THEN 301
  302. 297 LET U=17
  303. 298 LET H$="FOUR"
  304. 299 LET I$=" "
  305. 300 RETURN
  306. 301 LET U=16
  307. 302 LET H$="FULL H"
  308. 303 LET I$="OUSE, "
  309. 304 RETURN
  310. 305 LET G=0
  311. 306 PRINT "WHAT IS YOUR BET";
  312. 307 INPUT T
  313. 308 IF T-INT(T)=0 THEN 314
  314. 309 IF K<>0 THEN 312
  315. 310 IF G<>0 THEN 312
  316. 311 IF T=.5 THEN 341
  317. 312 PRINT "NO SMALL CHANGE, PLEASE"
  318. 313 GOTO 306
  319. 314 IF S-G-T>=0 THEN 317
  320. 315 GOSUB 383
  321. 316 GOTO 306
  322. 317 IF T<>0 THEN 320
  323. 318 LET I=3
  324. 319 GOTO 338
  325. 320 IF G+T>=K THEN 323
  326. 321 PRINT "IF YOU CAN'T SEE MY BET, THEN FOLD"
  327. 322 GOTO 306
  328. 323 LET G=G+T
  329. 324 IF G=K THEN 338
  330. 325 IF Z<>1 THEN 342
  331. 326 IF G>5 THEN 330
  332. 327 IF Z>=2 THEN 335
  333. 328 LET V=5
  334. 329 GOTO 342
  335. 330 IF Z=1 THEN 332
  336. 331 IF T<=25 THEN 335
  337. 332 LET I=4
  338. 333 PRINT "I FOLD"
  339. 334 RETURN
  340. 335 IF Z=2 THEN 343
  341. 336 PRINT "I'LL SEE YOU"
  342. 337 LET K=G
  343. 338 LET S=S-G
  344. 339 LET C=C-K
  345. 340 LET P=P+G+K
  346. 341 RETURN
  347. 342 IF G>3*Z THEN 335
  348. 343 LET V=G-K+FNA(0)
  349. 344 GOSUB 348
  350. 345 PRINT "I'LL SEE YOU, AND RAISE YOU ";V
  351. 346 LET K=G+V
  352. 347 GOTO 306
  353. 348 IF C-G-V>=0 THEN 366
  354. 349 IF G<>0 THEN 352
  355. 350 LET V=C
  356. 351 RETURN
  357. 352 IF C-G>=0 THEN 336
  358. 353 IF O/2<>INT(O/2) THEN 360
  359. 354 PRINT "WOULD YOU LIKE TO BUY BACK YOUR WATCH FOR $50";
  360. 355 INPUT J$
  361. 356 IF LEFT$(J$,1)="N" THEN 360
  362. 357 LET C=C+50
  363. 358 LET O=O/2
  364. 359 RETURN
  365. 360 IF O/3<>INT(O/3) THEN 367
  366. 361 PRINT "WOULD YOU LIKE TO BUY BACK YOUR TIE TACK FOR $50";
  367. 362 INPUT J$
  368. 363 IF LEFT$(J$,1)="N" THEN 367
  369. 364 LET C=C+50
  370. 365 LET O=O/3
  371. 366 RETURN
  372. 367 PRINT "I'M BUSTED.  CONGRATULATIONS"
  373. 368 STOP
  374. 369 PRINT H$;I$;
  375. 370 IF H$<>"A FLUS" THEN 375
  376. 371 LET K=INT(K/100)
  377. 372 GOSUB 208
  378. 373 PRINT
  379. 374 RETURN
  380. 375 LET K=FNB(K)
  381. 376 GOSUB 196
  382. 377 IF H$="SCHMAL" THEN 379
  383. 378 IF H$<>"STRAIG" THEN 381
  384. 379 PRINT " HIGH"
  385. 380 RETURN
  386. 381 PRINT "S"
  387. 382 RETURN
  388. 383 PRINT
  389. 384 PRINT "YOU CAN'T BET WHAT YOU HAVEN'T GOT"
  390. 385 IF O/2=INT(O/2) THEN 397
  391. 386 PRINT "WOULD YOU LIKE TO SELL YOUR WATCH";
  392. 387 INPUT J$
  393. 388 IF LEFT$(J$,1)="N" THEN 397
  394. 389 IF FNA(0)>=7 THEN 393
  395. 390 PRINT "I'LL GIVE YOU $75 FOR IT"
  396. 391 LET S=S+75
  397. 392 GOTO 395
  398. 393 PRINT "THAT'S A PRETTY CRUMMY WATCH - I'LL GIVE YOU $25"
  399. 394 LET S=S+25
  400. 395 LET O=O*2
  401. 396 RETURN
  402. 397 IF O/3=INT(O/3) THEN 409
  403. 398 PRINT  "WILL YOU PART WITH THAT DIAMOND TIE TACK";
  404. 399 INPUT J$
  405. 400 IF LEFT$(J$,1)="N" THEN  408
  406. 401 IF FNA(0)>=6 THEN 405
  407. 402 PRINT "YOU ARE NOW $100 RICHER"
  408. 403 LET S=S+100
  409. 404 GOTO 407
  410. 405 PRINT "IT'S PASTE.  $25"
  411. 406 LET  S=S+25
  412. 407 LET  O=O*3
  413. 408 RETURN
  414. 409 PRINT "YOUR WAD IS SHOT.  SO LONG, SUCKER"
  415. 410 END
  416.