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