1 REM Ins{nd av Lennart Einarsson <6554> 1986-05-23 22.40.24 1010 CLOSE 3% 10 REM -------- AVENGER.BAS ----------- 20 REM 30 REM Ett litet spel som inte {r s} 40 REM 50 REM l{tt som det ser ut. 60 REM 70 REM Saxat ur en gammal blaska. 80 REM <6554> 90 REM 100 IF PEEK(590%)<>40% ; INP(3%) 110 DATA " xt xt xt xt xt " 120 DATA " =n =n =n =n =n " 130 DATA " >m >m >m >m >m " 140 DATA " +' +' +' +' +' " 150 DATA " =n =n =n =n =n " 160 RANDOMIZE 170 FOR I%=1% TO 5% : READ A$(I%) : A$(I%)=MID$(A$(I%),2%,3%) : NEXT I% 180 A$=CUR(0%,3%)+CHR$(135%)+"SCORE " : B$=CUR(0%,18%)+CHR$(135%)+"HI " : C$=CHR$(10%)+STRING$(5%,8%) : D$=" " 190 E$="00000" : F$=E$ : G$=E$ : H$=D$+C$+D$+C$+D$ : I$=" `|0 "+C$+" w{ "+C$+" "+CHR$(34%)+"/! " : J$="GAME OVER" 200 ; CHR$(12%)A$E$B$E$ : GOSUB 710 : K$=CUR(21%,0%)+" CONTROL WITH G=LEFT,H=FIRE AND J=RIGHT" : GOTO 740 210 OUT 6%,0% : G%=G%+1% : ; CHR$(12%)CUR(10%,15%)"SECTOR "G% : FOR I=1% TO 1500% : NEXT I : ; CHR$(12%) 220 FOR I%=0% TO 23% : ; CHR$(151%) : NEXT I% : F%=-1% : F%=F%+G% : IF F%=8% 240 ELSE IF F%>=9% F%=9% : GOTO 250 230 ; CUR(17%,8%)"xt xt xt xt " 240 ; CUR(18%,8%)"// // // //" 250 RESTORE : FOR I%=1% TO 5% : READ X$(I%) : K%(I%)=1% : B%(I%)=1% : W%(I%)=18% : V%(I%)=20% : NEXT I% 260 A%=0% : S%=0% : X%=3% : Y2%=0% : Q%=5% : GOSUB 710 270 H%=0% : FOR I%=1% TO Q% : K%(I%)=K%(I%)+B%(I%) : IF NOT (K%(I%)<2% XOR K%(I%)>W%(I%)) 290 280 IF K%(Q%)<2% OR K%(Q%)>W%(Q%) 300 ELSE IF K%(I%)<2% K%(I%)=2% : B%(I%)=1% ELSE K%(I%)=W%(I%) : B%(I%)=-1% 290 NEXT I% : GOTO 330 300 IF K%(Q%)<2% K%(Q%)=2% : B%(Q%)=1% ELSE K%(Q%)=W%(Q%) : B%(Q%)=-1% 310 F%=F%+1% : FOR I%=Q% TO 1% STEP -1% : ; CUR(I%*2%+F%-1%,K%(I%))SPACE$(LEN(X$(I%)))CUR(I%*2%+F%,K%(I%))X$(I%) 320 IF I%*2%+F%>19% S1%=1% : GOTO 670 ELSE NEXT I% 330 ; A$F$B$G$ : FOR I%=1% TO Q% : ; CUR(I%*2%+F%,K%(I%))X$(I%) : NEXT I% 340 IF A% 350 ELSE IF (F%<2% OR (RND>.2)) 360 ELSE IF RND<.5 E%=3% : A%=1% ELSE E%=32% : A%=-1% 350 E%=E%+A% : IF (E%<2% OR E%>33%) OUT 6%,0% : ; CUR(1%,E%)H$ : A%=0% ELSE ; CUR(1%,E%)I$ : OUT 6%,5% 360 FOR I%=1% TO 2% : T%=INP(56%)-128% : T%=T% AND 223% 370 IF T%=74% AND X%<34% X%=X%+1% ELSE IF T%=71% AND X%>3% X%=X%-1% 380 IF T%=72% AND S%=0% S%=1% : GOSUB 520 : Y%=60% : D%=X%*2%+L% 390 ; CUR(20%,X%)" x/t " : NEXT I% 400 [%=((Q%*2%+F%)*3%+4%) : IF S%=0% 440 ELSE SETDOT Y%,D% : CLRDOT Y%+2%,D% : Y%=Y%-2% : IF NOT DOT(Y%,D%) 430 410 IF A%=0% 420 ELSE IF Y%<12% C%=C%+100%*G% : OUT 6%,0% : A%=0% : ; CUR(1%,E%)H$ : GOSUB 570 : GOTO 430 420 S%=0% : FOR I%=-1% TO 2% : CLRDOT Y%+I%,D% : NEXT I% : IF (Y%<[% AND Y%>6%+F%*3%) 540 ELSE 440 430 IF A%=0% AND Y%>6%+F%*3% 440 ELSE IF A% AND Y%>4% 440 ELSE S%=0% : CLRDOT Y%+2%,D% 440 IF Y2% 460 ELSE IF Q%*2%+F%>18% 510 ELSE M%=1%+Q%*RND : Z%=((1%+V%(M%))/4%*RND) : Z%=4%*Z%+2% 450 IF V%(M%)>3% IF MID$(X$(M%),Z%,1%)<>" " Y2%=((M%*2%+F%)*3%+4%) : X2%=(2%*(K%(M%)+Z%)+INT(2%*RND)) 460 IF NOT (Y2%<57% AND Y2%>[% AND DOT(Y2%,X2%)) 480 470 FOR I%=-2% TO 1% : FOR J%=-1% TO 1% : CLRDOT Y2%+I%,X2%+J% : NEXT J% : NEXT I% : Y2%=0% : GOTO 510 480 IF (Y2%>59% AND DOT(Y2%,X2%)) 660 490 IF Y2%=0% 510 ELSE SETDOT Y2%,X2% : CLRDOT Y2%-2%,X2% : Y2%=Y2%+1% : IF Y2%<66% 510 500 FOR I%=-2% TO -1% : CLRDOT Y2%+I%,X2% : NEXT I% : Y2%=0% 510 H%=H%+1% : IF H%<3% 400 ELSE 270 520 IF L%/2%=L%/2% L%=5% ELSE L%=4% 530 OUT 6%,0%,6%,137% : ; CUR(20%,X%+1%)")p&" : FOR J%=1% TO 400% : NEXT J% : RETURN 540 FOR I%=1% TO Q% : IF Y%/3%=I%*2%+F% 550 ELSE NEXT I% 550 S%=((D%/2%)-K%(I%))/4% : P%=2%+S%*4% : IF (I%>Q% OR P%<2% OR P%>LEN(X$(I%))-3%) 600 ELSE C%=C%+60%-10%*I% 560 GOSUB 570 : GOTO 590 570 IF U%=0% AND C%>4990% S1%=S1%+1% : U%=1% : GOSUB 710 : POKE 31779%,PEEK(31779%) OR 128% 580 X$=NUM$(C%) : X$=RIGHT$(X$,2%) : F$=LEFT$(F$,5%-LEN(X$))+X$ : RETURN 590 X$(I%)=LEFT$(X$(I%),P%-1%)+" "+RIGHT$(X$(I%),P%+3%) : OUT 6%,0%,6%,157% 600 S%=0% : CLRDOT Y%+2%,D% : FOR J%=1% TO Q% : ; CUR(J%*2%+F%,K%(J%))X$(J%) : NEXT J% 610 IF Q%=0% 210 ELSE IF X$(Q%)=SPACE$(LEN(X$(Q%))) Q%=Q%-1% : GOTO 610 620 IF V%(I%)=0% 270 ELSE IF LEFT$(X$(I%),2%)<>" " 640 ELSE K%(I%)=K%(I%)+4% : W%(I%)=W%(I%)+4% 630 V%(I%)=V%(I%)-4% : X$(I%)=RIGHT$(X$(I%),5%) : GOTO 620 640 IF RIGHT$(X$(I%),V%(I%))<>" " 270 ELSE W%(I%)=W%(I%)+4% : V%(I%)=V%(I%)-4% : X$(I%)=LEFT$(X$(I%),V%(I%)+2%) 650 GOTO 640 660 FOR I%=1% TO Q% : ; CUR(I%*2%+F%,K%(I%))X$(I%) : NEXT I% 670 S1%=S1%-1% : IF S1%>0% GOSUB 950 : GOTO 960 680 IF A% ; CUR(1%,E%)H$ 690 IF F$>G$ G$=F$ : ; B$G$ 700 GOSUB 710 : GOSUB 950 : GOTO 720 710 ; CUR(0%,29%)CHR$(151%)"x/t"CHR$(135%)S1% : RETURN 720 FOR I%=1% TO LEN(J$) : ; CUR(2%,13%)LEFT$(J$,I%) : FOR J=1% TO 50% : NEXT J : NEXT I% 730 FOR I=1% TO 1500% : GOSUB 780 : NEXT I 740 ; CUR(2%,9%)CHR$(135%)"PUSH ""RETURN""TO BEGIN"K$ 750 FOR I%=32016% TO 32021% : POKE I%,PEEK(I%) OR 128% : NEXT I% 760 ; CUR(1%,9%)CHR$(135%)"SCORE ADVANCE TABLE" : FOR I%=3% TO 20% : ; CUR(I%,0%)CHR$(151%)STRING$(40%,32%) : NEXT I% 770 GOTO 790 780 IF INP(56%)-128%=13% G%=0% : S1%=3% : U%=0% : C%=0% : F$=E$ : GOTO 210 ELSE RETURN 790 ; CUR(20%,6%)"x/t"CUR(3%,31%)I$ : FOR I%=1% TO 5% : ; CUR(6%+I%*2%,32%)A$(I%) : NEXT I% : X%=5% 800 FOR I=0% TO 999% : GOSUB 780 : NEXT I 810 FOR I%=5% TO 0% STEP -1% 820 FOR J%=32%-K1% TO 6% STEP -1% 830 GOSUB 780 : IF I%=0% ; CUR(3%,J%)I$ : GOTO 850 840 ; CUR(6%+I%*2%,J%)A$(I%)+" " 850 FOR K=1% TO 50% : NEXT K : NEXT J% 860 GOSUB 530 : ; CUR(20%,6%)"x/t" 870 FOR Y=57% TO 10% STEP -1% 880 GOSUB 780 : IF I%=0% AND DOT(Y,15%) 930 890 IF DOT(Y,15%) ; CUR(6%+I%*2%,6%)" "CUR(7%+I%*2%,7%)" "CUR(6%+I%*2%,9%)CHR$(135%)"- "60%-10%*I%" P" : GOTO 910 900 SETDOT Y,15% : CLRDOT Y+2%,15% : NEXT Y 910 IF I%=1% K1%=1% 920 NEXT I% : K1%=0% 930 ; CUR(1%,9%)CHR$(135%)" EXTRA BASE 5000 P"CUR(3%,6%)H$CUR(4%,9%)CHR$(135%)"- 100 X SECTOR" 940 FOR I=1% TO 2500% : GOSUB 780 : NEXT I : GOTO 760 950 ; CUR(19%,X%)"d 8"CUR(20%,X%+1%)")p&" : OUT 6%,9% : FOR J=0% TO 999% : NEXT J : OUT 6%,0% : RETURN 960 ; CUR(19%,X%)" "CUR(20%,X%+1%)" " : X%=3% : Y2%=0% : GOSUB 710 : GOTO 270