900*MAZE:CLS:CLEAR 910PRINT "Maze":PRINT " mps 2007" 920DIM LB(63),AU(8),G$(4) 930G$(0)="0000000000000000" 940G$(1)="0804027F020408" 950G$(2)="080808492A1C08" 960G$(3)="0810207F201008" 970G$(4)="081C2A49080808" 980RESTORE *MDAT 990READ A$ 1000FOR X=0 TO 7 1010A=VAL("&"+MID$(A$,X*2+1,2)) 1020FOR Y=0TO 7 1030Q=Y*8+X 1040IF (A AND 2^Y)>0THEN LB(Q)=1 1050NEXT:NEXT 1060FOR A=2TO 6:READ B:LB(B)=A:NEXT 1070X=6:Y=6 1080S=0:T=0:U=0 1090R=4:GOTO 2220 1100Q=Y*8+X 1110IF R=1THEN 1120IF Q-16>-1THEN AU(1)=LB(Q-16)ELSE AU(1)=0 1130IF Q-9>-1THEN AU(3)=LB(Q-9)ELSE AU(3)=0 1140AU(4)=LB(Q-8) 1150AU(5)=LB(Q-7) 1160AU(6)=LB(Q-1) 1170AU(7)=LB(Q) 1180AU(8)=LB(Q+1) 1190ENDIF 1200IF R=2THEN 1210AU(1)=LB(Q+2) 1220AU(3)=LB(Q-7) 1230AU(4)=LB(Q+1) 1240IF Q+9<64THEN AU(5)=LB(Q+9)ELSE AU(5)=0 1250AU(6)=LB(Q-8) 1260AU(7)=LB(Q) 1270AU(8)=LB(Q+8) 1280ENDIF 1290IF R=3THEN 1300IF Q+16<64THEN AU(1)=LB(Q+16)ELSE AU(1)=0 1310IF Q+9<64THEN AU(3)=LB(Q+9)ELSE AU(3)=0 1320AU(4)=LB(Q+8) 1330AU(5)=LB(Q+7) 1340AU(6)=LB(Q+1) 1350AU(7)=LB(Q) 1360AU(8)=LB(Q-1) 1370ENDIF 1380IF R=4THEN 1390AU(1)=LB(Q-2) 1400AU(3)=LB(Q+7) 1410AU(4)=LB(Q-1) 1420IF Q-9>-1THEN AU(5)=LB(Q-9)ELSE AU(5)=0 1430AU(6)=LB(Q+8) 1440AU(7)=LB(Q) 1450AU(8)=LB(Q-8) 1460ENDIF 1470IF AU(6)=1THEN 1480GCURSOR (0,7):GPRINT "01010202040408081010202040408080"; 1490GCURSOR (0,15):GPRINT G$(0);"00000000000000FF"; 1500GCURSOR (0,23):GPRINT G$(0);"00000000000000FF"; 1510GCURSOR (0,31):GPRINT "80804040202010100808040402020101"; 1520GOTO 1600 1530ENDIF 1540IF AU(6)<>1THEN 1550GCURSOR (0,7):GPRINT G$(0);G$(0);G$(0); 1560GCURSOR (0,15):GPRINT "010101010101010101010101010101FF"; 1570GCURSOR (0,23):GPRINT "808080808080808080808080808080FF"; 1580GCURSOR (0,31):GPRINT G$(0);G$(0);G$(0); 1590ENDIF 1600IF AU(4)=1THEN 1610GCURSOR (16,15):GPRINT "010101010101010101010101010101010101010101010101"; 1620GCURSOR (16,23):GPRINT "808080808080808080808080808080808080808080808080"; 1630GOTO 1900 1640ENDIF 1650IF AU(3)=1THEN 1660GCURSOR (16,7):GPRINT G$(0); 1670GCURSOR (16,15):GPRINT "01010202040408F8"; 1680GCURSOR (16,23):GPRINT "808040402020101F"; 1690GCURSOR (16,31):GPRINT G$(0); 1700GOTO 1780 1710ENDIF 1720IF AU(3)<>1THEN 1730GCURSOR (16,7):GPRINT G$(0); 1740GCURSOR (16,15):GPRINT "08080808080808F8"; 1750GCURSOR (16,23):GPRINT "101010101010101F"; 1760GCURSOR (16,31):GPRINT G$(0); 1770ENDIF 1780IF AU(5)=1THEN 1790GCURSOR (32,7):GPRINT G$(0); 1800GCURSOR (32,15):GPRINT "F808040402020101"; 1810GCURSOR (32,23):GPRINT "1F10202040408080"; 1820GCURSOR (32,31):GPRINT G$(0); 1830ENDIF 1840IF AU(5)<>1THEN 1850GCURSOR (32,7):GPRINT G$(0); 1860GCURSOR (32,15):GPRINT "F808080808080808"; 1870GCURSOR (32,23):GPRINT "1F10101010101010"; 1880GCURSOR (32,31):GPRINT G$(0); 1890ENDIF 1900IF AU(8)=1THEN 1910GCURSOR (40,7):GPRINT "80804040202010100808040402020101"; 1920GCURSOR (40,15):GPRINT "FF00000000000000";G$(0); 1930GCURSOR (40,23):GPRINT "FF00000000000000";G$(0); 1940GCURSOR (40,31):GPRINT "01010202040408081010202040408080"; 1950GOTO 2030 1960ENDIF 1970IF AU(8)<>1THEN 1980GCURSOR (40,7):GPRINT G$(0);G$(0); 1990GCURSOR (40,15):GPRINT "FF010101010101010101010101010101"; 2000GCURSOR (40,23):GPRINT "FF808080808080808080808080808080"; 2010GCURSOR (40,31):GPRINT G$(0);G$(0); 2020ENDIF 2030IF AU(4)<>1THEN 2040GCURSsOR (24,11):GPRINT G$(0); 2050GCURSsOR (24,19):GPRINT G$(0); 2060GCURSsOR (24,27):GPRINT G$(0); 2070ENDIF 2080IF AU(1)=1 AND AU(4)<>1THEN 2090GCURSOR (24,11):GPRINT "8080808080808080"; 2100GCURSOR (24,27):GPRINT "0101010101010101"; 2110ENDIF 2120IF AU(4)>1THEN GOSUB *MITEM:GOTO 1100 2130A$=INKEY$:IF A$=""THEN2130 2140IF A$="4"THEN R=R-1:IF R<1THEN R=4 2150IF A$="6"THEN R=R+1:IF R>4THEN R=1 2160IF A$<>"8"THEN 2220 2170IF AU(4)>0THEN 2220 2180IF R=1 THEN Y=Y-1 2190IF R=2 THEN X=X+1 2200IF R=3 THEN Y=Y+1 2210IF R=4 THEN X=X-1 2220GCURSOR (60,15):GPRINT G$(R); 2230LINE (68+X*4,Y*4)-(68+X*4+3,Y*4+3),B 2240GOTO1100 2250*MITEM 2260IF AU(4)=2THEN RESTORE *MD2 2270IF AU(4)=3THEN RESTORE *MD3 2280IF AU(4)=4THEN RESTORE *MD4 2290IF AU(4)=5THEN RESTORE *MD5 2300IF AU(4)=6THEN RESTORE *MD6 2310READ A$ 2320FOR K=0TO 1:FOR I=0TO7 2330A=VAL ("&"+MID$ (A$,I*2+1,2)) 2340FOR J=0TO 7 2350Q=Y*8+X 2360IF (A AND 2^J)>0THEN 2370IF K=0 THEN LINE (22+I*2,10+J*2)-(23+I*2+2,11+J*2+2),R,BF 2380IF K=1 THEN LINE (23+I*2,11+J*2)-(23+I*2+1,11+J*2+1),B 2390ENDIF 2400NEXT :NEXT :NEXT 2410Q=AU(4) 2420LOCATE 17,0 2430IF Q=2THEN S=1:PRINT "Schwert gefunden!"; 2440IF Q=3THEN T=1:PRINT "Schild gefunden!"; 2450IF Q=4THEN U=1:PRINT "Schatz gefunden!"; 2460IF Q=5THEN 2510 2470IF Q=6THEN 2700 2480FOR A=0TO 63:IF LB(A)=QTHEN LB(A)=0 2490NEXT 2500GOTO 2760 2510PRINT "BigHeino stellt sich in";:LOCATE 17,1:PRINT "den Weg!"; 2520LOCATE 17,2:PRINT "Willst Du: 1)Angreifen"; 2530LOCATE 17,3:PRINT "Oder 2)Fluechten?"; 2540A$=INKEY$:IF A$=""THEN 2540 2550IF A$="2"THEN R=3:GOTO 2770 2560IF A$<>"1"THEN 2540 2570GOSUB 2780:LOCATE 17,0 2580IF S=0THEN PRINT "Womit?";:GOTO 2760 2590IF S=1 AND T=0THEN 2600PRINT "Du hast ihn angegriffen"; 2610LOCATE 17,1:PRINT "Er konnte aber auch"; 2620LOCATE 17,2:PRINT "hauen! Und da Du"; 2630LOCATE 17,3:PRINT "schutzlos warst..."; 2640LOCATE 0,0:END 2650ENDIF 2660IF S=1 AND T=1THEN 2670PRINT "Du hast ihn besiegt!"; 2680GOTO 2480 2690ENDIF 2700PRINT "Ein Schluesselloch!"; 2710IF U=0THEN 2760 2720LOCATE 17,1:PRINT "Und der Schatz ist"; 2730LOCATE 17,2:PRINT "der Schluessel!"; 2740LOCATE 17,3:PRINT "Du bist frei!"; 2750LOCATE 0,0:END 2760IF INKEY$=""THEN 2760 2770GOSUB 2780:RETURN 2780FOR A=0TO 3:LOCATE 17,A 2790PRINT " ";:REM 23 Spaces 2800NEXT 2810RETURN 2820*MDAT:DATA "FFA38DED81B7A1FF" 2830DATA 14,49,17,12,10 2840*MD2:DATA "40E87428542A0503" 2850*MD3:DATA "0E3B558B45330E00" 2860*MD4:DATA "3A778FEEEFEF773A" 2870*MD5DATA "7886ADC1CDA18678" 2880*MD6:DATA "0000041E04000000"