Poker

Type: Program
Platform(s): TS 2068

Traditional card game.

Appears on

Capital Area Timex Sinclair User Groupโ€™s Library Tape.
One of a series of library tapes. Programs on these tapes were renamed to a number series. This tape contained programs 20121 to 20163. These tapes were compiled by Tony Willing.

Gallery

Poker

Source Code

    5 CLS : BEEP .15,20: BORDER 6
   10 DIM a(50): DIM b(15)
   20 DEF FN a(x)=INT (10*RND+(1))
   30 DEF FN b(x)=x-100*INT (x/100)
   35 GO SUB 9000
   38 FOR n=14 TO 1 STEP -1: CLS 
   39 INK RND*6
   40 PRINT AT n,0;" \::\::\::\::\i \j\::\::\::\i \::  \f\h \::\::\::\::\:: \::\::\::\::\i   \::   \:: \::   \:: \:: \f\h  \::     \::   \::   \::   \:: \::   \:: \::\f\h   \::     \::   \::   \::\::\::\::\k \::   \:: \::\m    \::\::\::\::  \::\::\::\::\k   \::     \::   \:: \::\g\e   \::     \::\g\e     \::     \::   \:: \:: \g\e  \::     \:: \g\e    \::     \l\::\::\::\k \::  \g\e \::\::\::\::\:: \::  \g\e"
   42 BEEP .01,RND*50: BORDER RND*7: NEXT n
   45 LET b=30: LET m=10: GO SUB 80
   46 INK 0
   48 PRINT : PRINT "Welcome to the casino.We each   have $200."
   49 GO SUB 80
   50 PRINT : PRINT "I will open the betting before  the draw.You open after."
   55 LET b=20: LET m=20: GO SUB 80
   60 PRINT : PRINT "When you fold,bet 0;            to check,bet .5 ."
   65 LET b=10: LET m=30: GO SUB 80
   70 PRINT : PRINT "Enough talk--let's get down to  business."
   75 GO TO 85
   80 FOR n=1 TO b: BORDER RND*7: BEEP .05,RND*60-m: NEXT n: RETURN 
   85 FOR n=1 TO 300: NEXT n: CLS : BORDER 6
   90 LET o=1
   95 FOR n=1 TO 100: NEXT n
  100 LET c=200: LET s=200
  110 LET g=0
  120 LET p=0
  130 RANDOMIZE 
  140 PRINT 
  150 IF c<=5 THEN GO TO 3670
  160 PRINT "The ante is $5. I will deal."
  164 BEEP .02,50
  165 PRINT : PRINT "I am shuffling the deck."
  170 PRINT 
  180 IF s>5 THEN GO TO 200
  190 GO SUB 3830
  200 LET p=p+10
  210 LET s=s-5
  220 LET c=c-5
  230 FOR z=1 TO 10
  240 GO SUB 1740
  250 NEXT z
  260 CLS 
  265 PRINT "Your hand:"
  270 LET n=1
  280 GO SUB 1850
  290 LET n=6
  300 LET i=2
  310 GO SUB 2170
  320 PRINT 
  330 IF i<>6 THEN GO TO 470
  340 IF FN a(0)<=7 THEN GO TO 370
  350 LET x=11100
  360 GO TO 420
  370 IF FN a(0)<=7 THEN GO TO 400
  380 LET x=11110
  390 GO TO 420
  400 IF FN a(0)>=1 THEN GO TO 450
  410 LET x=11111
  420 LET i=7
  430 LET z=23
  440 GO TO 580
  450 LET z=1
  460 GO TO 510
  470 IF u>=13 THEN GO TO 540
  480 IF FN a(0)>=2 THEN GO TO 500
  490 GO TO 420
  500 LET z=0
  510 LET k=0
  520 PRINT "I check"
  525 BEEP .05,30
  530 GO TO 620
  540 IF u<=16 THEN GO TO 570
  550 LET z=2
  560 IF FN a(0)>=1 THEN GO TO 580
  570 LET z=35
  580 LET v=z+FN a(0)
  590 GO SUB 3480
  600 PRINT "I'll open with ";v
  610 LET k=v
  620 GO SUB 3050
  630 GO SUB 650
  640 GO TO 820
  650 IF i<>3 THEN GO TO 760
  660 PRINT 
  670 PRINT "I win"
  675 BEEP .05,10: BEEP .05,10
  680 LET c=c+p
  690 PRINT "I have $";c;" and you have $";s
  700 PRINT "Do you wish to continue?"
  710 LET h$=INKEY$
  720 IF h$="y" THEN CLS : GO TO 120
  730 IF h$="n" THEN FOR n=1 TO 30: NEXT n: GO TO 4100
  750 GO TO 710
  760 IF i<>4 THEN GO TO 810
  770 PRINT 
  780 PRINT "You win"
  785 BEEP .05,30: BEEP .05,30
  790 LET s=s+p
  800 GO TO 690
  810 RETURN 
  820 PRINT 
  830 PRINT "Now we draw--how many cards do  you want?"
  840 INPUT t
  845 BEEP .05,45
  850 IF t=0 THEN GO TO 980
  860 LET z=10
  870 IF t<4 THEN GO TO 900
  880 PRINT "You can't draw more than three  cards."
  890 GO TO 840
  900 PRINT "Enter their numbers one at a    time"
  910 FOR q=1 TO t
  920 INPUT u
  925 BEEP .05,30
  930 GO SUB 1730
  940 NEXT q
  950 CLS 
  955 PRINT "Your new hand:"
  960 LET n=1
  970 GO SUB 1850
  980 LET z=10+t
  990 FOR u=6 TO 10
 1000 IF INT (x/10^(u-6))<>10*INT (x/10^(u-5)) THEN GO TO 1020
 1010 GO SUB 1730
 1020 NEXT u
 1030 PRINT 
 1040 PRINT "I am taking ";z-10-t;" card";
 1050 IF z=11+t THEN GO TO 1090
 1060 PRINT "s"
 1070 PRINT 
 1080 GO TO 1100
 1090 PRINT 
 1100 LET n=6: LET v=i: LET i=1
 1130 GO SUB 2170
 1140 LET b=u
 1150 LET m=d
 1160 IF v<>7 THEN GO TO 1190
 1170 LET z=28
 1180 GO TO 1330
 1190 IF i<>6 THEN GO TO 1220
 1200 LET z=1
 1210 GO TO 1330
 1220 IF u>=13 THEN GO TO 1270
 1230 LET z=2
 1240 IF FN a(0)<>6 THEN GO TO 1260
 1250 LET z=19
 1260 GO TO 1330
 1270 IF u>=16 THEN GO TO 1320
 1280 LET z=19
 1290 IF FN a(0)<>8 THEN GO TO 1310
 1300 LET z=11
 1310 GO TO 1330
 1320 LET z=2
 1330 LET k=0
 1340 GO SUB 3050
 1350 IF t<>.5 THEN GO TO 1450
 1360 IF v=7 THEN GO TO 1400
 1370 IF i<>6 THEN GO TO 1400
 1380 PRINT "I'll check"
 1390 GO TO 1460
 1400 LET v=z+FN a(0)
 1410 GO SUB 3480
 1420 PRINT "I'll bet";v
 1430 LET k=v
 1440 GO SUB 3060
 1450 GO SUB 650
 1460 PRINT 
 1470 PRINT "Now we compare hands"
 1480 LET j$=h$
 1490 LET k$=i$
 1500 PRINT "My hand:"
 1510 LET n=6
 1520 GO SUB 1850
 1530 LET n=1
 1540 GO SUB 2170
 1550 PRINT 
 1560 PRINT "You have ";
 1570 LET k=d
 1580 GO SUB 3690
 1590 LET h$=j$
 1600 LET i$=k$
 1610 LET k=m
 1620 PRINT "and I have ";
 1630 GO SUB 3690
 1640 IF b>u THEN GO TO 670
 1650 IF u>b THEN GO TO 780
 1655 IF h$=j$ THEN GO TO 1700
 1660 IF h$="a flus" THEN GO TO 1700
 1670 PRINT "The hand is drawn"
 1680 PRINT "All $";p;" remain in the pot"
 1690 GO TO 140
 1700 IF FN b(m)>FN b(d) THEN GO TO 670
 1710 IF FN b(d)>FN b(m) THEN GO TO 780
 1720 GO TO 1670
 1730 LET z=z+1
 1740 LET a(z)=INT (1000*RND+(1))
 1750 IF INT (a(z)/100)>3 THEN GO TO 1740
 1760 IF a(z)-100*INT (a(z)/100)>12 THEN GO TO 1740
 1765 IF z=1 THEN GO TO 1800
 1770 FOR k=1 TO z-1
 1780 IF a(z)=a(k) THEN GO TO 1740
 1790 NEXT k
 1800 IF z<=10 THEN GO TO 1840
 1810 LET n=a(u)
 1820 LET a(u)=a(z)
 1830 LET a(z)=n
 1840 RETURN 
 1850 FOR z=n TO n+4
 1860 PRINT z;"-- ";
 1866 BEEP .05,45
 1870 GO SUB 1950
 1880 PRINT " of";
 1890 GO SUB 2070
 1900 IF z/2<>INT (z/2) THEN GO TO 1920
 1910 PRINT 
 1920 NEXT z
 1930 PRINT 
 1940 RETURN 
 1950 LET k=FN b(a(z))
 1960 IF k<>9 THEN GO TO 1980
 1970 PRINT "Jack";
 1980 IF k<>10 THEN GO TO 2000
 1990 PRINT "Queen";
 2000 IF k<>11 THEN GO TO 2020
 2010 PRINT "King";
 2020 IF k<>12 THEN GO TO 2040
 2030 PRINT "Ace";
 2040 IF k>=9 THEN GO TO 2060
 2050 PRINT k+2;
 2060 RETURN 
 2070 LET k=INT (a(z)/100)
 2080 IF k<>0 THEN GO TO 2100
 2090 PRINT INK 4;" \d        ",
 2100 IF k<>1 THEN GO TO 2120
 2110 PRINT " "; BRIGHT 1; INK 2;"\a"; BRIGHT 0;"        ",
 2120 IF k<>2 THEN GO TO 2140
 2130 PRINT INK 2;" \b        ",
 2140 IF k<>3 THEN GO TO 2160
 2150 PRINT " \c       ",
 2160 RETURN 
 2170 LET u=0
 2180 FOR z=n TO n+4
 2190 LET b(z)=FN b(a(z))
 2200 IF z=n+4 THEN GO TO 2230
 2210 IF INT (a(z)/100)<>INT (a(z+1)/100) THEN GO TO 2230
 2220 LET u=u+1
 2230 NEXT z
 2240 IF u<>4 THEN GO TO 2310
 2250 LET x=11111
 2260 LET d=a(n)
 2270 LET h$="a flus"
 2280 LET i$="h in"
 2290 LET 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 GO TO 2390
 2340 LET x=a(z)
 2350 LET a(z)=a(k)
 2360 LET b(z)=b(k)
 2370 LET a(k)=x
 2380 LET b(k)=a(k)-100*INT (a(k)/100)
 2390 NEXT k
 2400 NEXT z
 2410 LET x=0
 2420 FOR z=n TO n+3
 2430 IF b(z)<>b(z+1) THEN GO TO 2470
 2440 LET x=x+11*10^(z-n)
 2450 LET d=a(z)
 2460 GO SUB 2760
 2470 NEXT z
 2480 IF x<>0 THEN GO TO 2620
 2490 IF b(n)+3<>b(n+3) THEN GO TO 2520
 2500 LET x=1111
 2510 LET u=10
 2520 IF b(n+1)+3<>b(n+4) THEN GO TO 2620
 2530 IF u<>10 THEN GO TO 2600
 2540 LET u=14
 2550 LET h$="straig"
 2560 LET i$="ht"
 2570 LET x=11111
 2580 LET d=a(n+4)
 2590 RETURN 
 2600 LET u=10
 2610 LET x=11110
 2620 IF u>=10 THEN GO TO 2690
 2630 LET d=a(n+4)
 2640 LET h$="schmal"
 2650 LET i$="tz, "
 2660 LET u=9
 2670 LET x=11000
 2680 GO TO 2740
 2690 IF u<>10 THEN GO TO 2720
 2700 IF i=1 THEN GO TO 2740
 2710 GO TO 2750
 2720 IF u<>12 THEN GO TO 2750
 2730 IF FN b(d)>6 THEN GO TO 2750
 2740 LET i=6
 2750 RETURN 
 2760 IF u>=11 THEN GO TO 2810
 2770 LET u=11
 2780 LET h$="a pair"
 2790 LET i$=" of "
 2800 RETURN 
 2810 IF u<>11 THEN GO TO 2910
 2820 IF b(z)<>b(z-1) THEN GO TO 2870
 2830 LET h$="three"
 2840 LET i$=" "
 2850 LET u=13
 2860 RETURN 
 2870 LET h$="two p"
 2880 LET i$="air, "
 2890 LET u=12
 2900 RETURN 
 2910 IF u<>12 THEN GO TO 2960
 2920 LET u=16
 2930 LET h$="full h"
 2940 LET i$="ouse, "
 2950 RETURN 
 2960 IF b(z)<>b(z-1) THEN GO TO 3010
 2970 LET u=17
 2980 LET h$="four"
 2990 LET i$=" "
 3000 RETURN 
 3010 LET u=16
 3020 LET h$="full h"
 3030 LET i$="ouse, "
 3040 RETURN 
 3050 LET g=0
 3060 PRINT "What is your bet ?"
 3065 PRINT "(You have) ";s-g
 3070 INPUT t
 3075 BEEP .05,30
 3080 IF t-INT (t)=0 THEN GO TO 3140
 3090 IF k<>0 THEN GO TO 3120
 3100 IF g<>0 THEN GO TO 3120
 3110 IF t=.5 THEN GO TO 3410
 3120 PRINT "No small change please."
 3130 GO TO 3060
 3140 IF s-g-t>=0 THEN GO TO 3170
 3150 GO SUB 3830
 3160 GO TO 3060
 3170 IF t<>0 THEN GO TO 3200
 3180 LET i=3
 3190 GO TO 3380
 3200 IF g+t>=k THEN GO TO 3230
 3210 PRINT "If you can't see my bet,        then fold"
 3220 GO TO 3060
 3230 LET g=g+t
 3240 IF g=k THEN GO TO 3380
 3250 IF z<>1 THEN GO TO 3420
 3260 IF g>5 THEN GO TO 3300
 3270 IF z>=2 THEN GO TO 3350
 3280 LET v=5
 3290 GO TO 3420
 3300 IF z=1 THEN GO TO 3320
 3310 IF t<=25 THEN GO TO 3350
 3320 LET i=4
 3330 PRINT "I fold"
 3340 RETURN 
 3350 IF z=2 THEN GO TO 3430
 3360 PRINT "I'll see you"
 3370 LET k=g
 3380 LET s=s-g
 3390 LET c=c-k
 3400 LET p=p+g+k
 3410 RETURN 
 3420 IF g>3*z THEN GO TO 3350
 3430 LET v=g-k+FN a(0)
 3440 GO SUB 3480
 3450 PRINT "I'll see you and raise you ";v
 3460 LET k=g+v
 3470 GO TO 3060
 3480 IF c-g-v>=0 THEN GO TO 3660
 3490 IF g<>0 THEN GO TO 3520
 3500 LET v=c
 3510 RETURN 
 3520 IF c-g>=0 THEN GO TO 3360
 3530 IF o/2<>INT (o/2) THEN GO TO 3600
 3540 PRINT "Would you like to buy back your watch for $50 ?"
 3550 INPUT j$
 3560 IF j$="n" THEN GO TO 3600
 3570 LET c=c+50
 3580 LET o=o/2
 3590 RETURN 
 3600 IF o/3<>INT (o/3) THEN GO TO 3670
 3610 PRINT "Would you like to buy back your tie for $50 ?"
 3620 INPUT j$
 3630 IF j$="n" THEN GO TO 3670
 3640 LET c=c+50
 3650 LET o=o/3
 3660 RETURN 
 3670 PRINT "I'm busted. Congratulations"
 3680 GO TO 4100
 3690 PRINT h$;i$;
 3700 IF h$<>"a flus" THEN GO TO 3750
 3710 LET k=INT (k/100)
 3720 GO SUB 2080
 3730 PRINT 
 3740 RETURN 
 3750 LET k=FN b(k)
 3760 GO SUB 1960
 3770 IF h$="schmal" THEN GO TO 3790
 3780 IF h$<>"straig" THEN GO TO 3810
 3790 PRINT " high"
 3800 RETURN 
 3810 PRINT "s"
 3820 RETURN 
 3830 PRINT 
 3840 PRINT "You can't bet what you haven't  got."
 3850 IF o/2=INT (o/2) THEN GO TO 3970
 3860 PRINT "Would you like to sell your     watch ?"
 3870 INPUT j$
 3880 IF j$="n" THEN GO TO 3970
 3890 IF FN a(o)>=7 THEN GO TO 3930
 3900 PRINT "I'll give you $75 for it."
 3910 LET s=s+75
 3920 GO TO 3950
 3930 PRINT "That's a pretty crummy watch -  I'll give you $25"
 3940 LET s=s+25
 3950 LET o=o*2
 3960 RETURN 
 3970 IF o/3=INT (o/3) THEN GO TO 4090
 3980 PRINT "Will you part with that diamond tie tack ?"
 3990 INPUT j$
 4000 IF j$="n" THEN GO TO 4080
 4010 IF FN a(0)>=6 THEN GO TO 4050
 4020 PRINT "You are now $100 richer"
 4030 LET s=s+100
 4040 GO TO 4070
 4050 PRINT "It's paste. $25"
 4060 LET s=s+25
 4070 LET o=o*3
 4080 RETURN 
 4090 PRINT "Your wad is shot. So long sucker": FOR n=1 TO 100: NEXT n
 4100 PRINT ; FLASH 1;" Would you like to play again ? "
 4110 IF INKEY$="y" THEN RUN 
 4120 IF INKEY$="n" THEN STOP 
 4130 GO TO 4110
 9000 FOR n=1 TO 13: READ a$
 9010 FOR m=0 TO 7: READ any
 9020 POKE USR a$+m,any
 9030 NEXT m: NEXT n
 9040 DATA "a",24,60,126,255,255,126,60,24
 9050 DATA "b",102,255,255,255,255,126,60,24
 9060 DATA "c",24,60,126,255,255,255,126,24
 9070 DATA "d",60,60,219,255,255,219,24,24
 9080 DATA "e",128,192,224,240,248,252,254,255
 9090 DATA "f",1,3,7,15,31,63,127,255
 9100 DATA "g",255,127,63,31,15,7,3,1
 9110 DATA "h",255,254,252,248,240,224,192,128
 9120 DATA "i",128,224,248,252,252,254,254,255
 9130 DATA "j",1,7,31,63,63,127,127,255
 9140 DATA "k",255,254,254,252,252,248,224,128
 9150 DATA "l",255,127,127,63,63,31,7,1
 9160 DATA "m",255,254,252,248,248,252,254,255
 9170 RETURN 
 9998 CLEAR : SAVE "Poker" LINE 1: BEEP .4,15
 9999 VERIFY ""

People

No people associated with this content.

Scroll to Top