Five-card draw poker against the computer (“WELCOME AT MY POKERTABLE”). You are dealt five cards drawn as graphics, choose which to change by number, and then bet against the computer, which can see, raise or fold. Each deal costs $5, the maximum opening bet is $25, and after that you must double or see. The game ends when one side runs out of money.
The title screen reads “PROGRAM OF HANS MEIER, S.AFRICA, ADAPTED BY WERNER KAELIN, APRIL 1984”. The program is saved as “CARDS”. It is on CATS Library Tape 1 of the Capital Area Timex Sinclair Users Group, and on the CATS library disks for the Zebra disk drive; both copies list the same. It is a different program from the SINCUS Poker.
Program Analysis
Small numbers are held in variables (U, D, E, F and so on) to save memory, and RUN 2000 at line 20 sets up the table and deck. The 52-card deck is a string Z$ that is shuffled by cutting at a random point; dealt cards are taken out of X$ two characters at a time. The card faces use user-defined graphics A–L.
Source Code
20 RUN 2000
50 GO SUB 3500
70 LET WL=Q: LET BTG=N
80 LET C$="": RANDOMIZE
90 LET R=INT (RND*52)*D+U
100 LET X$=Z$(R TO )+Z$( TO R-U): GO SUB 3600
130 FOR L=U TO 18
140 LET R=INT (RND*(LEN X$/D))*D+U
150 LET C$=C$+X$(R TO R+U)
160 LET X$=X$( TO R-U)+X$(R+D TO ): NEXT L: RETURN
200 LET R=U
220 FOR L=U TO 7 STEP D
230 IF CODE K$(L)<CODE K$(L+D) THEN GO SUB 270
240 NEXT L
250 IF R=N THEN GO TO 200
260 RETURN
270 LET E$=K$(L TO L+U)
280 LET K$(L TO L+U)=K$(L+D TO L+E)
290 LET K$(L+D TO L+E)=E$
300 LET R=N: RETURN
320 FOR L=U TO 9 STEP D
330 IF K$(L)="N" THEN LET K$(L)="A"
340 NEXT L: RETURN
430 FOR Z=E TO 13 STEP 10
440 FOR H=E TO 23 STEP Q
450 PAPER 4: INK 0: OVER 1: PRINT AT Z-U,H;"_____";AT Z,H;"e f";AT Z+U,H;"e f";AT Z+D,H;"e f";AT Z+E,H;"e f";AT Z+F,H;"e f";AT Z+Q,H;"e f";AT Z+6,H;"ggggg"
460 PAPER 7: INK 1: PRINT AT Z,H;" .. .. ";AT Z+U,H;" '.''.' ";AT Z+D,H;" : :'.: ";AT Z+E,H;" :'.: : ";AT Z+F,H;" .'..'. ";AT Z+Q,H;" '' '' "
470 BEEP .02,H: NEXT H: NEXT Z
480 OVER 0: LET Z=10: RETURN
490 FOR H=F TO 24 STEP Q
492 PAPER 7: LET A=D*INT (VAL K$(D)/D)
496 FOR I=U TO 6: INK A: IF (I=E OR I=F) AND K$(U)>"J" THEN INK D-A
500 PRINT AT Z+I,H;A$((CODE K$(U)-64)+(VAL K$(D)*13),I)
510 NEXT I: BEEP .005,5
520 LET K$=K$(3 TO )
530 NEXT H: LET Z=10: PAPER 4: INK 0: RETURN
540 LET V=CODE K$-36
560 IF K$(U)=K$(E) AND K$(U)=K$(Q) AND K$(7)=K$(9) OR K$(U)=K$(E) AND K$(Q)=K$(7) AND K$(Q)=K$(9) THEN GO TO 810
570 IF K$(U)=K$(E) AND K$(U)=K$(Q) AND K$(U)=K$(7) OR K$(E)=K$(Q) AND K$(E)=K$(7) AND K$(E)=K$(9) THEN GO TO 860
580 IF K$(U)=K$(E) AND K$(U)=K$(Q) OR K$(E)=K$(Q) AND K$(E)=K$(7) OR K$(Q)=K$(7) AND K$(5)=K$(9) THEN GO TO 760
590 IF K$(U)=K$(E) AND K$(Q)=K$(7) OR K$(U)=K$(E) AND K$(7)=K$(9) OR K$(E)=K$(Q) AND K$(7)=K$(9) THEN GO TO 710
600 IF K$(U)=K$(E) OR K$(E)=K$(Q) OR K$(Q)=K$(7) OR K$(7)=K$(9) THEN GO TO 660
610 IF CODE K$(U)=CODE K$(E)+U AND CODE K$(E)=CODE K$(Q)+U AND CODE K$(Q)=CODE K$(7)+U AND CODE K$(7)=CODE K$(9)+U THEN LET V=164+CODE K$
620 IF CODE K$(D)=CODE K$(F) AND CODE K$(F)=CODE K$(6) AND CODE K$(6)=CODE K$(8) AND CODE K$(8)=CODE K$(Z) THEN LET V=214+CODE K$
630 IF K$(D)=K$(F) AND K$(F)=K$(6) AND K$(6)=K$(8) AND K$(8)=K$(Z) AND CODE K$(U)=CODE K$(E)+U AND CODE K$(E)=CODE K$(Q)+U AND CODE K$(Q)=CODE K$(7)+U AND CODE K$(7)=CODE K$(9)+U THEN LET V=364+CODE K$
640 IF K$(D)=K$(F) AND K$(F)=K$(6) AND K$(6)=K$(8) AND K$(8)=K$(Z) AND CODE K$=CODE K$(E)+U AND CODE K$(E)=CODE K$(Q)+U AND CODE K$(Q)=CODE K$(7)+U AND CODE K$(7)=CODE K$(9)+U AND CODE K$=78 THEN LET V=414+CODE K$
650 RETURN
660 FOR L=U TO 7 STEP D
670 IF K$(L)=K$(L+D) THEN GO TO 690
680 NEXT L
690 LET V=14+CODE K$(L)
700 RETURN
710 FOR L=U TO E STEP D
720 IF K$(L)=K$(L+D) THEN GO TO 740
730 NEXT L
740 LET V=64+CODE K$(L)
750 RETURN
760 FOR L=U TO Q STEP D
770 IF K$(L)=K$(L+D) THEN GO TO 790
780 NEXT L
790 LET V=114+CODE K$(L)
800 RETURN
810 FOR L=U TO Q STEP F
820 IF K$(L)=K$(L+D) AND K$(L)=K$(L+F) THEN GO TO 840
830 NEXT L
840 LET V=264+CODE K$(L)
850 RETURN
860 FOR L=U TO E STEP D
870 IF K$(L)=K$(L+D) THEN LET V=314+CODE K$(L)
880 NEXT L
890 RETURN
900 LET O$=K$
920 LET MT=N
925 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$(D)=K$(F) AND K$(D)=K$(6) AND K$(D)=K$(8) OR K$(D)=K$(F) AND K$(D)=K$(6) AND K$(D)=K$(Z) OR K$(D)=K$(F) AND K$(D)=K$(8) AND K$(D)=K$(Z) OR K$(F)=K$(6) AND K$(F)=K$(8) AND K$(F)=K$(Z) THEN GO TO 1420
970 IF K$(D)=K$(F) AND K$(D)=K$(6) OR K$(D)=K$(F) AND K$(D)=K$(8) OR K$(D)=K$(F) AND K$(D)=K$(8) OR K$(D)=K$(F) AND K$(D)=K$(Z) OR K$(D)=K$(6) AND K$(D)=K$(8) OR K$(D)=K$(F) AND K$(D)=K$(Z) OR K$(D)=K$(6) AND K$(D)=K$(Z) OR K$(F)=K$(6) AND K$(F)=K$(8) OR K$(F)=K$(8) AND K$(F)=K$(Z) OR K$(6)=K$(8) AND K$(6)=K$(Z) OR K$(6)=K$(F) AND K$(6)=K$(Z) THEN GO TO 1020
980 IF CODE K$(U)=CODE K$(E)+U AND CODE K$(E)=CODE K$(Q)+U OR CODE K$(E)=CODE K$(Q)+U AND CODE K$(Q)=CODE K$(7)+U OR CODE K$(Q)=CODE K$(7)+U AND CODE K$(7)=CODE K$(9)+U THEN GO TO 1110
990 LET K$(E TO )=C$( TO 8)
1000 LET T=F
1005 LET MT=F
1010 RETURN
1020 IF K$(D)=K$(F) AND K$(D)=K$(6) OR K$(D)=K$(F) AND K$(D)=K$(8) OR K$(D)=K$(F) AND K$(D)=K$(Z) OR K$(D)=K$(6) AND K$(D)=K$(Z) OR K$(D)=K$(6) AND K$(D)=K$(8) OR K$(D)=K$(Z) THEN LET G$=K$(D)
1030 IF K$(F)=K$(6) AND K$(F)=K$(8) OR K$(F)=K$(6) AND K$(F)=K$(Z) OR K$(F)=K$(8) AND K$(F)=K$(Z) THEN LET G$=K$(F)
1040 IF K$(6)=K$(8) AND K$(6)=K$(Z) OR K$(6)=K$(8) AND K$(6)=K$(Z) THEN LET G$=K$(6)
1050 FOR L=D TO Z STEP D
1060 IF K$(L)=G$ THEN GO TO 1080
1065 LET K$(L-U TO L)=C$( TO D)
1070 LET C$=C$(E TO )
1075 LET MT=MT+1
1080 NEXT L
1090 LET T=0
1100 RETURN
1110 IF CODE K$=CODE K$(E)+U AND CODE K$(E)=CODE K$(Q)+U AND CODE K$(Q)=CODE K$(7)+U OR CODE K$(E)=CODE K$(Q)+U AND CODE K$(Q)=CODE K$(7)+U AND CODE K$(7)=CODE K$(9)+U THEN GO TO 1500
1120 IF CODE K$=CODE K$(E)+U THEN LET O$(7 TO Z)=C$( TO F)
1130 IF CODE K$(E)=CODE K$(Q)+U AND CODE K$(Q)=CODE K$(7)+U THEN LET O$(9 TO Z)=C$(E TO F)
1140 IF CODE K$(E)=CODE K$(Q)+U AND CODE K$(Q)=CODE K$(7)+U THEN LET O$( TO D)=C$( TO D)
1150 IF CODE K$(7)=CODE K$(9)+U THEN LET O$( TO F)=C$( TO F)
1160 LET T=D
1165 LET MT=D
1170 LET K$=O$
1180 RETURN
1190 IF V>150 THEN GO TO 1260
1200 IF K$(U)=K$(E) AND K$(Q)=K$(7) THEN LET O$(9 TO )=C$( TO D)
1210 IF K$(U)=K$(E) AND K$(7)=K$(9) THEN LET O$(Q TO 6)=C$( TO D)
1220 IF K$(E)=K$(Q) AND K$(7)=K$(9) THEN LET O$( TO D)=C$( TO D)
1230 LET T=U
1235 LET MT=U
1240 LET K$=O$
1250 RETURN
1260 IF K$(U)=K$(E) AND K$(U)=K$(Q) THEN LET O$(7 TO )=C$( TO F)
1270 IF K$(E)=K$(Q) AND K$(E)=K$(7) THEN LET O$( TO D)=C$( TO D)
1280 IF K$(E)=K$(Q) AND K$(E)=K$(7) THEN LET O$(9 TO )=C$(E TO F)
1290 IF K$(Q)=K$(7) AND K$(Q)=K$(9) THEN LET O$( TO F)=C$( TO F)
1300 LET T=D
1305 LET MT=D
1310 LET K$=O$
1320 RETURN
1330 IF K$(U)=K$(E) THEN LET O$(Q TO )=C$( TO 6)
1340 IF K$(E)=K$(Q) THEN LET O$( TO D)=C$( TO D)
1350 IF K$(E)=K$(Q) THEN LET O$(7 TO Z)=C$(E TO 6)
1360 IF K$(Q)=K$(7) THEN LET O$( TO F)=C$( TO F)
1370 IF K$(Q)=K$(7) THEN LET O$(9 TO )=C$(Q TO 6)
1380 IF K$(7)=K$(9) THEN LET O$( TO 6)=C$( TO 6)
1390 LET T=E
1395 LET MT=E
1400 LET K$=O$
1410 RETURN
1420 IF K$(D)=K$(F) OR K$(D)=K$(6) THEN LET V$=K$(D)
1430 IF K$(D)<>K$(F) AND K$(F)=K$(6) THEN LET V$=K$(F)
1440 FOR L=D TO Z STEP D
1450 IF K$(L)=V$ THEN GO TO 1470
1455 LET K$(L-U TO L)=C$( TO D)
1460 LET C$=C$(E TO )
1465 LET MT=MT+U
1470 NEXT L
1480 LET T=N
1490 RETURN
1500 IF CODE K$=CODE K$(E)+U AND CODE K$(E)=CODE K$(Q)+U AND CODE K$(Q)=CODE K$(7)+U THEN LET O$(9 TO )=C$( TO D)
1510 IF CODE K$(E)=CODE K$(Q)+U AND CODE K$(Q)=CODE K$(7)+U AND CODE K$(7)=CODE K$(9)+U THEN LET O$( TO D)=C$( TO D)
1520 LET K$=O$
1530 LET T=U
1535 LET MT=U
1540 RETURN
1560 LET C=N
1570 IF MV>200 THEN LET C=MV/50: GO TO 1680
1590 LET X=RND
1600 IF X>.9 THEN LET C=8: GO TO 1680
1620 IF X>.5 OR BTG<=Q THEN LET C=D: GO TO 1680
1640 LET Y=Y+BTG: LET WL=Q: GO TO 3190
1680 FOR A=U TO INT C
1690 PRINT AT Z,U;Q$;AT Z,F;"I SEE YOU AND RAISE $";BTG
1692 LET WL=WL+D*BTG: GO SUB 1960: GO SUB 1940
1700 PRINT AT Z,U;Q$;AT Z,F;"ENTER YOUR BET";AT O,F;"<S>EE, <R>AISE OR <Q>UIT"
1705 LET T$=INKEY$
1710 IF T$="S" OR T$="R" OR T$="Q" THEN GO TO 1730
1720 GO TO 1705
1730 IF T$="Q" OR Y>BTG THEN LET I=BTG+BTG*(T$="R")-BTG*(T$="Q")
1740 PRINT AT Z,U;Q$;AT O,U;Q$
1750 LET WL=WL+I-BTG
1760 IF Y<I THEN GO SUB 1930: GO TO 1700
1770 LET Y=Y-I: GO SUB 1950
1790 IF I=N THEN GO TO 3150
1800 IF I=BTG THEN GO TO 1880
1810 PRINT AT Z,F;"YOU SEE ME AND RAISE...": GO SUB 1940
1820 GO SUB 1940
1830 IF MV<100 AND A>E AND RND>=.6 THEN GO TO 3170
1840 NEXT A
1850 GO SUB 1940
1860 PRINT AT Z,U;Q$;AT O,U;Q$;AT O,F;"I SEE YOU...."
1870 GO TO 1950: RETURN
1880 PRINT AT Z,U;Q$;AT Z,F;"SO YOU SEE ME...."
1890 RETURN
1910 LET V$=("A HIGH CARD" AND J<50)+("A PAIR" AND J>50 AND J<99)+("TWO PAIRS" AND J>100 AND J<150)+("THREES" AND J>149 AND J<200)+("A STRAIGHT" AND J>199 AND J<250)+("A FLUSH" AND J>249 AND J<300)+("A FULL HOUSE" AND J>299 AND J<350)+("FOUR OF A KIND" AND J>349 AND J<400)+("A STAIGHT FLUSH" AND J>399 AND J<450)+("A ROYAL FLUSH" AND J>449)
1920 LET PP=(22-LEN V$)/D: RETURN
1930 PRINT AT Z,U;Q$;AT Z,E;"YOU MUST SEE ME OR QUIT...": PAUSE 100
1940 PAUSE 120: RETURN
1950 LET WL=WL+BTG
1970 PAPER 1: INK 7: BRIGHT 1: PRINT AT 20,1;" YOU OWN $";Y;" ";TAB 18-LEN STR$ WL;" TOTAL BET $";WL;" "
1980 BRIGHT 0: PAPER 4: INK 0: RETURN
2010 LET Z$="B0C0D0E0F0G0H0I0J0K0L0M0N0B1C1D1E1F1G1H1I1J1K1L1M1N1B2C2D2E2F2G2H2I2J2K2L2M2N2B3C3D3E3F3G3H3I3J3K3L3M3N3"
2020 LET Q$="e f": LET N$="01234"
2030 LET N=0: LET U=1: LET Z=10
2040 LET D=2: LET E=3: LET F=4
2050 LET Q=5: LET H=N: LET O=11
2060 DIM M$(D,Z): DIM Y$(D,Z)
2062 BORDER 6: PAPER 4: INK 0: FLASH 0: BRIGHT 0: OVER 0: INVERSE 0: CLS
2064 LET C$=" "
2066 POKE 23658,8: GO SUB 3700
2070 PAPER 6: INK 2: BRIGHT 1: FOR I=9 TO 12: PRINT AT I,8;C$: BEEP .02,I: NEXT I
2074 PRINT AT Z,9;"WELCOME AT MY";AT O,Z;" POKERTABLE "
2080 BRIGHT 1: PAPER 6: INK 0
2090 INVERSE 1: PRINT AT 14,U; "PROGRAM OF HANS MEIER,S.AFRICA";AT 15,U;" ADAPTED BY ";AT 16,U;" WERNER KAELIN, POTOMAC ";AT 17,U;" APRIL 1984 ": INVERSE 0: BRIGHT 0
2100 GO SUB 3600: GO SUB 4000
2110 DIM A$(52,6,3)
2120 GO SUB 3600
2130 LET I=19: LET J=U: LET B$=" NEED INSTRUCTIONS? (Y/N) ": GO SUB 3342
2140 IF I$="Y" THEN GO SUB 3300
2144 IF I$=" " AND A$(1,1)="A " THEN GO TO 2150
2148 IF I$="N" OR I$=" " THEN GO SUB 5000
2150 LET Y=250
2200 GO SUB 50
2230 LET Y=Y-Q: GO SUB 1960: GO SUB 430
2240 FOR L=U TO 9 STEP D
2250 LET M$(U,L TO L+U)=C$( TO D)
2260 LET Y$(U,L TO L+U)=C$(E TO F)
2270 LET C$=C$(Q TO ): NEXT L
2280 LET K$=Y$(U): GO SUB 320
2290 LET Y$(D)=K$
2300 LET Z=D: GO SUB 490
2370 OVER 1: PRINT AT D,Q;"1 2 3 4 5": OVER 0
2380 PRINT AT Z,E;"PRESS CARD NO. TO CHANGE";AT O,E;"THEN <SPACE> TO CONTINUE"
2390 LET Z=E: LET O$="12345"
2400 FOR L=U TO F
2410 LET T$=INKEY$
2415 IF T$="0" THEN GO TO 2510
2420 IF T$="P" OR T$=" " THEN GO TO 2510
2430 IF T$<"1" OR T$>"5" THEN GO TO 2410
2435 LET T=VAL T$
2440 IF O$(T)<>T$ THEN GO TO 2410
2460 LET H=Q*T-U
2465 PAPER 7: INK 1: PRINT AT Z,H;".. ..";AT Z+1,H;"'.''.'";AT Z+2,H;": :'.:";AT Z+3,H;":'.: :";AT Z+4,H;".'..'.";AT Z+5,H;"'' ''"
2470 LET O$(T)=" "
2475 LET T=D*T-U
2480 LET Y$(1,T TO T+1)=C$( TO 2)
2490 LET C$=C$(3 TO )
2500 NEXT L
2510 LET Z=10
2512 PAPER 4: INK 0: OVER 1: PRINT AT D,Q;"1 2 3 4 5": OVER 0
2514 PRINT AT Z,U;Q$;AT O,U;Q$
2516 IF T$="0" THEN GO TO 3150
2518 PRINT AT Z,F;"HERE "+("ARE " AND L>D)+("IS " AND L<E);N$(L);" NEW CARD"+("S" AND L>D)
2520 LET K$=Y$(U): GO SUB 200
2530 LET Y$(U)=K$: GO SUB 320
2540 LET Z=D: GO SUB 490
2550 PRINT AT Z,F;"NOW IT'S MY TURN "
2560 LET K$=M$(U): GO SUB 200
2570 GO SUB 540: GO SUB 900
2580 LET C$=C$(D*T+1 TO )
2590 GO SUB 200: LET M$(U)=K$
2600 GO SUB 320: LET M$(D)=K$
2620 LET K$=Y$(U)
2630 GO SUB 540
2640 LET YV=V
2650 PRINT AT O,F;"DEALER TOOK ";N$(MT+U);" CARD"+("S" AND MT>U)
2670 LET WL=WL+Q: GO SUB 1960
2760 LET K$=M$(U)
2770 GO SUB 540
2780 LET MV=V
2790 PRINT AT Z,U;Q$
2800 BRIGHT 1: FLASH 1: PRINT AT Z,F;" PLACE YOUR BET ": INPUT BTG: FLASH 0: BRIGHT 0
2810 PRINT AT O,U;Q$
2840 IF BTG<=N THEN GO TO 3150
2860 PRINT AT Z,F;("YOU DO NOT HAVE THAT MUCH" AND BTG>Y)
2870 PRINT AT O,F;("LIMIT IS $25" AND BTG>25)
2880 IF BTG>Y OR BTG>25 THEN PAUSE 100: GO TO 2790
2900 LET Y=Y-BTG
2920 GO SUB 1950: GO SUB 1550
2930 LET K$=M$(D)
2940 LET Z=12
2950 GO SUB 490
2960 LET J=YV
2970 GO SUB 1900
2980 PRINT AT Z,U;Q$;AT O,U;Q$: OVER 1: PRINT AT D,PP;"YOU HAVE ";V$
2990 LET J=MV
3000 GO SUB 1900
3010 PRINT AT 12,PP;" I HAVE ";V$: OVER 0
3020 GO SUB 1940
3040 PRINT AT Z,U;Q$;AT O,U;Q$;AT Z,F;("ALLRIGHT...... YOU WIN" AND YV>MV)+("TOUGH LUCK...... I WIN" AND MV>YV)+("IT IS A DRAW..." AND MV=YV)
3060 IF YV>MV THEN LET Y=Y+WL
3070 IF YV=MV THEN LET Y=Y+INT (WL/D)
3080 GO SUB 1940
3090 GO SUB 1970
3100 GO SUB 1940
3110 IF Y>1000 THEN GO TO 3220
3120 IF Y<6 THEN GO TO 3270
3130 GO TO 2200
3150 PRINT AT Z,U;Q$;AT O,U;Q$;AT Z,F;"SO YOU'RE CHICKEN....?"
3160 GO TO 3080
3170 LET WL=WL-I
3180 LET Y=Y+I
3190 PRINT AT Z,U;Q$;AT O,F;"I AM OUT......"
3200 LET Y=Y+WL*D
3210 GO TO 3080
3220 GO SUB 3500: GO SUB 1970
3240 INVERSE 1: PRINT AT 6,5;"TAKE YOUR DOUGH AND...";AT Z,8;"I AM GOING HOME.";AT O,8;"BYE-BYE FOR NOW.": INVERSE 0
3250 GO SUB 3340: GO TO 2150
3270 GO SUB 3500: GO SUB 3600
3280 PRINT AT 7,7;"YOU ARE OUT OF CASH";AT 9,Z;"AND NO MORE ";AT 13,E;"THANKS AND GET MORE MONEY"
3290 GO SUB 3340: GO TO 2150
3300 PAPER 4: INK 0: CLS
3305 PRINT AT U,U;"$$$$$$$$$$$ POKER $$$$$$$$$$$$"
3310 PRINT AT E,E;"YOU PLAY POKER AGAINST ME,";TAB D;"THE COMPUTER."
3320 PRINT '" YOU WILL BE DEALT WITH FIVE CARDS AND THEN ASKED WHICH ONES YOU WISH TO SWAP. YOU MAY CHANGE UP TO FOUR CARDS."
3330 PRINT '" ON EACH DEAL YOU PAY 5$. THIS IS YOUR STARTING STAKE."
3335 PRINT '" THE MAXIMUM INITIAL BET IS $25. THEREAFTER YOU MUST ALWAYS DOUBLE OR SEE. ENTER <0> TO THROW IN YOUR CARDS."
3338 GO SUB 3600: GO SUB 5000
3340 LET B$=" PRESS <SPACE> TO START "
3341 LET I=20: LET J=U
3342 PAPER 1: INK 6: BRIGHT 1
3344 PRINT AT I,J;" ";B$;" "
3346 LET B$=B$(D TO )+B$(U)
3348 BEEP .06,CODE B$(2)-60
3350 LET I$=INKEY$
3360 IF I$=" " OR I$="Y" OR I$="N" THEN GO TO 3450
3370 GO TO 3344
3470 PAPER 0
3480 PRINT AT I,J;Q$
3482 INK 0: PAPER 4: INVERSE 0: BRIGHT 0
3490 RETURN
3500 FOR I=U TO 10: PRINT AT I,U;Q$;AT 21-I,U;Q$
3510 BEEP .02,21-I: NEXT I
3520 PRINT AT Z,9;"WELCOME AT MY";AT O,Z;" POKERTABLE "
3530 RETURN
3600 PLOT 8,8: DRAW 239,0: DRAW 0,159: DRAW -239,0: DRAW 0,-159: RETURN
3700 LET A=-4: LET B=-4: LET I=-1
3710 FOR I=0 TO 43
3720 LET A=A+4: LET B=B+4
3740 PLOT A,B: DRAW 255-2*A,0: DRAW 0,175-2*B: DRAW -255+2*A,0: DRAW 0,-175+2*B: BEEP .02,A/5
3750 NEXT I
3760 PLOT 63,71: DRAW 129,0: DRAW 0,33: DRAW -129,0: DRAW 0,-33
3770 RETURN
4000 RESTORE : FOR A=USR "A" TO USR "G"+7
4010 READ UG: POKE A,UG: NEXT A
4020 RETURN
4100 DATA 0,8,28,62,127,127,42,8
4105 DATA 0,28,28,107,127,107,8,8
4110 DATA 0,8,28,62,127,62,28,8
4120 DATA 0,54,127,127,127,62,28,8
4140 DATA 128,128,128,128,128,128,128,128
4150 DATA 1,1,1,1,1,1,1,1
4160 DATA 255,0,0,0,0,0,0,0
4190 RETURN
4200 REM A B C D E F G H I J K L
4210 REM a b c d e f g h i j k l
5000 PAPER 7: BRIGHT 1
5010 FOR I=30 TO 0 STEP -2
5020 PRINT AT 0,I;" ";: GO SUB 5200: NEXT I
5030 LET I=1: GO SUB 6000
5040 FOR I=1 TO 20 STEP 2
5050 PRINT AT I,0;: GO SUB 5200: PRINT AT I+1,0;" ": NEXT I
5060 LET I=2: GO SUB 6000
5070 FOR I=0 TO 31 STEP 2
5080 PRINT AT 21,I;: GO SUB 5200: PRINT " ": NEXT I
5090 LET I=3: GO SUB 6000
5100 FOR I=20 TO 2 STEP -2
5110 PRINT AT I,31;: GO SUB 5200: PRINT AT I-1,31;" ": NEXT I
5120 LET I=4: GO SUB 6000
5130 PAPER 4: INK 0: BRIGHT 0: RETURN
5200 LET H=INT (4*RND): INK 2*INT (H/2): PRINT CHR$ (144+H);
5210 BEEP .04,12+4*H: RETURN
6000 REM "CARDS"
6030 LET J=13*(I-1)
6040 LET F$=("a" AND I=1)+("b" AND I=2)+("c" AND I=3)+("d" AND I=4)
6050 LET G$=" "+F$+" "
6060 LET H$=F$+" "+F$
6070 LET I$=F$+F$+F$
6080 LET J$=" "
6090 LET A$(J+1,1)="A "
6100 LET A$(J+1,2)=J$
6110 LET A$(J+1,3)=G$
6120 LET A$(J+1,4)=J$
6130 LET A$(J+1,5)=J$
6140 LET A$(J+1,6)=" A"
6150 LET A$(J+2,1)="2 "
6160 LET A$(J+2,2)=G$
6170 LET A$(J+2,3)=J$
6180 LET A$(J+2,4)=J$
6190 LET A$(J+2,5)=G$
6200 LET A$(J+2,6)=" 2"
6210 LET A$(J+3,1)="3 "
6220 LET A$(J+3,2)=G$
6230 LET A$(J+3,3)=G$
6240 LET A$(J+3,4)=J$
6250 LET A$(J+3,5)=G$
6260 LET A$(J+3,6)=" 3"
6270 LET A$(J+4,1)="4 "
6280 LET A$(J+4,2)=H$
6290 LET A$(J+4,3)=J$
6300 LET A$(J+4,4)=J$
6310 LET A$(J+4,5)=H$
6320 LET A$(J+4,6)=" 4"
6330 LET A$(J+5,1)="5 "
6340 LET A$(J+5,2)=H$
6350 LET A$(J+5,3)=G$
6360 LET A$(J+5,4)=J$
6370 LET A$(J+5,5)=H$
6380 LET A$(J+5,6)=" 5"
6390 LET A$(J+6,1)="6 "
6400 LET A$(J+6,2)=H$
6410 LET A$(J+6,3)=H$
6420 LET A$(J+6,4)=J$
6430 LET A$(J+6,5)=H$
6440 LET A$(J+6,6)=" 6"
6450 LET A$(J+7,1)="7 "
6460 LET A$(J+7,2)=H$
6470 LET A$(J+7,3)=H$
6480 LET A$(J+7,4)=G$
6490 LET A$(J+7,5)=H$
6500 LET A$(J+7,6)=" 7"
6510 LET A$(J+8,1)="8 "
6520 LET A$(J+8,2)=H$
6530 LET A$(J+8,3)=H$
6540 LET A$(J+8,4)=H$
6550 LET A$(J+8,5)=H$
6560 LET A$(J+8,6)=" 8"
6570 LET A$(J+9,1)="9 "
6580 LET A$(J+9,2)=H$
6590 LET A$(J+9,3)=H$
6600 LET A$(J+9,4)=I$
6610 LET A$(J+9,5)=H$
6620 LET A$(J+9,6)=" 9"
6630 LET A$(J+10,1)="10 "
6640 LET A$(J+10,2)=H$
6650 LET A$(J+10,3)=I$
6660 LET A$(J+10,4)=I$
6670 LET A$(J+10,5)=H$
6680 LET A$(J+10,6)=" 10"
6690 LET A$(J+11,1)="J "
6700 LET A$(J+11,2)=F$+" '::"
6710 LET A$(J+11,3)=" ...::"
6720 LET A$(J+11,4)="::''' "
6730 LET A$(J+11,5)="::. "+F$
6740 LET A$(J+11,6)=" J"
6750 LET A$(J+12,1)="Q "
6760 LET A$(J+12,2)=F$+" '::"
6770 LET A$(J+12,3)="':..:'"
6780 LET A$(J+12,4)=".:'':."
6790 LET A$(J+12,5)="::. "+F$
6800 LET A$(J+12,6)=" Q"
6810 LET A$(J+13,1)="K "
6820 LET A$(J+13,2)=F$+" ::'"
6830 LET A$(J+13,3)=":::' "
6840 LET A$(J+13,4)=" .:::"
6850 LET A$(J+13,5)=".:: "+F$
6860 LET A$(J+13,6)=" K"
6880 RETURN
9000 CLEAR : SAVE "POKER" LINE 2000Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.