1 REM +++++++++++++++++++++++++++++++++
2 REM ! Program .... POKER
3 REM ! Utg}va 82 06 26 (83 01 06)
4 REM ! id` ur amerik tidskrift
5 REM ! Ins{nt av Arvid Lundgren <855>
6 REM ! omarb av Sven Wickberg <1384>
7 REM ! Minne 16 Kbytes (n{tt)
9 REM +++++++++++++++++++++++++++++++++
15 REM sv}righeter (ibland) med "n{stan straight" U=10 ...82 06 26 SW
17 REM om minnet fullt:ta bort 'R]N'
20 ; CHR$(12%)TAB(13%)"P O K E R"
40 ; TAB(13%)"========="
50 ; : ; : ;
70 ; : ; " NU SKA VI SPELA POKER! "
80 ; : ; " DU F]R 200:- OCH JAG F]R 200:-"
100 ; : ; " OM DU L[GGER DIG, SATSA 0:-"
130 ; CUR(20%,10%)"(Tryck RETURN)";
140 GET W$
160 RANDOMIZE
170 \5%=RND*200% : REM Slumpa r}n
180 DIM A%(50%),B%(15%),H$=7%,J$=7%,K$=5%,I$=5%,W$=1%
200 DEFFNB(X%)=X%-100%*(X%/100%)
210 O%=0% : C%=200% : S%=200%
220 IF ]1%=1% THEN 240 : REM OAVGJORT
230 P%=0% : G%=0% : K%=0% : K1%=0%
240 ]1%=0% : ; : ;
250 IF C%<=5% THEN 3660
260 ; CHR$(12%);
270 ; 'DU HAR'S%TAB(20%)'JAG HAR'C% : ; : ; "INSATSEN [R FEM SP[NN! JAG DELAR!"
280 GOSUB 9000 : REM paus
290 IF S%>5% THEN 310
300 GOSUB 3950
310 P%=P%+10% : S%=S%-5% : C%=C%-5%
320 IF \5%=C% OR \5%=S% THEN 850 : REM R}n
330 FOR Z%=1% TO 10%
340 GOSUB 2060
350 NEXT Z%
360 ; CUR(1%,0%)SPACE$(800%)
370 ; CUR(2%,0%)"DINA KORT:" : GOSUB 9000
390 N%=1%
400 GOSUB 2180
410 N%=6% : I%=2%
420 GOSUB 2510
430 ;
440 IF I%<>6% THEN 530
450 IF RND<.8 THEN 470
460 X%=11100% : GOTO 510
470 IF RND<=.8 THEN 490
480 X%=11110% : GOTO 510
490 IF RND<=.9 THEN 520
500 X%=11111%
510 I%=7% : Z%=13% : GOTO 640
520 Z%=1% : GOTO 570
530 IF U%>=13% THEN 600
540 IF RND<=.8 THEN 560 ELSE 510
560 Z%=0%
570 K%=0%
580 ; "OKEY!" : Y%=0% : REM ...du satsar f|rst
590 GOTO 680
600 IF U%>=16% THEN 630
610 Z%=2%
620 IF RND<=.9 THEN 640
630 Z%=25%
640 V%=Z%+RND*20%
650 GOSUB 3550
660 ; "JAG \PPNAR MED"V% : Y%=9% : REM ...datorn satsar f|rst
670 K%=V%
680 GOSUB 3110
690 GOSUB 730
700 IF \5%=C% OR \5%=S% THEN 850 : REM R}n
710 GOTO 1030
730 IF I%<>3% THEN 970
740 ;
750 ; : ; "JAG VINNER!" : ;
760 C%=C%+P%
770 ; "NU HAR DU:"S%TAB(20%)'OCH JAG:'C%
780 ; : ; "VILL DU FORTS[TTA? (J/N) ";
790 GET W$
800 IF \5%=C% OR \5%=S% THEN 850 : REM R}n
810 IF W$="J" THEN 220
820 IF W$="N" THEN 4240
830 ; : ; "SVARA J ELLER N" : GOTO 780
850 REM ---- R ] N ----
860 ; CHR$(12%); : T2=1.3 : GOSUB 9010 : FOR \6%=1% TO 10% : OUT 6%,137%
870 T2=.3 : GOSUB 9010 : OUT 6%,0% : NEXT \6%
890 ; CUR(10%,12%)'H J [ L P !!' : T2=2 : GOSUB 9010 : ; CUR(10%,12%);SPACE$(12%) : GOSUB 9000
910 ; CUR(10%,13%)'VAD H[NDE?' : GOSUB 9000
920 ; CUR(12%,0%)'JO, VI BLEV \VERFALLNA OCH R]NADE!!!' : ; : ; : ; : ;
930 ; : FOR T%=1% TO 2000% : NEXT T% : ; 'VILL DU ATT VI SKA SPELA MER? (J/N) '; : GET W$
940 IF W$="J" THEN 160
950 IF W$="N" THEN 4240
960 ; "SVARA J ELLER N"; : GOTO 930
970 IF I%<>4% THEN 1020
980 ;
990 ; : ; "DU VINNER!" : ;
1000 S%=S%+P%
1010 GOTO 770
1020 RETURN
1025 REM ...k|p kort
1030 ;
1040 ; "NU K\PER VI!"
1050 ; "HUR M]NGA KORT VILL DU HA ";
1060 ONERRORGOTO 1070 : INPUT T% : GOTO 1080
1070 GOSUB 4260 : GOTO 1060
1080 IF T%=0% THEN 1240
1090 Z%=10%
1100 IF T%<4% THEN 1130
1110 ; "DU F]R INTE FLER [N TRE KORT!"
1120 GOTO 1060
1130 ; "VILKA NUMMER "
1140 FOR Q%=1% TO T%
1150 ONERRORGOTO 1160 : INPUT U% : IF U%<1% OR U%>5% THEN 1160 : GOTO 1170
1160 GOSUB 4260 : GOTO 1150
1170 GOSUB 2050
1180 NEXT Q%
1200 ; CHR$(12%)'DU HAR:'S%TAB(20%)'JAG HAR:'C% : ; : ; "DINA KORT: "
1210 GOSUB 9000
1220 N%=1%
1230 GOSUB 2180
1240 Z%=10%+T%
1250 FOR U%=6% TO 10%
1260 IF INT(X%/10^(U%-6%))<>10%*INT(X%/10^(U%-5%)) THEN 1280
1270 GOSUB 2050
1280 NEXT U%
1290 ;
1300 ; "JAG TAR"Z%-10%-T%" KORT";
1310 IF Z%=11%+T% THEN 1330
1320 ; "!"
1330 ;
1360 N%=6% : V%=I% : I%=1%
1370 GOSUB 2510
1380 B%=U% : M%=D%
1390 IF V%<>7% THEN 1420
1400 Z%=28%
1410 GOTO 1560
1420 IF V%<>6% THEN 1450
1430 Z%=1%
1440 GOTO 1560
1450 IF U%>=13% THEN 1500
1460 Z%=2%
1470 IF INT(10%*RND)<>6% THEN 1490
1480 Z%=19%
1490 GOTO 1560
1500 IF U%>=16% THEN 1550
1510 Z%=19%
1520 IF INT(10%*RND)<>8% THEN 1540
1530 Z%=11%
1540 GOTO 1560
1550 Z%=2%
1560 K%=0%
1570 IF Y%=0% 1670
1590 IF V%=7% THEN 1630
1600 IF I%<>6% THEN 1630
1620 GOTO 1740
1630 V%=Z%+10%*RND
1640 GOSUB 3550
1650 ; "JAG SATSAR"V%
1660 K%=V%
1670 GOSUB 3110
1680 GOSUB 730 : REM ... ngn lagt sig?
1700 REM ...visa resultat
1740 ; CHR$(12%)"NU SKA VI SE P] KORTEN! " : T2=2 : GOSUB 9010
1750 ; : ; 'DINA KORT:' : N%=1% : GOSUB 2180 : \%=20%
1760 J$=H$
1770 K$=I$
1780 ; CUR(2%,20%)"MINA KORT: " : GOSUB 9000
1790 N%=6%
1800 GOSUB 2180
1810 N%=1%
1820 GOSUB 2510
1840 T2=2 : GOSUB 9010
1850 ; : ; "DU HAR: ";
1860 K%=D%
1870 GOSUB 3810
1880 H$=J$
1890 I$=K$
1900 K%=M%
1910 ; "OCH JAG HAR: ";
1920 GOSUB 3810
1930 \%=0%
1940 IF B%>U% THEN 750
1950 IF U%>B% THEN 990
1960 REM ...on|dig? IF H$="EN FLUS" THEN 2020
1970 IF FNB(M%)FNB(D%) THEN 750
1990 ; "LIKA!!!"
2000 ; "INSATSEN P]"P%":- ST]R KVAR I POTTEN"
2010 ]1%=1% : GOTO 770
2020 REM ...on|dig? IF FNB(M%)>FNB(D%) THEN 750
2030 REM ...on|dig? IF FNB(D%)>FNB(M%) THEN 990
2040 REM ...on|dig? GOTO 1990
2050 Z%=Z%+1%
2060 A%(Z%)=100%*INT(4%*RND)+INT(13%*RND)
2090 IF Z%=1% THEN 2170
2100 FOR J%=1% TO Z%-1%
2110 IF A%(Z%)=A%(J%) THEN 2060
2120 NEXT J%
2130 IF Z%<=10% THEN 2170
2140 N%=A%(U%)
2150 A%(U%)=A%(Z%)
2160 A%(Z%)=N%
2170 RETURN
2180 \1%=3%
2190 FOR Z%=N% TO N%+4%
2200 \1%=\1%+1%
2210 ; CUR(\1%,\%)"* ";
2220 GOSUB 2290
2230 ; " I ";
2240 GOSUB 2410
2250 REM ??? IF Z%/2<>Z%/2% THEN 2260
2260 NEXT Z%
2270 \1%=0%
2280 RETURN
2290 K%=FNB(A%(Z%))
2300 IF K%=9% ; " KNEKT";
2320 IF K%=10% ; " DAM";
2340 IF K%=11% ; " KUNG";
2360 IF K%=12% ; " ESS";
2380 IF K%>=9% THEN 2400
2390 ; K%+2%;
2400 RETURN
2410 K%=A%(Z%)/100%
2420 IF K%=0% ; "RUTER"
2440 IF K%=1% ; "KL\VER"
2460 IF K%=2% ; "HJ[RTER"
2480 IF K%=3% ; "SPADER"
2500 RETURN
2510 U%=0%
2520 FOR Z%=N% TO N%+4%
2530 B%(Z%)=FNB(A%(Z%))
2540 IF Z%=N%+4% THEN 2570
2550 IF INT(A%(Z%)/100%)<>INT(A%(Z%+1%)/100%) THEN 2570
2560 U%=U%+1%
2570 NEXT Z%
2580 IF U%<>4% THEN 2620
2590 X%=11111%
2600 D%=A%(N%)
2610 H$="EN FLUS" : I$='H I ' : U%=15% : RETURN
2620 FOR Z%=N% TO N%+3%
2630 FOR J%=Z%+1% TO N%+4%
2640 IF B%(Z%)<=B%(J%) THEN 2700
2650 X%=A%(Z%)
2660 A%(Z%)=A%(J%)
2670 B%(Z%)=B%(J%)
2680 A%(J%)=X%
2690 B%(J%)=A%(J%)-100%*INT(A%(J%)/100%)
2700 NEXT J%
2710 NEXT Z%
2720 X%=0%
2730 FOR Z%=N% TO N%+3%
2740 IF B%(Z%)<>B%(Z%+1%) THEN 2780
2750 X%=X%+11%*10^(Z%-N%)
2760 D%=A%(Z%)
2770 GOSUB 2990
2780 NEXT Z%
2790 IF X%<>0% THEN 2870
2800 IF B%(N%)+3%<>B%(N%+3%) THEN 2830
2810 X%=11110%
2820 U%=10%
2830 IF B%(N%+1%)+3%<>B%(N%+4%) THEN 2870
2840 IF U%<>10% THEN 2860
2850 U%=14% : H$="STRAIG" : I$='HT, ' : X%=11111% : D%=A%(N%+4%) : RETURN
2860 U%=10% : X%=1111%
2870 IF U%>=10% THEN 2920
2880 D%=A%(N%+4%)
2890 H$="INGENT" : I$='ING, ' : U%=9%
2900 X%=11000%
2910 GOTO 2970
2920 IF U%<>10% THEN 2950
2930 IF I%=1% THEN 2880 : REM sista g}ngen - blir inte straight
2940 GOTO 2980
2950 IF U%>12% THEN 2980
2960 IF FNB(D%)>6% THEN 2980
2970 I%=6%
2980 RETURN
2990 IF U%>=11% THEN 3020
3000 U%=11%
3010 H$="ETT PAR" : I$=' I ' : RETURN
3020 IF U%<>11% THEN 3060
3030 IF B%(Z%)<>B%(Z%-1%) THEN 3050
3040 H$="TRISS" : I$=' I ' : U%=13% : RETURN
3050 H$="TV] P" : I$='AR, ' : U%=12% : RETURN
3060 IF U%>12% THEN 3080
3070 U%=16% : H$="K]" : I$='K, ' : RETURN
3080 IF B%(Z%)<>B%(Z%-1%) THEN 3100
3090 U%=17% : H$="FYRT" : I$='AL' : RETURN
3100 U%=16% : H$="K]" : I$='K, ' : RETURN
3105 REM ...satsning
3110 G%=0%
3120 ; "HUR MYCKET SATSAR DU ";
3130 ONERRORGOTO 3140 : INPUT T% : GOTO 3210
3140 GOSUB 4260 : GOTO 3130
3210 IF S%-G%-T%>=0% THEN 3240
3220 GOSUB 3950 : GOTO 3120 : REM pengar slut-skaffa-satsa
3240 IF T%<>0% THEN 3270
3250 I%=3%
3260 GOTO 3450
3270 IF G%+T%>=K% THEN 3300
3280 ; "OM VI SKA FORTS[TTA M]STE DU KOMMA MED H\GRE BUD!"
3290 GOTO 3120
3300 G%=G%+T%
3310 IF G%=K% THEN 3450
3315 REM ...datorn |verv{ger budet
3320 IF Z%>2% THEN 3490 ELSE IF Z%=2% 3495
3330 IF G%<6% THEN 3490
3340 T=RND : IF T<.1 THEN 3495
3350 IF T<.5 THEN 3430
3390 I%=4%
3400 ; "JAG L[GGER MIG"
3410 GOTO 3450
3430 IF U%>14% THEN 3495 ELSE ; "JAG F\LJER MED!" : GOSUB 9005
3440 K%=G%
3450 S%=S%-G%
3460 C%=C%-K%
3470 P%=P%+G%+K% : K%=0% : K1%=0%
3480 RETURN : REM ...satsning slut
3490 IF G%>3%*Z% THEN 3430
3493 IF Z%=28% IF RND<.2 THEN 3390 : REM ...vid bluff
3495 W%=T%*RND+Z%*RND : IF W%=0% 3430
3500 V%=G%-K%+W%
3510 GOSUB 3550 : IF E1% E1%=0% : GOTO 3430
3520 ; "JAG F\LJER OCH \KAR MED"W%
3530 K%=K%+V% : K1%=K% : REM ...lagt i pott
3540 GOTO 3120
3550 IF C%-K%-V%>=0% THEN 3710
3560 IF G%<>0% THEN 3590
3570 V%=C%
3580 GOTO 3710
3590 IF C%-G%>=0% THEN E1%=1% : GOTO 3710
3600 IF (O% AND 1%)=0% THEN 3660 : REM ej s}lt klockan
3610 ; "VILL DU K\PA TILLBAKA KLOCKAN F\R 50:-";
3620 GET \$ : ; \$ : IF \$='N' THEN 3660
3630 C%=C%+50% : S%=S%-50%
3640 O%=O%-1%
3650 GOTO 3710
3660 IF (O% AND 2%)=0% THEN 3720 : REM ej s}lt ringen
3670 ; "VILL DU K\PA TILLBAKA RINGEN F\R 50:-";
3680 GET \$ : ; \$ : IF \$="N" THEN 3720
3690 C%=C%+50% : S%=S%-50%
3700 O%=O%-2%
3710 RETURN
3720 ; : ; "JAG [R SLAGEN! GRATULERAR!"
3725 C%=C%-K1% : S%=S%+K1%
3730 ; : ; "ETT NYTT PARTI? (J/N)";
3740 GET \$ : IF \$="N" THEN 3790
3750 ; CHR$(12%) : ; : ; : ; : ;
3760 ; "V[NTA LITE D]!" : ; : ; "JAG SKA BARA SPRINGA OCH L]NA"
3770 ; "EN HUNDRING!!" : GOSUB 9000
3780 FOR I%=1% TO 4000% : NEXT I% : S%=S%+P% : C%=C%+100% : GOTO 220
3790 ; : ; "TACK F\R GOD MATCH, D]!"
3800 GOTO 4250
3805 REM ---beskriv h{nderna
3810 ; H$;I$;
3820 IF H$<>"EN FLUS" THEN 3870
3830 K%=K%/100%
3840 GOSUB 2420
3850 ;
3860 RETURN
3870 K%=FNB(K%)
3880 GOSUB 2300
3890 IF H$="INGENT" THEN 3910
3900 IF H$<>"STRAIG" THEN 3930
3910 ; " H\G"
3920 RETURN
3930 ; "!"
3940 RETURN
3945 REM ...dina pengar slut
3950 ;
3960 ; "DU KAN JU INTE SATSA MER [N VAD DU HAR!" : IF O%=3% THEN ; : GOTO 4190
3970 IF O%=1% THEN 4080
3980 ; : ; "VILL DU KANSKE S[LJA KLOCKAN? ";
3990 GET \$ : IF \$="N" THEN 4080
4000 IF RND>=.7 THEN 4040
4010 ; : ; "DU F]R 75 SP[NN F\R DEN!"
4020 S%=S%+75% : C%=C%-75%
4030 GOTO 4060
4040 ; : ; "DET VAR EN FUL KLOCKA -- DU F]R 25:-"
4050 S%=S%+25% : C%=C%-25%
4060 O%=O%+1%
4070 RETURN
4080 IF O%=2% THEN 4190
4090 ; : ; "SATSAR DU GULDRINGEN KANSKE? ";
4100 GET \$ : IF \$="N" THEN 4190
4110 IF RND>=.6 THEN 4150
4120 ; : ; "NU [R DU 100 SP[NN RIKARE!"
4130 S%=S%+100%
4140 GOTO 4170
4150 ; : ; "DEN V[RDERAR JAG TILL 25 SP[NN!"
4160 S%=S%+25%
4170 O%=O%+2%
4180 RETURN
4190 ; : ; : ; "GALNING! INTE KAN DU FORTS[TTA! DU HAR JU INGA PENGAR KVAR!" : GOSUB 9000
4200 ; : ; "VILL DU TA ETT NYTT PARTI M]STE DU KUTA OCH SKAFFA MER PENGAR! (J/N)";
4210 GET \$ : IF \$="N" THEN 4240
4220 ; : ; 'JAHA! DU FICK TAG P] EN HUNDRING!!' : T2=3 : GOSUB 9010
4230 S%=S%-G%+100% : C%=C%+P% : GOTO 220
4240 ; : ; 'OKEY! TACK D]!';
4250 CHAIN 'MENY' : REM END
4260 REM -- FEL TAL -- LJUDSIGNAL --
4270 ; "FEL TAL!!" : OUT 6%,199% : FOR I%=1% TO 2000% : NEXT I% : OUT 6%,0% : RETURN
9000 REM paus 240,340,1850
9005 T2=1
9010 T1=1000 : FOR T=1 TO T1*T2 : NEXT T
9050 RETURN