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.  
  119. 114 LET R=U
  120. 115 LET M=D 
  121. 116 IF V<>7 THEN 119 
  122. 117 LET Z=28 
  123. 118 GOTO 133 
  124. 119 IF I<>6 THEN 122 
  125. 120 LET Z=1
  126.  
  127. 121 GOTO 133
  128.  
  129. 122 IF U>=13 THEN 127
  130. 123 LET Z=2
  131. 124 IF FNA (0)<>6 THEN 126
  132. 125 LET Z=19
  133. 126 GOTO 133
  134. 127 IF U>=16 THEN 132
  135. 128 LET Z=19
  136. 129 IF FNA (0)<>8 THEN 131
  137. 130 LET Z=11
  138. 131 GOTO 133
  139. 132 LET Z=2
  140. 133 LET K=0
  141. 134 GOSUB 305
  142. 135 IF T<>.5 THEN 145
  143. 136 IF V=7 THEN 140
  144. 137 IF I<>6 THEN 140
  145. 138 PRINT "I'LL CHECK"
  146. 139 GOTO 146
  147. 140 LET V=Z+FNA(0)
  148. 141 GOSUB 348
  149. 142 PRINT "I'LL BET ";V
  150. 143 LET K=V
  151. 144 GOSUB 306
  152. 145 GOSUB 65
  153. 146 PRINT
  154. 147 PRINT "NOW WE COMPARE HANDS"
  155. 148 LET J$=H$
  156. 149 LET K$=I$
  157. 150 PRINT "MY HAND:"
  158. 151 LET N=6
  159. 152 GOSUB 185
  160. 153 LET N=1
  161. 154 GOSUB 217
  162. 155 PRINT
  163. 156 PRINT "YOU HAVE ";
  164. 157 LET K=D
  165. 158 GOSUB 369
  166. 159 LET H$=J$
  167. 160 LET I$=K$
  168. 161 LET K=M
  169. 162 PRINT "AND I HAVE ";
  170. 163 GOSUB 369
  171. 164 IF R>U THEN 67
  172. 165 IF U>R THEN 78
  173. 166 IF H$="A FLUS" THEN 170
  174. 167 PRINT "THE HAND IS DRAWN"
  175. 168 PRINT "ALL $";P;" REMAIN IN THE POT"
  176. 169 GOTO 14
  177. 170 IF FNB (M)>FNB (D) THEN 67
  178. 171 IF FNB (D)>FNB (M) THEN 78
  179. 172 GOTO 167
  180. 173 LET Z=Z+1
  181. 174 LET A(Z)=INT(1000*RND)
  182. 175 IF INT(A(Z)/100)>3 THEN 174
  183. 176 IF A(Z)-100*INT(A(Z)/100)>12 THEN 174
  184.  IF Z=1 THEN 180
  185. 177 FOR K=1 TO Z-1
  186. 178 IF A(Z)=A(K) THEN 174
  187. 179 NEXT K
  188. 180 IF Z<=10 THEN 184
  189. 181 LET N=A(U)
  190. 182 LET A(U)=A(Z)
  191. 183 LET A(Z)=N
  192. 184 RETURN
  193. 185 FOR Z=N TO N+4
  194. 186 PRINT Z;"--  ";
  195. 187 GOSUB 195
  196. 188 PRINT " OF";
  197. 189 GOSUB 207
  198. 190 IF Z/2<>INT(Z/2) THEN 192
  199. 191 PRINT
  200. 192 NEXT Z
  201. 193 PRINT
  202. 194 RETURN
  203. 195 LET K=FNB (A(Z))
  204. 196 IF K<>9 THEN 198
  205. 197 PRINT "JACK";
  206. 198 IF K<>10 THEN 200
  207. 199 PRINT "QUEEN";
  208. 200 IF K<>11 THEN 202
  209. 201 PRINT "KING";
  210. 202 IF K<>12 THEN 204
  211. 203 PRINT "ACE";
  212. 204 IF K>=9 THEN 206
  213. 205 PRINT K+2;
  214. 206 RETURN
  215. 207 LET K=INT(A(Z)/100)
  216. 208 IF K<>0 THEN 210
  217. 209 PRINT " CLUBS",
  218. 210 IF K<>1 THEN 212
  219. 211 PRINT " DIAMONDS",
  220. 212 IF K<>2 THEN 214
  221. 213 PRINT " HEARTS",
  222. 214 IF K<>3 THEN 216
  223. 215 PRINT " SPADES",
  224. 216 RETURN
  225. 217 LET U=0
  226. 218 FOR Z=N TO N+4
  227. 219 LET B(Z)=FNB(A(Z))
  228. 220 IF Z=N+4 THEN 223
  229. 221 IF INT(A(Z)/100) <>INT(A(Z+1)/100) THEN 223
  230. 222 LET U=U+1
  231. 223 NEXT Z
  232. 224 IF U<>4 THEN 231
  233. 225 LET X=11111
  234. 226 LET D=A(N)
  235. 227 LET H$="A FLUS"
  236. 228 LET I$="H IN"
  237. 229 LET U=15
  238. 230 RETURN
  239. 231 FOR Z=N TO N+3
  240. 232 FOR K=Z+1 TO N+4
  241. 233 IF B(Z)<=B(K) THEN 239
  242. 234 LET X=A(Z)
  243. 235 LET A(Z)=A(K)
  244. 236 LET B(Z)=B(K)
  245. 237 LET A(K)=X
  246. 238 LET B(K)=A(K)-100*INT(A(K)/100)
  247. 239 NEXT K
  248. 240 NEXT Z
  249. 241 LET X=0
  250. 242 FOR Z=N TO N+3
  251. 243 IF B(Z)<>B(Z+1) THEN 247
  252. 244 LET X=X+11*10^(Z-N)
  253. 245 LET D=A(Z)
  254. 246 GOSUB 276
  255. 247 NEXT Z
  256. 248 IF X<>0 THEN 262
  257. 249 IF B(N)+3<>B(N+3) THEN 252
  258. 250 LET X=1111
  259. 251 LET U=10
  260. 252 IF B(N+1)+3<>B(N+4) THEN 262
  261. 253 IF U<>10 THEN 260
  262. 254 LET U=14
  263. 255 LET H$="STRAIG"
  264. 256 LET I$="HT"
  265. 257 LET X=11111
  266. 258 LET D=A(N+4)
  267. 259 RETURN
  268. 260 LET U=10
  269. 261 LET X=11110
  270. 262 IF U>=10 THEN 269
  271. 263 LET D=A(N+4)
  272. 264 LET H$="SCHMAL"
  273. 265 LET I$="TZ, "
  274. 266 LET U=9
  275. 267 LET X=11000
  276. 268 GOTO 274
  277. 269 IF U<>10 THEN 272
  278. 270 IF I=1 THEN 274
  279. 271 GOTO 275
  280. 272 IF U>12 THEN 275
  281. 273 IF FNB(D)>6 THEN 275
  282. 274 LET I=6
  283. 275 RETURN
  284. 276 IF U>=11 THEN 281
  285. 277 LET U=11
  286. 278 LET H$="A PAIR"
  287. 279 LET I$=" OF "
  288. 280 RETURN
  289. 281 IF U<>11 THEN 291
  290. 282 IF B(Z)<>B(Z-1) THEN 287
  291. 283 LET H$="THREE"
  292. 284 LET I$=" "
  293. 285 LET U=13
  294. 286 RETURN
  295. 287 LET H$="TWO P"
  296. 288 LET I$="AIR, "
  297. 289 LET U=12
  298. 290 RETURN
  299. 291 IF U<>12 THEN 296
  300. 292 LET U=16
  301. 293 LET H$="FULL H"
  302. 294 LET I$="OUSE, "
  303. 295 RETURN
  304. 296 IF B(Z)<>B(Z-1) THEN 301
  305. 297 LET U=17
  306. 298 LET H$="FOUR"
  307. 299 LET I$=" "
  308. 300 RETURN
  309. 301 LET U=16
  310. 302 LET H$="FULL H"
  311. 303 LET I$="OUSE, "
  312. 304 RETURN
  313. 305 LET G=0
  314. 306 PRINT "WHAT IS YOUR BET";
  315. 307 INPUT T
  316. 308 IF T-INT(T)=0 THEN 314
  317. 309 IF K<>0 THEN 312
  318. 310 IF G<>0 THEN 312
  319. 311 IF T=.5 THEN 341
  320. 312 PRINT "NO SMALL CHANGE, PLEASE"
  321. 313 GOTO 306
  322. 314 IF S-G-T>=0 THEN 317
  323. 315 GOSUB 383
  324. 316 GOTO 306
  325. 317 IF T<>0 THEN 320
  326. 318 LET I=3
  327. 319 GOTO 338
  328. 320 IF G+T>=K THEN 323
  329. 321 PRINT "IF YOU CAN'T SEE MY BET, THEN FOLD"
  330. 322 GOTO 306
  331. 323 LET G=G+T
  332. 324 IF G=K THEN 338
  333. 325 IF Z<>1 THEN 342
  334. 326 IF G>5 THEN 330
  335. 327 IF Z>=2 THEN 335
  336. 328 LET V=5
  337. 329 GOTO 342
  338. 330 IF Z=1 THEN 332
  339. 331 IF T<=25 THEN 335
  340. 332 LET I=4
  341. 333 PRINT "I FOLD"
  342. 334 RETURN
  343. 335 IF Z=2 THEN 343
  344. 336 PRINT "I'LL SEE YOU"
  345. 337 LET K=G
  346. 338 LET S=S-G
  347. 339 LET C=C-K
  348. 340 LET P=P+G+K
  349. 341 RETURN
  350. 342 IF G>3*Z THEN 335
  351. 343 LET V=G-K+FNA(0)
  352. 344 GOSUB 348
  353. 345 PRINT "I'LL SEE YOU, AND RAISE YOU ";V
  354. 346 LET K=G+V
  355. 347 GOTO 306
  356. 348 IF C-G-V>=0 THEN 366
  357. 349 IF G<>0 THEN 352
  358. 350 LET V=C
  359. 351 RETURN
  360. 352 IF C-G>=0 THEN 336
  361. 353 IF O/2<>INT(O/2) THEN 360
  362. 354 PRINT "WOULD YOU LIKE TO BUY BACK YOUR WATCH FOR $50";
  363. 355 INPUT J$
  364. 356 IF LEFT$(J$,1)="N" THEN 360
  365. 357 LET C=C+50
  366. 358 LET O=O/2
  367. 359 RETURN
  368. 360 IF O/3<>INT(O/3) THEN 367
  369. 361 PRINT "WOULD YOU LIKE TO BUY BACK YOUR TIE TACK FOR $50";
  370. 362 INPUT J$
  371. 363 IF LEFT$(J$,1)="N" THEN 367
  372. 364 LET C=C+50
  373. 365 LET O=O/3
  374. 366 RETURN
  375. 367 PRINT "I'M BUSTED.  CONGRATULATIONS"
  376. 368 STOP
  377. 369 PRINT H$;I$;
  378. 370 IF H$<>"A FLUS" THEN 375
  379. 371 LET K=INT(K/100)
  380. 372 GOSUB 208
  381. 373 PRINT
  382. 374 RETURN
  383. 375 LET K=FNB(K)
  384. 376 GOSUB 196
  385. 377 IF H$="SCHMAL" THEN 379
  386. 378 IF H$<>"STRAIG" THEN 381
  387. 379 PRINT " HIGH"
  388. 380 RETURN
  389. 381 PRINT "S"
  390. 382 RETURN
  391. 383 PRINT
  392. 384 PRINT "YOU CAN'T BET WHAT YOU HAVEN'T GOT"
  393. 385 IF O/2=INT(O/2) THEN 397
  394. 386 PRINT "WOULD YOU LIKE TO SELL YOUR WATCH";
  395. 387 INPUT J$
  396. 388 IF LEFT$(J$,1)="N" THEN 397
  397. 389 IF FNA(0)>=7 THEN 393
  398. 390 PRINT "I'LL GIVE YOU $75 FOR IT"
  399. 391 LET S=S+75
  400. 392 GOTO 395
  401. 393 PRINT "THAT'S A PRETTY CRUMMY WATCH - I'LL GIVE YOU $25"
  402. 394 LET S=S+25
  403. 395 LET O=O*2
  404. 396 RETURN
  405. 397 IF O/3=INT(O/3) THEN 409
  406. 398 PRINT  "WILL YOU PART WITH THAT DIAMOND TIE TACK";
  407. 399 INPUT J$
  408. 400 IF LEFT$(J$,1)="N" THEN  408
  409. 401 IF FNA(0)>=6 THEN 405
  410. 402 PRINT "YOU ARE NOW $100 RICHER"
  411. 403 LET S=S+100
  412. 404 GOTO 407
  413. 405 PRINT "IT'S PASTE.  $25"
  414. 406 LET  S=S+25
  415. 407 LET  O=O*3
  416. 408 RETURN
  417. 409 PRINT "YOUR WAD IS SHOT.  SO LONG, SUCKER"
  418. 410 END
  419.