DECLARE SUB LoadMap () DECLARE SUB Scroll () DECLARE SUB LoadTiles () SCREEN 13 DIM SHARED man(36), wtr(36), gra(36), tre(36), map(26, 26) DIM SHARED mx, my mx = 7: my = 4 LoadTiles LoadMap Scroll man: DATA 2,2,7,7,2,2 DATA 7,4,4,4,4,7 DATA 7,2,4,4,2,7 DATA 7,1,1,1,1,7 DATA 2,7,2,2,7,2 DATA 2,7,2,2,7,2 wtr: DATA 1,1,1,1,1,1 DATA 1,1,1,1,1,1 DATA 1,1,1,1,1,1 DATA 1,1,1,1,1,1 DATA 1,1,1,1,1,1 DATA 1,1,1,1,1,1 gra: DATA 2,2,2,2,2,2 DATA 2,2,2,2,2,2 DATA 2,2,2,2,2,2 DATA 2,2,2,2,2,2 DATA 2,2,2,2,2,2 DATA 2,2,2,2,2,2 tre: DATA 2,10,10,10,10,2 DATA 10,10,10,10,10,10 DATA 10,6,10,10,6,10 DATA 2,10,6,6,10,2 DATA 2,2,6,6,2,2 DATA 2,2,6,6,2,2 map: DATA 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 DATA 3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3 DATA 3,2,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,3 DATA 3,2,3,3,1,3,2,2,2,2,2,2,2,2,2,2,2,2,2,3 DATA 3,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3 DATA 3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3 DATA 3,2,2,2,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,3 DATA 3,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,3 DATA 3,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,3 DATA 3,2,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,3 DATA 3,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,3 DATA 3,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,3 DATA 3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3 DATA 3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3 DATA 3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3 DATA 3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3 DATA 3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3 DATA 3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3 DATA 3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3 DATA 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 SUB LoadMap RESTORE map FOR y = 1 TO 20: FOR x = 1 TO 20 READ map(x, y) NEXT: NEXT END SUB SUB LoadTiles RESTORE man FOR y = 1 TO 6: FOR x = 1 TO 6: READ c: PSET (x, y), c: NEXT: NEXT: GET (1, 1)-(6, 6), man FOR y = 1 TO 6: FOR x = 1 TO 6: READ c: PSET (x, y), c: NEXT: NEXT: GET (1, 1)-(6, 6), wtr FOR y = 1 TO 6: FOR x = 1 TO 6: READ c: PSET (x, y), c: NEXT: NEXT: GET (1, 1)-(6, 6), gra FOR y = 1 TO 6: FOR x = 1 TO 6: READ c: PSET (x, y), c: NEXT: NEXT: GET (1, 1)-(6, 6), tre CLS END SUB SUB Scroll DO FOR x = 1 TO 7: FOR y = 1 TO 7 tx = mx + (4 - x) ty = my + (4 - y) IF tx > 0 AND ty > 0 AND tx < 21 AND ty < 21 THEN IF map(tx, ty) = 1 THEN PUT (x * 6, y * 6), wtr, PSET IF map(tx, ty) = 2 THEN PUT (x * 6, y * 6), gra, PSET IF map(tx, ty) = 3 THEN PUT (x * 6, y * 6), tre, PSET END IF NEXT: NEXT PUT (24, 24), man, PSET DO g$ = INPUT$(1) IF g$ = CHR$(27) THEN END IF g$ = "w" THEN IF map(mx, my + 1) <> 1 AND map(mx, my + 1) <> 3 THEN my = my + 1 IF g$ = "s" THEN IF map(mx, my - 1) <> 1 AND map(mx, my - 1) <> 3 THEN my = my - 1 IF g$ = "a" THEN IF map(mx + 1, my) <> 1 AND map(mx + 1, my) <> 3 THEN mx = mx + 1 IF g$ = "d" THEN IF map(mx - 1, my) <> 1 AND map(mx - 1, my) <> 3 THEN mx = mx - 1 IF g$ <> "" THEN EXIT DO LOOP LOOP END SUB