1 BORDER 1: PAPER 0: INK 7: CLS : POKE 23658,8: POKE 23609,80 3 REM \#020\#001**** ZX STROGGLER ****\#020\#000 10 CLS : PRINT #1;"\* 1984 YT2FSG Goran Stankovic" 20 LET Nmax=48 30 DIM d(32,22) 100 GO SUB 2200 110 GO SUB 2100 140 LET f=1: PRINT AT y-1,x-1;CHR$ 145 150 LET a$=INKEY$ 155 IF a$="O" THEN GO TO 200 160 IF a$="P" THEN GO TO 250 165 IF a$="Q" THEN GO TO 300 170 IF a$="A" THEN GO TO 350 175 IF a$=CHR$ 32 THEN GO TO 1000 180 GO TO 150 200 LET f=1: LET mx=x: LET x=x-1: IF x<1 THEN LET x=1: GO TO 240 210 IF d(x,y)=20 THEN LET d(x,y)=40: INK 4: PRINT AT y-1,x-1;CHR$ 146: INK 7: LET x=mx: GO TO 240 220 IF d(x,y)>=10 AND d(x,y)<=80 THEN LET x=mx: GO TO 240 230 PRINT AT y-1,x-1;CHR$ 145;AT y-1,mx-1;CHR$ 32: GO TO 150 240 PRINT AT y-1,x-1;CHR$ 145 245 GO TO 150 250 LET f=2: LET mx=x: LET x=x+1: IF x>32 THEN LET x=32: GO TO 290 260 IF d(x,y)=20 THEN LET d(x,y)=30: INK 4: PRINT AT y-1,x-1;CHR$ 145: INK 7: LET x=mx: GO TO 290 270 IF d(x,y)>=10 AND d(x,y)<=80 THEN LET x=mx: GO TO 290 280 PRINT AT y-1,x-1;CHR$ 146;AT y-1,mx-1;CHR$ 32: GO TO 150 290 PRINT AT y-1,x-1;CHR$ 146 295 GO TO 150 300 LET f=3: LET my=y: LET y=y-1: IF y<1 THEN LET y=1: GO TO 340 310 IF d(x,y)=20 THEN LET d(x,y)=60: INK 4: PRINT AT y-1,x-1;CHR$ 148: INK 7: LET y=my: GO TO 340 320 IF d(x,y)>=10 AND d(x,y)<=80 THEN LET y=my: GO TO 340 330 PRINT AT y-1,x-1;CHR$ 147;AT my-1,x-1;CHR$ 32: GO TO 150 340 PRINT AT y-1,x-1;CHR$ 147 345 GO TO 150 350 LET f=4: LET my=y: LET y=y+1: IF y>22 THEN LET y=22: GO TO 390 360 IF d(x,y)=20 THEN LET d(x,y)=50: INK 4: PRINT AT y-1,x-1;CHR$ 147: INK 7: LET y=my: GO TO 390 370 IF d(x,y)>=10 AND d(x,y)<=80 THEN LET y=my: GO TO 390 380 PRINT AT y-1,x-1;CHR$ 148;AT my-1,x-1;CHR$ 32: GO TO 150 390 PRINT AT y-1,x-1;CHR$ 148 395 GO TO 150 999 REM 1000 LET fx=x: LET fy=y 1010 IF f=1 THEN LET gx=-1: LET gy=0: GO TO 1100 1020 IF f=2 THEN LET gx=1: LET gy=0: GO TO 1150 1030 IF f=3 THEN LET gy=-1: LET gx=0: GO TO 1200 1040 IF f=4 THEN LET gy=1: LET gx=0: GO TO 1250 1050 GO TO 150 1100 LET rx=fx: LET ry=fy: LET fx=fx-1: IF fx<1 THEN GO TO 1300 1110 IF d(fx,fy)=10 OR d(fx,fy)=20 THEN GO TO 1300 1120 IF d(fx,fy)>=30 AND d(fx,fy)<=80 THEN GO TO 1600 1130 LET d(fx,fy)=100: PRINT AT fy-1,fx-1;CHR$ 151 1135 IF d(rx,fy)=100 THEN LET d(rx,fy)=0: PRINT AT fy-1,rx-1;CHR$ 32 1140 GO TO 1100 1150 LET rx=fx: LET ry=fy: LET fx=fx+1: IF fx>32 THEN GO TO 1300 1160 IF d(fx,fy)=10 OR d(fx,fy)=20 THEN GO TO 1300 1170 IF d(fx,fy)>=30 AND d(fx,fy)<=80 THEN GO TO 1600 1180 LET d(fx,fy)=100: PRINT AT fy-1,fx-1;CHR$ 151 1185 IF d(rx,fy)=100 THEN LET d(rx,fy)=0: PRINT AT fy-1,rx-1;CHR$ 32 1190 GO TO 1150 1200 LET rx=fx: LET ry=fy: LET fy=fy-1: IF fy<1 THEN GO TO 1300 1210 IF d(fx,fy)=10 OR d(fx,fy)=20 THEN GO TO 1300 1220 IF d(fx,fy)>=30 AND d(fx,fy)<=80 THEN GO TO 1600 1230 LET d(fx,fy)=100: PRINT AT fy-1,fx-1;CHR$ 152 1235 IF d(fx,ry)=100 THEN LET d(fx,ry)=0: PRINT AT ry-1,fx-1;CHR$ 32 1240 GO TO 1200 1250 LET rx=fx: LET ry=fy: LET fy=fy+1: IF fy>22 THEN GO TO 1300 1260 IF d(fx,fy)=10 OR d(fx,fy)=20 THEN GO TO 1300 1270 IF d(fx,fy)>=30 AND d(fx,fy)<=80 THEN GO TO 1600 1280 LET d(fx,fy)=100: PRINT AT fy-1,fx-1;CHR$ 152 1285 IF d(fx,ry)=100 THEN LET d(fx,ry)=0: PRINT AT ry-1,fx-1;CHR$ 32 1290 GO TO 1250 1300 IF d(rx,ry)=100 THEN LET d(rx,ry)=0: PRINT AT ry-1,rx-1;CHR$ 32 1310 GO TO 150 1599 REM 1600 IF d(rx,ry)=100 THEN LET d(rx,ry)=0: PRINT AT ry-1,rx-1;CHR$ 32 1610 LET n=n-1: LET d(fx,fy)=0 1620 INK 2: PRINT AT fy-1,fx-1;CHR$ 153: BEEP .1,20: FOR i=0 TO 20: NEXT i 1630 INK 3: PRINT AT fy-1,fx-1;CHR$ 154: FOR i=0 TO 20: NEXT i 1640 INK 7: PRINT AT fy-1,fx-1;CHR$ 32 1650 IF n>0 THEN GO TO 150 1660 FLASH 1: PRINT AT 11,8;" B R A V O ! " : 1700 FLASH 0: PRINT #1;" ": PRINT #1;" Pogodili ste = ";Nmax-n;" " 1710 PRINT #1;" Jos jednom? (D/N) " 1720 IF INKEY$="D" THEN GO TO 10 1730 IF INKEY$="N" THEN STOP 1740 GO TO 1720 1750 STOP 1999 REM 2000 DATA 1,1,20,2,6,16,3,4,4,4,4,4,5,4,4,6,4,4,7,5,8,8,5,8 2100 CLS : PRINT #1;" O < P > Q ^ A v Space" 2110 BRIGHT 1 2120 RESTORE 2000: FOR j=1 TO 8: READ n,c,k: FOR l=1 TO k 2130 LET x=INT (RND*32)+1: LET y=INT (RND*22)+1: IF d(x,y)<>0 THEN GO TO 2130 2140 LET d(x,y)=n*10: INK c: PRINT AT y-1,x-1;CHR$ (142+n): NEXT l: NEXT j 2150 LET x=INT (RND*32)+1: LET y=INT (RND*22)+1: IF d(x,y)<>0 THEN GO TO 2150 2160 INK 7: FOR i=53 TO 49 STEP -1: PRINT AT y-1,x-1;CHR$ (i): FOR j=1 TO 60: NEXT j: NEXT i 2165 LET n=Nmax 2170 RETURN 2199 REM 2200 RESTORE 2240: LET a=USR "A" 2225 FOR i=0 TO 87: READ b 2230 POKE a+i,b: NEXT i 2240 DATA 60,126,255,255,255,255,126,60 2245 DATA 31,4,14,255,255,14,4,31 2250 DATA 248,32,112,255,255,112,32,248 2255 DATA 24,24,24,153,189,255,189,153 2260 DATA 153,189,255,189,153,24,24,24 2265 DATA 231,66,255,255,255,255,66,231 2270 DATA 189,255,189,60,60,189,255,189 2275 DATA 0,0,0,60,60,0,0,0 2280 DATA 0,0,24,24,24,24,0,0 2290 DATA 34, 148, 89, 46, 116, 154, 41, 68 2300 DATA 137, 32, 2, 128, 1, 64, 4, 145 2310 RETURN