1 REM ++++++++++++++++++++++++++++++++
2 REM ! Program .... AMAZING
3 REM ! Utg}va 1.0 83-06-01
4 REM ! av (c) Martin Adrian
7 REM ! Minne 16 Kbytes
8 REM ! Ins{nt av 2970
9 REM ++++++++++++++++++++++++++++++++
10 REM
11 REM Screened by C R LERIN.
12 REM
19 RANDOMIZE
20 DEFFNA%=ABS(M%-K%)+2%
30 ; CHR$(12%)CUR(10%,0%)"SV]RIGHETSGRAD(1-13)"; : INPUT D%
40 IF D%<1% OR D%>13% THEN 30 ELSE K1%=2% : D%=D%+10% : S1%=2%*D%+1%
50 ; CHR$(12%)TAB(10%)CHR$(151%)"f&&&&&&&&&f"
60 ; TAB(10%)CHR$(151%)"9 AMAZING 9"CHR$(135%)"by Martin Adrian"
70 ; TAB(10%)CHR$(151%)"fdddddddddf"
80 ; : ; "Ett annorlunda labyrint-spel."
90 ; : ; "I detta spelet ser man inte labyrinten"
100 ; "uppifr}n utan man befinner sig inne"
110 ; "i den."
120 ; " Du har valt sv}righetsgrad"D%-10%"."
130 ; "Det inneb{r att du kommer att f} en"
140 ; "labyrint med storleken"S1%" *"S1%" rutor."
150 ; "till din hj{lp har du f}tt"K1%" st kartor"
160 ; : ; : ; "<-"TAB(12)"Vrid dig }t v{nster"
170 ; "->"TAB(12%)'-""- -""- h|ger'
180 ; "Mellanslag Flytta dig 1 steg framm}t"
190 ; "O (Bokstav) V{nd dig helt om"
200 ; "K"TAB(12%)"Visa en karta"
210 ; "G"TAB(12%)"Ge upp"
220 ; : ; "Obs kartan {r endast framme en kort tid"
230 DIM A%(3%),B%(3%),C%(3%),E%(4%),N%(2%)
240 DIM Q%(D%*D%+1%),G%(D%*D%)
250 DIM Z%(S1%,S1%)
260 E%(1)=1% : E%(2)=2% : E%(3)=4% : E%(4)=8%
270 R%=-1% : F%=-1% : M%=0% : L%=2%
280 FOR K%=1% TO D%*D% : G%(K%)=0% : NEXT K%
290 N%(1%)=3%+7*RND : N%(2%)=D%*D%-4%-7*RND
300 G%(N%(1%)+1%)=2% : G%(N%(2%)+1%)=24%
310 P%=N%(1%) : GOSUB 540 : P%=N%(2%) : GOSUB 540
320 L%=3%-L% : P%=N%(L%)
330 GOSUB 560 : IF P%<0% THEN 350
340 GOSUB 540 : GOTO 360
350 GOSUB 550 : IF P%<0% THEN 370
360 N%(L%)=P% : GOTO 320
370 FOR K%=1% TO D%
380 FOR L%=1% TO D%
390 T%=G%(D%*(K%-1%)+L%)/2%
400 Z%(2%*K%-1%,2%*L%-1%)=1%
410 IF T%=2%*(T%/2%) THEN Z%(2%*K%-1%,2%*L%)=1%
420 NEXT L% : Z%(2*K%-1%,2%*L%-1%)=1%
430 FOR L%=1% TO D%
440 T%=G%(D%*(K%-1%)+L%)/4%
450 IF T%=2%*(T%/2%) THEN Z%(2%*K%,2%*L%-1%)=1%
460 NEXT L% : Z%(2%*K%,2%*L%-1%)=1%
470 NEXT K%
480 P%=Q%(2%) : T%=P%-D%*(P%/D%)
490 FOR L%=1% TO D%
500 Z%(2%*K%-1%,2%*L%-1%)=1%
510 IF NOT L%=T% THEN Z%(2%*K%-1%,2%*L%)=1%
520 NEXT L% : Z%(2%*K%-1%,2%*L%-1%)=1%
530 GOTO 790
540 R%=R%+1% : Q%(R%+1%)=P% : RETURN
550 F%=F%+1% : P%=-1% : IF F%<=R% THEN P%=Q%(F%+1%) : RETURN
560 K%=0%
570 T%=P%+1% : IF T%/D%<>P%/D% THEN 590
580 S%=1% : GOSUB 730
590 T%=P%-D% : IF T%<0% THEN 610
600 S%=2% : GOSUB 730
610 T%=P%-1% : IF T%/D%<>P%/D% THEN 640
620 IF T%<0% THEN 640
630 S%=3% : GOSUB 730
640 T%=P%+D% : IF T%>=D%*D% THEN 660
650 S%=4% : GOSUB 730
660 IF K%<>0% THEN 670 : P%=-1% : RETURN
670 K%=1%+FIX(K%*RND) : T%=C%(K%)
680 IF G%(T%+1%)<>0% THEN M%=1%
690 IF M%=0% THEN B%(K%)=B%(K%)+16%*(G%(P%+1%)/16%)
700 G%(P%+1%)=G%(P%+1%)+A%(K%)
710 G%(T%+1%)=G%(T%+1%)+B%(K%)
720 P%=T% : RETURN
730 IF G%(T%+1%)=0% THEN 760
740 IF M%<>0% THEN RETURN
750 IF G%(P%+1%)/16%=G%(T%+1%)/16% THEN RETURN
760 K%=K%+1% : C%(K%)=T% : A%(K%)=E%(S%)
770 S%=S%+2%-4%*((S%+1%)/4%) : B%(K%)=E%(S%)
780 RETURN
790 S2%=S1% : P1%=S1% : P2%=T%*2% : R%=0% : F%=0%
800 GET A$
810 REM UTSKRIFT
820 IF F%=0% THEN GOSUB 990
830 K%=INSTR(1%,CHR$(32%,9%,8%)+"OKG",CHR$(INP(56%)-128%))
840 IF K%=0% THEN 830 ELSE F%=0%
850 IF K% THEN ON K% GOSUB 870,910,940,970,1330,1440
860 GOTO 820
870 REM MOVE
880 IF (R% AND 1%) THEN IF Z%(P1%,P2%+R%-2%) THEN F%=1% ELSE P2%=P2%+R%-2%
890 IF (R% AND 1%)=0% THEN IF Z%(P1%+R%-1%,P2%) THEN F%=1% ELSE P1%=P1%+R%-1%
900 IF P1%=S1% THEN 1410 ELSE IF P1%=0% THEN 1420 ELSE RETURN
910 REM RIGHT
920 IF P1%>0% AND P1%