1 REM Ins{nt av 4230 2 REM ***************************** 3 REM * FLUGORNA.GAM / Minne 16K * 4 REM * VER 1.0 / 1983-??-?? * 5 REM * (c) Alf Wirdling / <4230> * 6 REM * Tel. 0470-26277 / V[XJ\ * 7 REM ***************************** 100 REM  FLUGORNA  110 ; CHR$(12);CHR$(151);"$$$$$$$$$$$$$$ FLUGORNA ((((((((((((((" 120 ; : ; "Sjukdoms-alstrande flugor finns i en" 130 ; "'burk' utan lock framf|r dig." 140 ; "Rymmer flugorna blir det en epidemi !" 150 ; "Det r{cker med att en enda fluga lyckas" 160 ; "rymma, s} hittar de andra ocks} ut !" 170 ; "Men det {r inget problem. Flugorna har" 180 ; "nog att g|ra med att f|r|ka sig under" 190 ; "den f|rsta 'tiden' men sedan hittar de" 200 ; "l{tt ut. Du m}ste g|ra slut p} dem" 210 ; "innan, och det g|r du genom insekts-" 220 ; "spray som du kan spruta fr}n sidan" 230 ; "eller nedifr}n. Var r{dd om det," 240 ; "det kan ta l}ng tid att fylla p}!" 250 ; : ; "a flyttar munstycket }t v{nster" 260 ; "s flyttar munstycket }t h|ger" 270 ; "SPACE s{nder ut en str}le" 280 ; "~ flyttar munstycket upp}t" 290 ; "' flyttar munstycket ned}t" 300 ; "RETURN s{nder ut en str}le" 310 ; : ; "Tryck tangent n{r du l{st f{rdigt "; 320 POKE 65013,0 : GET R$ 330 ; CHR$(12);CUR(5,0); 340 ; : ; "Det finns 3 storlekar p} str}len." 350 ; "Du trycker p} tangenterna 1-3 f|r" 360 ; "|nskad str}le." 370 ; : ; "1 - Standardstr}le" 380 ; "2 - Stor str}le" 390 ; "3 - J{ttestr}le" 400 ; : ; "Ju st|rre str}le, desto mer spray g}r" 410 ; "det }t." 420 ; CUR(21,0);"Sv}righets-grad - sv}r >> l{tt (1-5) "; 430 ONERRORGOTO 430 440 POKE 65013,0 : GET R$ : V%=VAL(R$) 450 IF V%<1% OR V%>5% THEN 440 460 ; R$ 470 ; : ; "----- Spela med UPPERCASE sl{ckt -----"; 480 REM  INTITIERING  490 DIM R%(110),K%(110) 500 RANDOMIZE : V%=V%*20% 510 FOR I%=1% TO 110% 520 R%(I%)=RND*40+9 : K%(I%)=RND*50+9 : NEXT I% 530 GOSUB 1080 : REM  GRAF MOD  540 F%=1% : P=9 : P2=110 550 REM  UTL[GGNING STYRMALL  560 ; CUR(20%,1%);STRING$(38,35);"!"; 570 FOR I%=0% TO 19% : ; CUR(I%,39%);"5"; : NEXT I% 580 FOR I%=0% TO 19% : ; CUR(I%,1%);"5"; : NEXT I% 590 A%=39% : B%=29% : SETDOT 61%,A% : SETDOT B%,79% 600 S%=100% : REM  SPRAY-V[TSKA  610 ; CUR(22%,1%);"Flugor ="; 620 ; CUR(22%,14%);"Of|dda ="; 630 ; CUR(22%,27%);"Spray =";S%; 640 REM  START (NY ELLER GAMMAL)  650 P=P+1 : GOSUB 1760 : IF P>P2 THEN 1040 660 IF P<>S THEN 690 670 ; CUR(23%,1%);CHR$(7);"Sprayen fungerar igen!!! "; 680 S=0 : S%=101% : GOSUB 1790 690 FOR P2%=1% TO V% : P%=RND*P+1 700 R2%=RND*2 710 ON R2%+1% GOTO 720,740,740 720 R2%=R%(P%)-F% : IF R2%<0% THEN 1920 730 GOTO 760 740 R2%=R%(P%)+F% : IF R2%>59% THEN R2%=59% 750 GOTO 760 760 CLRDOT R%(P%),K%(P%) : SETDOT R2%,K%(P%) : R%(P%)=R2% 770 K2%=RND*2 780 ON K2%+1% GOTO 790,810,810 790 K2%=K%(P%)-F% : IF K2%<3% THEN K2%=3% 800 GOTO 830 810 K2%=K%(P%)+F% : IF K2%>77% THEN K2%=77% 820 GOTO 830 830 CLRDOT R%(P%),K%(P%) : SETDOT R%(P%),K2% : K%(P%)=K2% 840 REM  INP  850 IF INP(56%)=225% THEN 950 860 IF INP(56%)=254% THEN 970 870 IF INP(56%)=243% THEN 990 880 IF INP(56%)=167% THEN 1010 890 IF INP(56%)=141% THEN GOSUB 1790 : GOSUB 1120 900 IF INP(56%)=160% THEN GOSUB 1790 : GOSUB 1370 910 IF INP(56%)=177% THEN T%=0% : ; CHR$(7); : GOTO 1030 920 IF INP(56%)=178% THEN T%=1% : ; CHR$(7); : GOTO 1030 930 IF INP(56%)=179% THEN T%=2% : ; CHR$(7); : GOTO 1030 940 GOTO 1030 950 CLRDOT 61%,A% : A%=A%-1% : IF A%<3% THEN A%=3% 960 SETDOT 61%,A% : GOTO 1030 970 CLRDOT B%,79% : B%=B%-1% : IF B%<0% THEN B%=0% 980 SETDOT B%,79% : GOTO 1030 990 CLRDOT 61%,A% : A%=A%+1% : IF A%>77% THEN A%=77% 1000 SETDOT 61%,A% : GOTO 1030 1010 CLRDOT B%,79% : B%=B%+1% : IF B%>59% THEN B%=59% 1020 SETDOT B%,79% : GOTO 1030 1030 NEXT P2% : GOTO 640 1040 REM  ALLA FLUGOR P] N[TET  1050 ; CUR(23%,1%);"Alla flugor f|dda, de rymmer, epidemi!"; 1060 GOSUB 1960 : OUT 6,25 : GOSUB 2010 : OUT 6,0 1070 ; : ; : ; " LIVET SLUT P] JORDEN, FLUGORNA H[RSKAR" : END 1080 REM  GRAFISK BILD  1090 ; CHR$(12) : FOR I%=0% TO 20% 1100 ; CUR(I%,0%);CHR$(151); 1110 NEXT I% : RETURN 1120 REM  H\GER-SPRAY  1130 IF S%<1% THEN RETURN 1140 FOR B2%=77% TO 3% STEP -1% 1150 IF DOT(B%,B2%) THEN W%=1% ELSE W%=0% 1160 SETDOT B%,B2% : IF W%=1% GOSUB 1620 1170 IF T%=0% THEN 1270 1180 IF B%-1%<0% THEN 1230 1190 IF DOT(B%-1%,B2%) THEN W%=1% ELSE W%=0% 1200 B%=B%-1% : SETDOT B%,B2% : IF W%=1% GOSUB 1620 1210 B%=B%+1% 1220 IF T%=1% THEN 1270 1230 IF B%+1%>59% THEN 1270 1240 IF DOT(B%+1%,B2%) THEN W%=1% ELSE W%=0% 1250 B%=B%+1% : SETDOT B%,B2% : IF W%=1% GOSUB 1620 1260 B%=B%-1% 1270 NEXT B2% 1280 REM  TA BORT STR]LEN  1290 FOR I%=3% TO 77% : CLRDOT B%,I% 1300 IF T%=0% THEN 1360 1310 IF B%-1%<0% THEN 1340 1320 CLRDOT B%-1%,I% 1330 IF T%=1% THEN 1360 1340 IF B%+1%>59% THEN 1360 1350 CLRDOT B%+1%,I% 1360 NEXT I% : RETURN 1370 REM  UNDER-SPRAY  1380 IF S%<1% THEN RETURN 1390 FOR A2%=59% TO 0% STEP -1% 1400 IF DOT(A2%,A%) THEN W%=1% ELSE W%=0% 1410 SETDOT A2%,A% : IF W%=1% GOSUB 1690 1420 IF T%=0% THEN 1520 1430 IF A%-1%<3% THEN 1470 1440 IF DOT(A2%,A%-1%) THEN W%=1% ELSE W%=0% 1450 A%=A%-1% : SETDOT A2%,A% : IF W%=1% GOSUB 1690 1460 A%=A%+1% 1470 IF T%=1% THEN 1520 1480 IF A%+1%>77% THEN 1520 1490 IF DOT(A2%,A%+1%) THEN W%=1% ELSE W%=0% 1500 A%=A%+1% : SETDOT A2%,A% : IF W%=1% GOSUB 1690 1510 A%=A%-1% 1520 NEXT A2% 1530 REM  TA BORT STR]LEN  1540 FOR I%=0% TO 59% : CLRDOT I%,A% 1550 IF T%=0% THEN 1610 1560 IF A%-1%<3% THEN 1580 1570 CLRDOT I%,A%-1% 1580 IF T%=1% THEN 1610 1590 IF A%+1%>77% THEN 1610 1600 CLRDOT I%,A%+1% 1610 NEXT I% : RETURN 1620 REM  TR[FF H\GER-SPRAY  1630 FOR I%=1% TO P 1640 IF R%(I%)=B% AND K%(I%)=B2% THEN 1650 ELSE NEXT I% : GOTO 1900 1650 REM  TAG BORT FLUGAN  1660 FOR J%=I%+1% TO P 1670 R%(J%-1%)=R%(J%) : K%(J%-1%)=K%(J%) : NEXT J% 1680 P=P-1 : P2=P2-1 : GOSUB 1760 : IF P<1 THEN 1870 ELSE RETURN 1690 REM  TR[FF UNDER-SPRAY  1700 FOR I%=1% TO P 1710 IF R%(I%)=A2% AND K%(I%)=A% THEN 1720 ELSE NEXT I% : GOTO 1900 1720 REM  TAG BORT FLUGAN  1730 FOR J%=I%+1% TO P 1740 R%(J%-1%)=R%(J%) : K%(J%-1%)=K%(J%) : NEXT J% 1750 P=P-1 : P2=P2-1 : GOSUB 1760 : IF P<1 THEN 1870 ELSE RETURN 1760 REM  DISPLAY, ANTAL FLUGOR  1770 ; CUR(22%,10%);" "; : ; CUR(22%,9%);P; 1780 ; CUR(22%,23%);" "; : ; CUR(22%,22%);P2-P; : RETURN 1790 REM  DISPLAY, ANTAL SPRAYNINGAR  1800 IF S%<1% THEN RETURN ELSE S%=S%-T%-1% : IF S%>0% THEN 1840 1810 ; CUR(23%,1%);"Sprayet {r slut, sl|sare!!! "; 1820 OUT 6,67 : GOSUB 2010 : OUT 6,0 1830 S=P+10 : REM  WHEN SPRAY WORKS  1840 ; CUR(22%,35%);" "; : ; CUR(22%,34%);S%; 1850 IF S%>0% THEN RETURN 1860 ; CUR(23%,1%);"M[NSKLIGHETEN P] V[G MOT UNDERG]NG!!! "; : RETURN 1870 ; CUR(23%,1%);"Bra, inga flugor kvar, ingen epidemi!!"; 1880 OUT 6,5 : GOSUB 2010 : OUT 6,0 1890 ; : ; : ; " DU HAR R[DDAT M[NSKLIGHETEN !!!" : END 1900 ; CUR(23%,1%);"Systemfel - kontakta programansvarig!!!" 1910 OUT 6,67 : GOSUB 2010 : OUT 6,0 : STOP 1920 REM  EN FLUGA SKA JUST RYMMA  1930 ; CUR(23%,1%);"Flugorna rymmer, epidemin {r faktum !!"; 1940 GOSUB 1960 : OUT 6,25 : GOSUB 2010 : OUT 6,0 1950 ; : ; : ; " LIVET SLUT P] JORDEN, FLUGORNA H[RSKAR" : END 1960 FOR I%=1% TO P : OUT 6,131 1970 FOR J%=R%(I%) TO 1% STEP -1% 1980 CLRDOT J%,K%(I%) : SETDOT J%-1%,K%(I%) 1990 FOR F=1 TO 10 : NEXT F : NEXT J% : OUT 6,0 2000 CLRDOT J%,K%(I%) : NEXT I% : RETURN 2010 REM  F\RDR\JNING  2020 FOR F=1 TO 5000 : NEXT F : RETURN