1 REM +++++++++++++++++++++++++++++++++ 2 REM ! Program .... ROULETTE 3 REM ! Utg}va 4 REM ! av (c) Nils H{ggblom 7 REM ! Minne 16 Kbytes (MINST) 9 REM +++++++++++++++++++++++++++++++++ 10 REM 11 REM Screening av 12 REM Allan Varcoe & G|ran Olsson 13 REM 14 IF PEEK(590)<>40 THEN ; INP(3) 15 REM +++++++++++++++++++++++++++++++++ 20 ; CHR$(12); 30 FOR X%=1% TO 73% 40 ; "DATORROULETTE"; 50 NEXT X% 60 ; "DATORROULET"; 70 FOR X=1 TO 1000 : NEXT X 80 ; CHR$(12) : ; TAB(13);"DATORROULETTE" 85 ; : ; 'OBS: ALLTING *M]STE* SKRIVAS I STORA BOKST[VER!!!!' : ; : ; 90 ; "BEH\VER DU INSTRUKTIONER ?"; 100 GET A$ : ; CHR$(12) 110 IF A$<>"J" THEN 510 115 GOSUB 120 : GOTO 510 120 ; CUR(2,0);"N[R MAN SATSAR ANGER MAN SATSNINGENS" : ; 130 ; "TYP F\RST." 140 ; "OM SATSNINGEN G[LLER 1-6 ST. SIFFROR," 150 ; "GER MAN-EFTER ATT HA TRYCKT P] RETURN-" 160 ; "DEN SIFFRA SOM FINNS I \VRA V[NSTRA" 170 ; "H\RNET." 180 ; "OM DET G[LLER EN SIFFRA,GER" 190 ; "MAN NATURLIGTVIS DEN." 200 ; CUR(23,0);"TRYCK P] KNAPPEN N[R DU L[ST"; : GET A$ : ; CHR$(12); 210 ; "TYP" 220 ; "1R EN SIFFRA T.EX. 2=1R,2 35*INS" 230 ; "2R TV] SIFFROR BREDVID VARANDRA" 240 ; " T.EX. 8 OCH 9=2R,8 17*INS" 250 ; "3R TRE SIFFROR BREDVID VARANDRA" 260 ; " T.EX. 1,2,3=3R,1 11*INS" 270 ; "4K EN KVADRAT P] FYRA SIFFROR" 280 ; " T.EX. 1,2,4,5=4K,1 8*INS" 290 ; "4R FYRA SIFFROR UNDER VARANDRA" 300 ; " T.EX 1,4,7,10=4R,1 8*INS" 310 ; "6R EN REKTANGEL P] SEX SIFFROR" 320 ; " T.EX. 4-9=6R,4 6*INS" 330 ; "12K EN KOLUMN T.EX. 1-34=12K,1 2*INS" 340 ; "12P 1-12=12P 2*INS" 350 ; "12M 13-24=12M 2*INS" 360 ; "12D 25-36=12D 2*INS" 370 ; "24K TV] KOLUMNER BREDVID VARANDRA" 380 ; " T.EX. KOLUMN 1 OCH 2=24K,1 1/2*INS" 390 ; "DESSUTOM 1-24=24P OCH 13-36=24M 1/2*INS" 400 ; "OM MAN VILL SATSA P] VITT,SVART,J[MNT," 410 ; "UDDA,DEL A(1-18),DEL B(19-36),S] G[LLER" 420 ; "KODERNA V,S,J,U,A,B 1*INS" 430 ; "TRYCK P] KNAPPEN N[R DU L[ST"; 440 GET A$ : ; CHR$(12) 450 ; CUR(5,0);"VARJE SPELARE F]R 4000 SOM STARTKAPITAL" 460 ; CUR(8,0);"OM MAN VINNER F]R MAN ALLTID" 470 ; "INSATSEN TILLBAKA." 480 ; CUR(12,0);"H\GSTA RESPEKTIVE L[GSTA" 490 ; "INSATSEN [R 5000 RESP. 2." 492 ; CUR(16,0);"OM DU VILL HA DESSA INSTRUKTIONER" 493 ; "TILLBAKA,S] SVARAR DU P] FR]GAN 'TYP?'" 494 ; "MED BOKSTAVEN I." 500 ; CUR(20,0);"TRYCK P] KNAPPEN N[R DU L[ST"; : GET A$ 505 RETURN 510 ; CHR$(12) 520 ONERRORGOTO 520 : ; CUR(10,2);"HUR M]NGA SPELARE"; : INPUT A% 530 DIM A1(A%),A1$(A%)=54,A2%(36%),B2$(9%)=5,D$=3,A$=4,C1$=6,\$=5,F$=2,\3$=2 540 V%=1% 550 FOR W%=1% TO 36% STEP 2% 560 A2%(W%)=0 570 A2%(W%+V%)=1 573 IF W%=11 OR W%=18 OR W%=29 THEN V%=V%*(-1) : W%=W%-1 575 NEXT W% 580 B1$(1)="" : B1$(2)=" " : B1$(3)=" " : B1$(4)=" " 585 RESTORE 620 590 FOR W%=0% TO 9% 600 READ B2$(W%) 610 NEXT W% 620 DATA "14441","33333","13121","13131","44133","12131","12141","13333","14141","14131" 630 GOSUB 2020 : GOSUB 2555 640 FOR W%=1% TO A% : A1(W%)=4000% : NEXT W% 650 RANDOMIZE 660 FOR X%=1% TO A% 670 A1$(X%)=":" : NEXT X% 680 FOR X%=1% TO A% 682 IF A1(X%)=0% THEN 1250 683 GOSUB 1950 685 ; CUR(12,22);"SPELARE";X%;" ,DIN TUR"; 687 S%=0% 690 ; CUR(14,22);"TYP"; : INPUT D$ 692 IF D$="I" THEN ; CHR$(12); : GOSUB 120 : GOSUB 2020 : GOSUB 2555 : GOTO 685 700 IF LEN(D$)=2% THEN ; CUR(16,22);"SIFFRA"; : INPUT S% : GOTO 705 701 IF LEN(D$)=1% THEN 705 702 IF MID$(D$,3%,1%)="K" THEN ; CUR(16,22);"SIFFRAN"; : INPUT S% 705 IF S%<0% OR S%>36% THEN ; CHR$(7) : GOTO 683 710 ON LEN(D$) GOTO 720,870,1010 720 N%=1% : W%=1% : V%=36% 730 IF D$="V" THEN H%=0% : GOTO 800 740 IF D$="S" THEN H%=1% : GOTO 800 750 IF D$="J" THEN N%=2% : W%=2% : GOTO 800 760 IF D$="U" THEN N%=2% : V%=35% : GOTO 800 770 IF D$="A" THEN V%=18% : GOTO 800 780 IF D$="B" THEN W%=19% : GOTO 800 790 ; CHR$(7) : GOTO 683 800 FOR Q%=W% TO V% STEP N% 810 IF D$<>"V" AND D$<>"S" THEN 840 820 IF A2%(Q%)=H% THEN G%=Q% : GOSUB 1970 830 GOTO 850 840 G%=Q% : GOSUB 1970 850 NEXT Q% 860 GOTO 1160 870 H1=(S%-1)/3 : H2=(S%-2)/3 : N%=0% 880 IF D$="1R" THEN G%=S% : GOSUB 1970 : GOTO 1160 890 IF D$="2R" AND (H1=INT(H1) OR H2=INT(H2)) THEN 950 900 IF D$="3R" AND H1=INT(H1) THEN 950 910 IF D$="4R" AND S%<28% THEN N%=6% : GOTO 950 920 IF D$="4K" AND (H1=INT(H1) OR H2=INT(H2)) AND S%<33% THEN N%=1% : GOTO 950 930 IF D$="6R" AND H1=INT(H1) AND S%<32% THEN 950 940 ; CHR$(7) : GOTO 683 950 R8%=VAL(MID$(D$,1%,1%))-1%+S%+N% 955 FOR Q%=S% TO R8% 960 G%=Q% : GOSUB 1970 970 IF D$="4R" THEN Q%=Q%+2% 980 IF D$="4K" AND Q%-S%=1% THEN Q%=Q%+1% 990 NEXT Q% 1000 GOTO 1160 1010 IF MID$(D$,3%,1%)="K" AND S%<4% N%=3% : V%=36% : W%=S% : GOTO 1085 1020 IF MID$(D$,1%,2%)="12" OR MID$(D$,1%,2%)="24" THEN 1040 1030 ; CHR$(7) : GOTO 683 1040 W%=1% : V%=36% : N%=1% 1050 IF MID$(D$,3%,1%)="P" THEN V%=12% : GOTO 1085 1060 IF MID$(D$,3%,1%)="M" THEN W%=13% : V%=24% : GOTO 1085 1070 IF MID$(D$,3%,1%)="D" THEN W%=25% : GOTO 1085 1080 ; CHR$(7) : GOTO 683 1085 L%=0% 1090 FOR Q%=W% TO V% STEP N% 1100 G%=Q% : GOSUB 1970 1110 NEXT Q% 1120 IF MID$(D$,1%,2%)<>"24" THEN 1160 1130 IF L%=1% THEN 1160 1140 IF MID$(D$,3%,1%)="K" THEN W%=W%+1% ELSE W%=W%+12% : V%=V%+12% 1150 L%=1% : GOTO 1090 1160 ; CUR(18,22);"SUMMAN"; : INPUT \% 1170 IF \%<2% OR \%>5000% THEN ; CUR(18,22);SPACE$(17); : GOTO 1160 1180 IF A1(X%)-\%<=0% THEN ; CUR(23,22);"DU [R PANK!"; : \%=A1(X%) : FOR Q=1 TO 1000 : NEXT Q 1190 A1(X%)=A1(X%)-\% 1200 A1$(X%)=A1$(X%)+D$+NUM$(S%)+","+NUM$(\%)+":" 1210 IF A1(X%)=0 THEN 1240 1215 ; CUR(20,22);"SALDO:";A1(X%); 1220 ; CUR(23,22);"FLER INSATSER?"; : GET A$ 1230 IF A$="J" THEN 683 1240 GOSUB 2555 1250 NEXT X% 1295 ; CUR(1,17);"NUMMER"; : W%=0% 1300 C1%=INT(RND*37%) 1310 C2%=INT(C1%/10%) 1320 IF C2%=0% THEN 1390 1350 FOR Z%=1% TO 5% 1360 C1$=B1$(VAL(MID$(B2$(C2%),Z%,1%))) 1370 ; CUR(2*Z%-1%,24+W%);C1$ : ; CUR(2*Z%,24+W%);C1$ 1380 NEXT Z% 1390 IF W%=0% THEN W%=8% : C2%=C1%-C2%*10% : GOTO 1350 1400 IF A2%(C1%)=0% THEN 1450 1410 FOR Q%=0% TO 35% 1420 FOR Z%=46% TO 77% 1430 IF DOT(Q%,Z%) THEN CLRDOT Q%,Z% ELSE SETDOT Q%,Z% 1440 NEXT Z% : NEXT Q% 1450 IF C1%<>0% THEN 1500 1460 FOR Q%=62% TO 77% STEP 2% 1470 FOR Z%=0% TO 35% 1480 IF DOT(Z%,Q%) THEN CLRDOT Z%,Q% ELSE SETDOT Z%,Q% 1490 NEXT Z% : NEXT Q% 1500 ; CUR(3,17);"VINNER"; 1510 FOR W%=1% TO A% 1520 GOSUB 1950 1530 B9=36% 1540 ; CUR(12,22);"SPELARE";W%;" VINNER " : B7%=0% 1550 IF C1%=0% THEN \$="1R"+NUM$(C1%) : GOSUB 2660 : GOTO 1835 1555 B9=2% 1560 F$=NUM$(C1%-INT(C1%/3-.1)*3%) 1570 IF A2%(C1%)=0% THEN \$="V" ELSE \$="S" 1580 GOSUB 2660 1590 IF C1%/2=INT(C1%/2) THEN \$="J" ELSE \$="U" 1600 GOSUB 2660 1610 IF C1%<19% THEN \$="A" ELSE \$="B" 1620 GOSUB 2660 : \$="12K" : B9=3% 1630 \$=\$+F$ : GOSUB 2660 : B9=1.5 1640 IF VAL(F$)=1% OR VAL(F$)=2% THEN \3$=NUM$(1%) : \$="24K"+\3$ : GOSUB 2660 1650 IF VAL(F$)=2% OR VAL(F$)=3% THEN \3$=NUM$(2%) : \$="24K"+\3$ : GOSUB 2660 1655 B9=3% 1660 IF C1%<13% THEN \$="12P" : GOTO 1690 1670 IF C1%<25% THEN \$="12M" : GOTO 1690 1680 \$="12D" 1690 GOSUB 2660 : B9=1.5 1700 IF C1%<25% THEN \$="24P" : GOSUB 2660 1710 IF C1%>12% THEN \$="24M" : GOSUB 2660 1715 B9=36% 1720 \$="1R"+NUM$(C1%) : GOSUB 2660 : B9=12% 1730 \$="3R"+NUM$(C1%-(VAL(F$)-1%)) : GOSUB 2660 : B9=18% 1740 \3$="2R" : F4%=0% 1750 FOR [1%=1% TO 3% 1760 IF VAL(F$)=1% OR VAL(F$)=2% THEN \$=\3$+NUM$(C1%-F4%) : GOSUB 2660 1770 IF VAL(F$)=2% OR VAL(F$)=3% THEN \$=\3$+NUM$(C1%-1%-F4%) : GOSUB 2660 1780 IF \3$="2R" THEN \3$="4K" : B9=9% ELSE F4%=3% 1790 NEXT [1% : B9=6% 1800 \$="6R"+NUM$(C1%-VAL(F$)+1%) : GOSUB 2660 1810 \$="6R"+NUM$(C1%-VAL(F$)-2%) : GOSUB 2660 : B9=9% 1820 FOR [1%=0% TO 3% 1830 \$="4R"+NUM$(C1%-3%*[1%) : GOSUB 2660 : NEXT [1% 1835 ; CUR(22,22);"SALDO:";A1(W%); 1840 ; CUR(23,22);"TRYCK P] KNAPPEN"; : GET A$ : NEXT W% 1841 E%=0% 1842 FOR Q%=1% TO A% 1843 IF A1(Q%)=0 THEN E%=E%+1% 1844 NEXT Q% 1845 IF E%=A% THEN 1910 1850 ; CUR(23,22);"EN OMG]NG TILL ?"; : GET A$ 1860 IF A$<>"J" THEN 1910 1870 FOR W%=46% TO 77% : FOR V%=0% TO 35% 1880 CLRDOT V%,W% : NEXT V% : NEXT W% 1890 GOSUB 1950 : ; CUR(1,17);SPACE$(6); : ; CUR(3,17);SPACE$(6); 1900 GOTO 660 1910 ; CHR$(12) 1920 FOR X%=1% TO A% 1930 ; "SPELARE";X%;":";A1(X%) : NEXT X% 1940 END 1950 FOR Z3%=12% TO 23% 1960 ; CUR(Z3%,22);SPACE$(17); : NEXT Z3% : RETURN 1970 IF G%=0% THEN ; CUR(5%,10%);SPACE$(2); : RETURN 1975 G%=G%+2% 1980 G1%=INT(G%/3%-.1) : G2%=G%-G1%*3% 1990 IF G1%>3% THEN G1%=G1%+1% 2000 IF G1%>8% THEN G1%=G1%+1% 2010 ; CUR(7%+G1%,1%+3%*(G2%-1%));SPACE$(2); : RETURN 2020 ; CHR$(12) 2030 FOR G%=0% TO 23 2040 ; CUR(G%,0);CHR$(151); : NEXT G% 2050 FOR G%=5% TO 20% 2060 ; CUR(G%,6%);CHR$(135); : ; CUR(G%,15%); : ; CHR$(151); 2070 IF G%=5% OR G%=10% OR G%=15% THEN G%=G%+1 2080 NEXT G% 2090 FOR G%=12% TO 23% 2100 ; CUR(G%,21%);CHR$(135); : NEXT G% : M%=0% 2110 FOR W%=1% TO 70% STEP 6% 2120 IF W%=19% THEN M%=10% 2130 FOR V%=12%-M% TO 31%+M% 2140 SETDOT W%,V% 2150 NEXT V% 2160 IF W%>14% AND W%<60% THEN W%=W%+9% 2170 NEXT W% : M%=0 2180 FOR W%=2% TO 41% STEP 9% 2190 FOR V%=19%+M% TO 70% 2200 SETDOT V%,W% 2205 IF V%=7% THEN V%=12% 2210 NEXT V% 2230 IF W%=2% OR W%=25% THEN M%=-18% 2240 IF W%=11% THEN M%=45% 2250 IF W%=32% THEN M%=0% 2255 IF W%>10% AND W%<30% THEN W%=W%-2% 2260 NEXT W% 2270 ; CUR(1,7);"ROULETTE" : I%=6% : J%=3% 2275 RESTORE 2360 2280 FOR Z%=1% TO 4% 2290 READ A$ 2300 FOR M%=1% TO 4% 2310 \$=MID$(A$,M%,1%) 2320 ; CUR(I%+M%,J%);\$; 2330 NEXT M% 2340 IF Z%=1% OR Z%=3% THEN I%=11% ELSE I%=6% : J%=18% 2350 NEXT Z% 2360 DATA "DELB","J[MN","DELA","UDDA" 2370 FOR M%=6% TO 8% 2380 FOR N%=55% TO 59% 2390 SETDOT N%,M% : SETDOT N%,M%+29% 2400 NEXT N% : NEXT M% 2410 RESTORE 2460 2420 FOR M%=1% TO 6% 2430 READ Z%,N% 2440 SETDOT Z%,N% : SETDOT Z%,N%+29% 2450 NEXT M% 2460 DATA 53,7,54,7,57,5,57,9,60,7,61,7 2470 FOR M%=3% TO 10% 2480 FOR N%=50% TO 63% 2490 IF DOT(N%,M%) THEN CLRDOT N%,M% ELSE SETDOT N%,M% 2500 NEXT N% : NEXT M% : RESTORE 2540 2510 FOR N%=2% TO 4% 2520 READ A$ : ; CUR(22,N%);A$ : ; CUR(22,21-N%);A$ 2530 NEXT N% 2540 DATA "P","M","D" 2550 RETURN 2555 ; CUR(5,11);"0" 2560 I%=7% : J%=7% 2570 FOR X4%=1% TO 36% 2580 X$=NUM$(X4%) : X$=RIGHT$(X$,2) 2590 IF LEN(X$)=1% THEN Y%=J%+1% ELSE Y%=J% 2600 ; CUR(I%,Y%);X$ 2610 J%=J%+3% 2630 IF J%=16% THEN J%=7% : I%=I%+1% 2640 IF I%=11% OR I%=16% THEN I%=I%+1% 2650 NEXT X4% : RETURN 2660 B6%=1% 2680 B5%=INSTR(B6%,A1$(W%),\$) 2690 IF B5%=0% THEN RETURN 2692 IF MID$(A1$(W%),B5%-1%,1%)<>":" THEN RETURN 2693 IF MID$(A1$(W%),B5%+LEN(\$),1%)<>"," AND MID$(A1$(W%),B5%+LEN(\$),2%)<>NUM$(0%) THEN RETURN 2695 B7%=B7%+1% 2700 ; CUR(B7%+12%,22%);\$; 2710 B5%=B5%+1% 2720 IF MID$(A1$(W%),B5%,1%)="," THEN B5%=B5%+1% ELSE 2710 2730 B8%=B5% 2740 B8%=B8%+1% 2750 IF MID$(A1$(W%),B8%,1%)<>":" THEN 2740 2760 B6$=MID$(A1$(W%),B5%,B8%-B5%) 2770 H1=B9*VAL(B6$) : ; H1; 2780 A1(W%)=A1(W%)+H1 2790 B6%=B5% : GOTO 2680