Poker

This file is part of Miscellaneous Programs . Download the collection to get this file.
Date: 198x
Type: Program
Platform(s): TS 2068
Tags: Game

Play draw poker against the computer.

Content

Related Products

Related Articles

Related Content

Image Gallery

Poker

Source Code

    1 CLS : BORDER 6: PAPER 6: INK 0:
    3 GO SUB 11
    4 GO SUB 2040
    6 GO TO 29
   10 REM Shuffle Cards
   11 FOR a=USR "a" TO USR "k"+7
   12 READ user: POKE a,user
   13 NEXT a: RETURN 
   14 DATA 24,60,126,255,255,126,60,24
   15 DATA 24,60,90,255,255,90,24,60
   16 DATA 16,56,124,254,254,124,16,56
   17 DATA 68,238,254,254,254,124,56,16
   18 DATA 204,204,51,51,204,204,51,51
   19 DATA 0,NOT PI,NOT PI,7,15,12,24,24
   20 DATA 0,NOT PI,NOT PI,192,240,48,24,24
   21 DATA 24,24,12,15,7,NOT PI,NOT PI,0
   22 DATA 24,24,48,240,192,NOT PI,NOT PI,0
   23 DATA 0,NOT PI,NOT PI,255,255,NOT PI,NOT PI,0
   24 DATA 24,24,24,24,24,24,24,24
   27 REM a b c d e f g h i j k
   28 REM \a \b \c \d \e \f \g \h \i \j \k
   29 LET c$=""
   30 PRINT AT 20,NOT PI,,"Stand by please",,
   40 GO SUB 2020
   50 RANDOMIZE 
   60 LET c$=""
   70 LET r=INT (RND*52)*2+1
   80 LET x$=a$(r TO )+a$( TO r-1)
   90 FOR l=1 TO 18
  100 LET r=INT (RND*(LEN x$/2))*2+1
  110 LET c$=c$+x$(r TO r+1)
  120 LET x$=x$( TO r-1)+x$(r+2 TO )
  130 NEXT l
  140 PRINT AT 21,NOT PI;"Ready Press Enter",
  150 INPUT r$
  160 CLS 
  170 LET a=0
  180 GO SUB 430
  190 RETURN 
  200 REM Sort Hi-Lo
  210 LET r=1
  220 FOR l=1 TO 7 STEP 2
  230 IF CODE k$(l)<CODE k$(l+2) THEN GO SUB 270
  240 NEXT l
  250 IF NOT r THEN GO TO 200
  260 RETURN 
  270 LET e$=k$(l TO l+1)
  280 LET k$(l TO l+1)=k$(l+2 TO l+3)
  290 LET k$(l+2 TO l+3)=e$
  300 LET r=0
  310 RETURN 
  320 REM Change Card Values
  330 FOR l=1 TO 9 STEP 2
  340 IF k$(l)="a" THEN LET k$(l)="T"
  350 IF k$(l)="b" THEN LET k$(l)="J"
  360 IF k$(l)="c" THEN LET k$(l)="Q"
  370 IF k$(l)="d" THEN LET k$(l)="K"
  380 IF k$(l)="e" THEN LET k$(l)="A"
  390 IF k$(l+1)="e" THEN LET k$(l+1)="\d"
  400 IF k$(l+1)="f" THEN LET k$(l+1)="\c"
  410 NEXT l
  420 RETURN 
  430 REM Card outline
  440 FOR b=1 TO 25 STEP 6
  450 PRINT AT a,b;"\f\j\j\j\g";AT a+1,b;"\k   \k";AT a+2,b;"\k   \k";AT a+3,b;"\k   \k";AT a+4,b;"\k   \k";AT a+5,b;"\k   \k";AT a+6,b;"\h\j\j\j\i"
  460 NEXT b
  470 RETURN 
  480 REM Card Values
  490 FOR a=2 TO 26 STEP 6
  500 PRINT AT b,a;k$(SGN PI);AT b+2,a+1;k$(2);AT b+4,a+2;k$(SGN PI)
  510 LET k$=k$(PI TO )
  520 NEXT a
  530 RETURN 
  540 REM Determine Hand Values
  550 LET v=CODE k$
  560 IF k$(SGN PI)=k$(PI) AND k$(SGN PI)=k$(5) AND k$(7)=k$(9) OR k$(SGN PI)=k$(PI) AND k$(5)=k$(7) AND k$(5)=k$(9) THEN GO TO 810
  570 IF k$(SGN PI)=k$(PI) AND k$(SGN PI)=k$(5) AND k$(SGN PI)=k$(7) OR k$(PI)=k$(5) AND k$(PI)=k$(7) AND k$(PI)=k$(9) THEN GO TO 860
  580 IF k$(SGN PI)=k$(PI) AND k$(SGN PI)=k$(5) OR k$(PI)=k$(5) AND k$(PI)=k$(7) OR k$(5)=k$(7) AND k$(5)=k$(9) THEN GO TO 760
  590 IF k$(SGN PI)=k$(PI) AND k$(5)=k$(7) OR k$(SGN PI)=k$(PI) AND k$(7)=k$(9) OR k$(PI)=k$(5) AND k$(7)=k$(9) THEN GO TO 710
  600 IF k$(SGN PI)=k$(PI) OR k$(PI)=k$(5) OR k$(5)=k$(7) OR k$(7)=k$(9) THEN GO TO 660
  610 IF CODE k$(SGN PI)=CODE k$(PI)+1 AND CODE k$(PI)=CODE k$(5)+1 AND CODE k$(5)=CODE k$(7)+1 AND CODE k$(7)=CODE k$(9)+1 THEN LET v=200+CODE k$
  620 IF CODE k$(2)=CODE k$(4) AND CODE k$(4)=CODE k$(6) AND CODE k$(6)=CODE k$(8) AND CODE k$(8)=CODE k$(10) THEN LET v=250+CODE k$
  630 IF k$(2)=k$(4) AND k$(4)=k$(6) AND k$(6)=k$(8) AND k$(8)=k$(10) AND CODE k$(SGN PI)=CODE k$(PI)+1 AND CODE k$(PI)=CODE k$(5)+1 AND CODE k$(5)=CODE k$(7)+1 AND CODE k$(7)=CODE k$(9)+1 THEN LET v=400+CODE k$
  640 IF k$(2)=k$(4) AND k$(4)=k$(6) AND k$(6)=k$(8) AND k$(8)=k$(10) AND CODE k$=CODE k$(PI)+1 AND CODE k$(PI)=CODE k$(5)+1 AND CODE k$(5)=CODE k$(7)+1 AND CODE k$(7)=CODE k$(9)+1 AND CODE k$=42 THEN LET v=450+CODE k$
  650 RETURN 
  660 FOR l=1 TO 7 STEP 2
  670 IF k$(l)=k$(l+2) THEN GO TO 690
  680 NEXT l
  690 LET v=50+CODE k$(l)
  700 RETURN 
  710 FOR l=1 TO 3 STEP 2
  720 IF k$(l)=k$(l+2) THEN GO TO 740
  730 NEXT l
  740 LET v=100+CODE k$(l)
  750 RETURN 
  760 FOR l=1 TO 5 STEP 2
  770 IF k$(l)=k$(l+2) THEN GO TO 790
  780 NEXT l
  790 LET v=150+CODE k$(l)
  800 RETURN 
  810 FOR l=1 TO 5 STEP 4
  820 IF k$(l)=k$(l+2) AND k$(l)=k$(l+4) THEN GO TO 840
  830 NEXT l
  840 LET v=300+CODE k$(l)
  850 RETURN 
  860 FOR l=1 TO 3 STEP 2
  870 IF k$(l)=k$(l+2) THEN LET v=350+CODE k$(l)
  880 NEXT l
  890 RETURN 
  900 REM Timex/Sinclair Decides on How many cards to draw
  910 LET o$=k$
  920 LET t=0
  930 IF v>200 THEN RETURN 
  940 IF v>100 THEN GO TO 1190
  950 IF v>50 THEN GO TO 1330
  960 IF k$(2)=k$(4) AND k$(2)=k$(6) AND k$(2)=k$(8) OR k$(2)=k$(4) AND k$(2)=k$(6) AND k$(2)=k$(10) OR k$(2)=k$(4) AND k$(2)=k$(8) AND k$(2)=k$(10) OR k$(4)=k$(6) AND k$(4)=k$(8) AND k$(4)=k$(10) THEN GO TO 1420
  970 IF k$(2)=k$(4) AND k$(2)=k$(6) OR k$(2)=k$(4) AND k$(2)=k$(8) OR k$(2)=k$(4) AND k$(2)=k$(10) OR k$(2)=k$(6) AND k$(2)=k$(8) OR k$(2)=k$(4) AND k$(2)=k$(10) OR k$(2)=k$(6) AND k$(2)=k$(10) OR k$(4)=k$(6) AND k$(4)=k$(8) OR k$(4)=k$(8) AND k$(4)=k$(10) OR k$(6)=k$(8) AND k$(6)=k$(10) OR k$(6)=k$(4) AND k$(6)=k$(10) THEN GO TO 1020
  980 IF CODE k$(SGN PI)=CODE k$(PI)+1 AND CODE k$(PI)=CODE k$(5)+1 OR CODE k$(PI)=CODE k$(5)+1 AND CODE k$(5)=CODE k$(7)+1 OR CODE k$(5)=CODE k$(7)+1 AND CODE k$(7)=CODE k$(9)+1 THEN GO TO 1110
  990 LET k$(PI TO )=c$( TO 8)
 1000 LET t=4
 1010 RETURN 
 1020 IF k$(2)=k$(4) AND k$(2)=k$(6) OR k$(2)=k$(4) AND k$(2)=k$(8) OR k$(2)=k$(4) AND k$(2)=k$(10) OR k$(2)=k$(6) AND k$(2)=k$(10) OR k$(2)=k$(6) AND k$(2)=k$(8) OR k$(2)=k$(10) THEN LET g$=k$(2)
 1030 IF k$(4)=k$(6) AND k$(4)=k$(8) OR k$(4)=k$(6) AND k$(4)=k$(10) OR k$(4)=k$(8) AND k$(4)=k$(10) THEN LET g$=k$(4)
 1040 IF k$(6)=k$(8) AND k$(6)=k$(10) OR k$(6)=k$(8) AND k$(6)=k$(10) THEN LET g$=k$(6)
 1050 FOR l=2 TO 10 STEP 2
 1060 IF k$(l)<>g$ THEN LET k$(l-1 TO l)=c$( TO 2)
 1070 LET c$=c$(PI TO )
 1080 NEXT l
 1090 LET t=2
 1100 RETURN 
 1110 IF CODE k$(SGN PI)=CODE k$(PI)+1 AND CODE k$(PI)=CODE k$(5)+1 AND CODE k$(5)=CODE k$(7)+1 OR CODE k$(PI)=CODE k$(5)+1 AND CODE k$(5)=CODE k$(7)+1 AND CODE k$(7)=CODE k$(9)+1 THEN GO TO 1500
 1120 IF CODE k$(SGN PI)=CODE k$(PI)+1 THEN LET o$(7 TO 10)=c$( TO 4)
 1130 IF CODE k$(PI)=CODE k$(5)+1 AND CODE k$(5)=CODE k$(7)+1 THEN LET o$(9 TO 10)=c$(PI TO 4)
 1140 IF CODE k$(PI)=CODE k$(5)+1 AND CODE k$(5)=CODE k$(7)+1 THEN LET o$( TO 2)=c$( TO 2)
 1150 IF CODE k$(7)=CODE k$(9)+1 THEN LET o$( TO 4)=c$( TO 4)
 1160 LET t=2
 1170 LET k$=o$
 1180 RETURN 
 1190 IF v>150 THEN GO TO 1260
 1200 IF k$(SGN PI)=k$(PI) AND k$(5)=k$(7) THEN LET o$(9 TO )=c$( TO 2)
 1210 IF k$(SGN PI)=k$(PI) AND k$(7)=k$(9) THEN LET o$(5 TO 6)=c$( TO 2)
 1220 IF k$(PI)=k$(5) AND k$(7)=k$(9) THEN LET o$( TO 2)=c$( TO 2)
 1230 LET t=1
 1240 LET k$=o$
 1250 RETURN 
 1260 IF k$(SGN PI)=k$(PI) AND k$(SGN PI)=k$(5) THEN LET o$(7 TO )=c$( TO 4)
 1270 IF k$(PI)=k$(5) AND k$(PI)=k$(7) THEN LET o$( TO 2)=c$( TO 2)
 1280 IF k$(PI)=k$(5) AND k$(PI)=k$(7) THEN LET o$(9 TO )=c$(PI TO 4)
 1290 IF k$(5)=k$(7) AND k$(5)=k$(9) THEN LET o$( TO 4)=c$( TO 4)
 1300 LET t=2
 1310 LET k$=o$
 1320 RETURN 
 1330 IF k$(SGN PI)=k$(PI) THEN LET o$(5 TO )=c$( TO 6)
 1340 IF k$(PI)=k$(5) THEN LET o$( TO 2)=c$( TO 2)
 1350 IF k$(PI)=k$(5) THEN LET o$(7 TO 10)=c$(PI TO 6)
 1360 IF k$(5)=k$(7) THEN LET o$( TO 4)=c$( TO 4)
 1370 IF k$(5)=k$(7) THEN LET o$(9 TO )=c$(5 TO 6)
 1380 IF k$(7)=k$(9) THEN LET o$( TO 6)=c$( TO 6)
 1390 LET t=3
 1400 LET k$=o$
 1410 RETURN 
 1420 IF k$(2)=k$(4) OR k$(2)=k$(6) THEN LET v$=k$(2)
 1430 IF k$(2)<>k$(4) AND k$(4)=k$(6) THEN LET v$=k$(4)
 1440 FOR l=2 TO 10 STEP 2
 1450 IF k$(l)<>v$ THEN LET k$(l-1 TO l)=c$( TO 2)
 1460 LET c$=c$(PI TO )
 1470 NEXT l
 1480 LET t=1
 1490 RETURN 
 1500 IF CODE k$(SGN PI)=CODE k$(PI)+1 AND CODE k$(PI)=CODE k$(5)+1 AND CODE k$(5)=CODE k$(7)+1 THEN LET o$(9 TO )=c$( TO 2)
 1510 IF CODE k$(PI)=CODE k$(5)+1 AND CODE k$(5)=CODE k$(7)+1 AND CODE k$(7)=CODE k$(9)+1 THEN LET o$( TO 2)=c$( TO 2)
 1520 LET k$=o$
 1530 LET t=1
 1540 RETURN 
 1550 REM Betting Routine
 1560 LET c=0
 1570 IF mv>200 THEN LET c=mv/50
 1580 IF mv>200 THEN GO TO 1680
 1590 LET x=RND
 1600 IF x>.9 THEN LET c=8
 1610 IF c=8 THEN GO TO 1680
 1620 IF x>.45 OR btg<3 THEN LET c=2
 1630 IF c=2 THEN GO TO 1680
 1640 LET y=y+btg
 1650 LET wl=5
 1660 GO SUB 1940
 1670 GO TO 3190
 1680 FOR l=1 TO c
 1690 PRINT AT 19,NOT PI;"I See you and raise you $";btg,
 1700 PRINT AT 21,NOT PI;"Enter your bet",,
 1710 GO SUB 2020
 1720 INPUT i
 1730 IF y<2*btg OR i=0 OR i=btg OR i=2*btg THEN GO TO 1760
 1750 GO TO 1720
 1760 LET wl=wl+i
 1770 LET y=y-i
 1780 IF y<btg THEN GO TO 1980
 1790 IF NOT i THEN GO TO 3150
 1800 IF i=btg THEN GO TO 1880
 1810 PRINT AT 19,NOT PI;"So you see me and raise me...",
 1820 GO SUB 1940
 1830 IF mv<100 AND l>3 AND RND>=.6 THEN GO TO 3170
 1840 NEXT l
 1850 GO SUB 1940
 1860 PRINT AT 19,NOT PI;"I see you....",,
 1870 RETURN 
 1880 PRINT AT 19,NOT PI;"So you see me....",
 1930 RETURN 
 1940 REM Delay Loop
 1950 FOR p=1 TO 20
 1960 NEXT p
 1970 RETURN 
 1980 GO SUB 1940
 1990 PRINT AT 19,NOT PI;"You will have to see me....",
 2000 GO SUB 1940
 2010 RETURN 
 2020 PRINT AT 21,18;"You have $";y
 2030 RETURN 
 2040 REM Start of Program
 2050 LET a$="2\b3\b4\b5\b6\b7\b8\b9\ba\bb\bc\bd\be\b2\a3\a4\a5\a6\a7\a8\a9\aa\ab\ac\ad\ae\a2e3e4e5e6e7e8e9eaebecedeee2f3f4f5f6f7f8f9fafbfcfdfef"
 2070 DIM m$(2,10)
 2080 DIM y$(2,10)
 2090 LET bt=0
 2100 LET y=250
 2110 PRINT AT 9,4;" Timex/Sinclair poker "
 2120 REM Instructions ?
 2130 PRINT AT 20,NOT PI;"Do you require details ?(y OR n)"
 2140 IF INKEY$<>"" THEN GO TO 2140
 2150 IF INKEY$="" THEN GO TO 2150
 2160 LET s$=INKEY$
 2170 IF s$="y" THEN GO SUB 3300
 2180 GO SUB 29
 2190 REM Deal hands
 2200 FOR l=1 TO 9 STEP 2
 2210 LET m$(1,l TO l+1)=c$( TO 2)
 2220 LET y$(1,l TO l+1)=c$(PI TO 4)
 2230 LET c$=c$(5 TO )
 2240 NEXT l
 2250 LET k$=y$(SGN PI)
 2260 GO SUB 200
 2270 LET y$(SGN PI)=k$
 2280 GO SUB 320
 2290 LET y$(2)=k$
 2300 REM Initial Stake
 2310 LET y=y-5
 2320 LET b=1
 2330 GO SUB 480
 2340 LET k$=m$(SGN PI)
 2350 REM Numbers under cards
 2360 PRINT AT 7,PI;"1     2     3     4     5"
 2370 GO SUB 200
 2380 REM Discard which cards ?
 2390 PRINT AT 19,NOT PI;"Swap which card?(ie. Press 2 ForNo. 2 Etc. and/or P to Pass )",
 2400 FOR l=1 TO 4
 2410 IF INKEY$<>"" THEN GO TO 2410
 2420 IF INKEY$="" THEN GO TO 2420
 2430 LET t$=INKEY$
 2440 IF t$="p" THEN GO TO 2510
 2450 IF t$<"1" OR t$>"5" THEN GO TO 2410
 2460 PRINT AT 7,VAL t$*6-3;"*"
 2470 LET t=VAL t$*2-1
 2480 LET y$(1,t TO t+1)=c$( TO 2)
 2490 LET c$=c$(PI TO )
 2500 NEXT l
 2510 PRINT AT 19,NOT PI,,,,TAB 10;" Dealing ",
 2520 LET k$=y$(SGN PI)
 2530 GO SUB 200
 2540 LET y$(SGN PI)=k$
 2550 GO SUB 320
 2560 LET y$(2)=k$
 2570 LET b=1
 2580 GO SUB 480
 2590 PRINT AT 7,NOT PI,,
 2600 PRINT AT 21,NOT PI;"Bet till now $5",,
 2610 GO SUB 2020
 2620 LET k$=y$(SGN PI)
 2630 GO SUB 540
 2640 LET yv=v
 2650 LET k$=m$(SGN PI)
 2660 GO SUB 540
 2670 GO SUB 900
 2680 PRINT AT 19,NOT PI,,,,AT 19,NOT PI;"Dealer Takes ";t;" card"+("s" AND t<>1)
 2690 LET m$(SGN PI)=k$
 2700 GO SUB 200
 2710 LET m$(SGN PI)=k$
 2720 GO SUB 320
 2730 LET m$(2)=k$
 2740 LET a=10
 2750 GO SUB 430
 2760 LET k$=m$(SGN PI)
 2770 GO SUB 540
 2780 LET mv=v
 2790 REM Betting Begins
 2800 REM PRINT AT 21,0;"Your Bet ?",,
 2810 GO SUB 2020
 2820 INPUT btg
 2830 LET btg=INT btg
 2840 IF NOT btg THEN GO TO 3150
 2850 IF btg>y OR btg>25 THEN PRINT AT 21,NOT PI,,
 2860 PRINT AT 21,NOT PI;("You do not have that much..." AND btg>y)+("Limit is $25" AND btg>25)
 2870 IF btg>y OR btg>25 THEN GO SUB 2020
 2880 IF btg>y OR btg>25 THEN GO TO 2820
 2890 IF btg=y OR y-btg<btg THEN LET s=1
 2900 LET y=y-btg
 2910 LET wl=btg+5
 2920 GO SUB 1550
 2930 LET k$=m$(2)
 2940 LET b=11
 2950 GO SUB 480
 2960 LET j=yv
 2970 GO SUB 1900
 2990 LET j=mv
 3000 GO SUB 1900
 3020 GO SUB 1940
 3030 REM Who Wins
 3040 PRINT AT 21,NOT PI,,AT 21,NOT PI;("Ok...,You Win" AND yv>mv)+("Tough Luck, I Win" AND mv>yv)+("It is a Draw..." AND mv=yv)
 3050 REM adjust money
 3060 IF yv>mv THEN LET y=y+wl*2
 3070 IF yv=mv THEN LET y=y+wl
 3080 GO SUB 2020
 3090 GO SUB 1940
 3100 GO SUB 1940
 3110 IF y>2000 THEN GO TO 3220
 3120 IF y<6 THEN GO TO 3270
 3130 GO TO 2180
 3140 REM various remarks
 3150 PRINT AT 19,NOT PI;"So Your Chicken..... ?",
 3160 GO TO 3080
 3170 LET wl=wl-i
 3180 LET y=y+i
 3190 PRINT AT 19,NOT PI;"I am out............",
 3200 LET y=y+wl*2
 3210 GO TO 3080
 3220 GO SUB 1940
 3230 GO SUB 1940
 3240 CLS 
 3250 PRINT AT 10,NOT PI;"Well That beats me.  I am going home. Bye-bye for now."
 3260 STOP 
 3270 CLS 
 3280 PRINT AT 10,NOT PI;"It appears you have no more cash thanks and bye-bye."
 3290 STOP 
 3300 CLS 
 3310 PRINT '"  This is a game of draw poker  played by you against the       Timex/sinclair."
 3320 PRINT '"  You will be dealt with five   cards, and then be asked which  ones you wish to discard. You   may discard a maximum of 4 cards"
 3330 PRINT '"  On each deal your total will  automatically be debited with   $5. This is your starting stake."
 3340 PRINT '"  The maximum initial bet is    $25. There after you must all-  ways double or see.  To throw in your cards enter a 0."
 3350 PRINT AT 20,2;"Good luck....."
 3355 PAUSE 300
 3360 RETURN 
 4000 SAVE "poker" LINE 1

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.

People

No people associated with this content.

Scroll to Top