Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DEF D MAP,DIST,X,Y,W,H
- FILL DIST,99999
- DIM L1[0],L2[0]
- VAR D=0
- PUSH L2,X
- PUSH L2,Y
- DIST[X,Y]=D
- WHILE LEN(L2)
- WHILE LEN(L2) 'yes twice
- Y=POP(L2) 'note that Y is first here
- X=POP(L2)
- C MAP,DIST,L1,X+1,Y,W,H,D
- C MAP,DIST,L1,X-1,Y,W,H,D
- C MAP,DIST,L1,X,Y+1,W,H,D
- C MAP,DIST,L1,X,Y-1,W,H,D
- WEND
- SWAP L1,L2
- INC D
- WEND
- END
- DEF C MAP,DIST,LIST,X,Y,W,H,D
- IF X>=0&&Y>=0&&X<W&&Y<H&&MAP[X,Y]==0&&DIST[X,Y]==99999 THEN
- PUSH LIST,X
- PUSH LIST,Y
- DIST[X,Y]=D+1
- ENDIF
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement