2 ? TAB(33);"POKER"
4 ? TAB(15);"CREATIVE COMPUTING MORRISTOWN,NEW JERSEY"
6 ?:?:?
10 DIM A(50),B(15)
20 ! DEF FNA(X)=INT(10*RND(1))
30 ! DEF FAB(X)=X-100*INT(X/100)
35 RANDOMIZE
40 ?"WELCOME TO THE SVHS CASINO. WE EACH HAVE $200"
50 ?"I WILLOPEN THE BETTING BEFORE THE DRAW; YOU OPEN AFTER"
60 ?"WHEN YOU FOLD ,BET 0; TO CHECK,BET .5"
70 ?"ENOUGH TALK -- LET US GET DOWN BUISINESS"
80 ?
90 O=1
100 C=200
110 S=200
120 P=0
130 !
140 ?
150 IF C<=5 THEN 3670
160 ?"THE ANTE IS $5. I WILL DEAL"
170 ?
180 IF S>5 THEN 200
190 GOSUB 3830
200 P=P+10
210 S=S-5
220 C=C-5
230 FOR Z=1 TO 10
240 GOSUB 1740
250 NEXT Z
260 ?"YOUR HAND:"
270 N=1
280 GOSUB 1850
290 N=6
300 I=2
310 GOSUB 2170
320 ?
330 IF I<>6 THEN 470
340 IF INT(10*RND(1))<=7 THEN 370
350 LET X=11100
360 GOTO 420
370 IF INT(10*RND(1))<=7 THEN 400
380 LET X=11110
390 GOTO 420
400 IF INT(10*RND(1))>=1 THEN 450
410 X=11111
420 I=7
430 Z=23
440 GOTO 580
450 Z=1
460 GOTO 510
470 IF U>=13 THEN 540
480 IF INT(10*RND(1))>=2 THEN 500
490 GOTO 420
500 Z=0
510 K=0
520 ?"I CHECK"
530 GOTO 620
540 IF U<=16 THEN 570
550 Z=2
560 IF INT(10*RND(1))>=1 THEN 580
570 Z=35
580 V=Z+INT(10*RND(1))
590 GOSUB 3480
600 ?"I'LL OPEN WITH ";V
610 K=V
620 GOSUB 3050
630 GOSUB 650
640 GOSUB 820
650 IF I<>3 THEN 760
660 ?
670 ?"I WIN"
680 C=C+P
690 ?"NOW I HAVE $";C;" AND YOU HAVE $";S
700 ?"DO YOU WISH TO CONTINUE (C'RET=YES)";
710 INPUT H$
715 IF H$="" THEN 120
720 IF H$="YES"OR H$="Y" THEN 120
730 IF H$="NO" OR H$="N" THEN 4095
740 ?"ANSWER YES OR NO,PLEASE"
750 GOTO 700
760 IF I<>4 THEN 810
770 ?
780 ?"YOU WIN"
790 S=S+P
800 GOTO 690
810 RETURN
820 ?
830 ?"NOW WE DRAW--- HOW MANY CARDS DO YOU WANT?";
840 INPUT T
850 IF T=0 THEN 980
860 Z=10
870 IF T<4 THEN 900
880 ?"YOU CAN'T DRAW MORE THAN THREE CARDS"
890 GOTO 840
900 ?"WHAT ARE THEIR NUMBERS"
910 FOR Q=1 TO T
920 INPUT U
930 GOSUB 1730
940 NEXT Q
950 ?"YOUR NEW HAND:"
960 N=1
970 GOSUB 1850
980 Z=10+T
990 FOR U=6 TO 10
1000 IF INT(X/10^(U-6))<>10*INT(X/10^(U-5)) THEN 1020
1010 GOSUB 1730
1020 NEXT U
1030 ?
1040 ?"I'M TAKING";Z-10-T;"CARD";
1050 IF Z=11+T THEN 1090
1060 ?"S"
1070 ?
1080 GOTO 1100
1090 ?
1100 N=6
1110 V=I
1120 I=1
1130 GOSUB 2170
1140 B=U
1150 M=D
1160 IF V<>7 THEN 1190
1170 Z=28
1180 GOTO 1330
1190 IF I<>6 THEN 1220
1200 Z=1
1210 GOTO 1330
1220 IF U>=13 THEN 1270
1230 Z=2
1240 IF INT(10*RND(1))<>6 THEN 1260
1250 Z=19
1260 GOTO 1330
1270 IF U>=16 THEN 1320
1280 Z=19
1290 IF INT(10*RND(1))<>8 THEN 1310
1300 Z=11
1310 GOTO 1330
1320 Z=2
1330 K=0
1340 GOSUB 3050
1350 IF T<>.5 THEN 1450
1360 IF V=7 THEN 1400
1370 IF I<>6 THEN 1400
1380 ?"I'LL CHECK"
1390 GOTO 1460
1400 V=Z+INT(10*RND(1))
1410 GOSUB 3480
1420 ?"I'LL BET ";V
1430 K=V
1440 GOSUB 3060
1450 GOSUB 650
1460 ?
1470 ?"NOW WE COMPARE HANDS"
1480 J$=H$
1490 K$=I$
1500 ?"MY HAND:"
1510 N=6
1520 GOSUB 1850
1530 N=1
1540 GOSUB 2170
1550 ?
1560 ?"YOU HAVE ";
1570 K=D
1580 GOSUB 3690
1590 H$=J$
1600 I$=K$
1610 K=M
1620 ?"AND I HAVE ";
1630 GOSUB 3690
1640 IF B>U THEN 670
1650 IF U>B THEN 780
1660 IF H$="A FLUS" THEN 170
1670 ?"THE HAND IS DRAWN"
1680 ?"ALL $";P;" REMAINS IN THE POT"
1690 GOTO 140
1700 IF M-100*INT(M/100)>D-100*INT(D/100) THEN 670
1710 IF D-100*INT(D/100)>M-100*INT(M/100) THEN 780
1720 GOTO 1760
1730 Z=Z+1
1740 A(Z)=INT(1000*RND(1))
1750 IF INT(A(Z)/100)>3 THEN 1740
1760 IF A(Z)-100*INT(A(Z)/100)>12 THEN 1740
1765 IF Z=1 THEN 1840
1770 FOR K=1 TO Z-1
1780 IF A(Z)=A(K) THEN 1740
1790 NEXT K
1800 IF Z<=10 THEN 1840
1810 N=A(U)
1820 A(U)=A(Z)
1830 A(Z)=N
1840 RETURN
1850 FOR Z=N TO N+4
1860 ? Z"-- ";
1870 GOSUB 1950
1880 ?" OF";
1890 GOSUB 2070
1900 IF Z/2<>INT(Z/2) THEN 1920
1910 ?
1920 NEXT Z
1930 ?
1940 RETURN
1950 K=A(Z)-100*INT(A(Z)/100)
1960 IF K<>9 THEN 1980
1970 ?"JACK";
1980 IF K<>10 THEN 2000
1990 ?"QUEEN";
2000 IF K<>11 THEN 2020
2010 ?"KING";
2020 IF K<>12 THEN 2040
2030 ?"ACE";
2040 IF K>=9 THEN 2060
2050 ? K+2;
2060 RETURN
2070 K=INT(A(Z)/100)
2080 IF K<>0 THEN 2100
2090 ?" CLUBS",
2100 IF K<>1 THEN 2120
2110 ?" DIAMONDS",
2120 IF K<>2 THEN 2140
2130 ?" HEARTS",
2140 IF K<>3 THEN 2160
2150 ?" SPADES",
2160 RETURN
2170 U=0
2180 FOR Z=N TO N+4
2190 B(Z)=A(Z)-100*INT(A(Z)/100)
2200 IF Z=N+4 THEN 2230
2210 IF INT(A(Z)/100)<>INT(A(Z+1)/100) THEN 2230
2220 U=U+1
2230 NEXT Z
2240 IF U<>4 THEN 2310
2250 X=11111
2260 D=A(N)
2270 H$="A FLUS"
2280 I$="H IN"
2290 U=15
2300 RETURN
2310 FOR Z=N TO N+3
2320 FOR K=Z+1 TO N+4
2330 IF B(Z)<=B(K) THEN 2390
2340 X=A(Z)
2350 A(Z)=A(K)
2360 B(Z)=B(K)
2370 A(K)=X
2380 B(K)=A(K)-100*INT(A(K)/100)
2390 NEXT K
2400 NEXT Z
2410 X=0
2420 FOR Z=N TO N+3
2430 IF B(Z)<>B(Z+1) THEN 2470
2440 X=X+11*10^(Z-N)
2450 D=A(Z)
2460 GOSUB 2760
2470 NEXT Z
2480 IF X<>0 THEN 2620
2490 IF B(N)+3<>B(N+3) THEN 2520
2500 X=1111
2510 U=10
2520 IF B(N+1)+3<>B(N+4) THEN 2620
2530 IF U<>10 THEN 2600
2540 U=14
2550 H$="STRAIG"
2560 I$="HT"
2570 X=11111
2580 D=A(N+4)
2590 RETURN
2600 U=10
2610 X=11110
2620 IF U>=10 THEN 2690
2630 D=A(N+4)
2640 H$="SCHMAL"
2650 I$="TZ, "
2660 U=9
2670 X=11000
2680 GOTO 2740
2690 IF U<>10 THEN 2720
2700 IF I=1 THEN 2740
2710 GOTO 2750
2720 IF U>12 THEN 2750
2730 IF D-100*INT(D/100)>6 THEN 2750
2740 I=6
2750 RETURN
2760 IF U>=11 THEN 2810
2770 U=11
2780 H$="A PAIR"
2790 I$=" OF "
2800 RETURN
2810 IF U<>11 THEN 2910
2820 IF B(Z)<>B(Z-1) THEN 2870
2830 H$="THREE"
2840 I$=" "
2850 U=13
2860 RETURN
2870 H$="TWO P"
2880 I$="AIR, "
2890 U=12
2900 RETURN
2910 IF U<12 THEN 2960
2920 U=16
2930 H$="FULL H"
2940 I$="OUSE, "
2950 RETURN
2960 IF B(Z)<>B(Z-1) THEN 3010
2970 U=17
2980 H$="FOUR"
2990 I$=" "
3000 RETURN
3010 U=16
3020 H$="FULL H"
3030 I$="OUSE, "
3040 RETURN
3050 G=0
3060 ?"WHAT IS YOUR BET?";
3070 INPUT T
3080 IF T-INT(T)=0 THEN 3140
3090 IF K<>0 THEN 3120
3100 IF G<>0 THEN 3120
3110 IF T=.5 THEN 3410
3120 ?"NO SMALL CHANGE,PLEASE"
3130 GOTO 3060
3140 IF S-G-T>=0 THEN 3170
3150 GOSUB 3830
3160 GOTO 3060
3170 IF T<>0THEN 3200
3180 I=3
3190 GOTO 3380
3200 IF G+T>=K THEN 3230
3210 ?"IF YOU CAN'T SEE MY BET,THEN FOLD"
3220 GOTO 3060
3230 G=G+T
3240 IF G=K THEN 3380
3250 IF Z<>1 THEN 3420
3260 IF G>5 THEN 3300
3270 IF Z>=2 THEN 3350
3280 V=5
3290 GOTO 3420
3300 IF Z=1 THEN 3320
3310 IF T<=25 THEN 3350
3320 I=4
3330 ?"I FOLD"
3340 RETURN
3350 IF Z=2 THEN 3430
3360 ?"I'LL SEE YOU"
3370 K=G
3380 S=S-G
3390 C=C-K
3400 P=P+G+K
3410 RETURN
3420 IF G>3*Z THEN 3350
3430 V=G-K+INT(10*RND(1))
3440 GOSUB 3480
3450 ?"I'LL SEE YOU,AND RAISE YOU";V
3460 K=G+V
3470 GOTO 3060
3480 IF C-G-V>=0 THEN 3660
3490 IF G<>0 THEN 3520
3500 V=C
3510 RETURN
3520 IF C-G<>0 THEN 3360
3530 IF (O/2)<>INT(O/2) THEN 3600
3540 ?"WOULD YOU LIKE TO BUY BACK YOUR WATCH FOR $50";
3550 INPUT J$
3560 IF J$="NO" THEN 3600
3570 C=C+50
3580 O=O/2
3590 RETURN
3600 IF O/3<>INT(O/3) THEN 3670
3610 ?"WOULD YOU LIKE BUY BACK YOUR WATCH FOR $50";
3620 INPUT J$
3630 IF J$="NO" THEN 3670
3640 C=C+50
3650 O=O/3
3660 RETURN
3670 ?"I'M BUSTED. CONGRATULATIONS!"
3680 STOP
3690 ? H$;I$;
3700 IF H$<>"A FLUS" THEN 3750
3710 K=INT(K/100)
3720 GOSUB 2080
3730 ?
3740 RETURN
3750 K=K-100*INT(K/100)
3760 GOSUB 1960
3770 IF H$="SCHMAL" THEN 3790
3780 IF H$<>"STRAIG" THEN 3810
3790 ?" HIGH"
3800 RETURN
3810 ? "S"
3820 RETURN
3830 ?
3840 ?"YOU CAN'T BET WITH WHAT YOU HAVEN'T GOT"
3850 IF O/2=INT(O/2) THEN 3970
3860 ? "WOULD YOU LIKE TO SELL YOUR WATCH?"
3870 INPUT J$
3880 IF J$="NO" THEN 3970
3890 IF INT(10*RND(1))>=7 THEN 3930
3900 ? "I'LL GIVE YOU $75 FOR IT"
3910 S=S+75
3920 GOTO 3950
3930 ?"THST'S A PRETTY CRUMMY WATCH - I'LL GIVE YOU $25"
3940 S=S+25
3950 O=O*2
3960 RETURN
3970 IF O/3<>INT(O/3) THEN 4090
3980 ?"WILL YOU PART WITH THAT DIAMOND TIE TACK?":
3990 INPUT J$
4000 IF J$="NO" THEN 4080
4010 IF INT(10*RND(1))>=6 THEN 4050
4020 ?"YOU'RE NOW $100 RICHER"
4030 S=S+100
4040 GOTO 4070
4050 ?"IT'S PASTE. $25"
4060 S=S+25
4070 O=O*3
4080 RETURN
4090 ? "YOUR WAD IS SHOT. SO LONG,SUCKER!!"
4095 ?"THANK YOU FOR YOUR PLAYING"
4100 END