MPL Bytecode Compiler Code
Micro Programming Language - A Portable Language for Micro Computers
Status: Beta
Brought to you by:
buzzphp
/* MAZE SOLVING - MPL VERSION HTTPS://ROSETTACODE.ORG/WIKI/MAZE_SOLVING#C */ ##LIBHDR MAZE=0 WALK(X,Y) [ MAZE!Y%X=='*S' ? [ MAZE!Y%X='**'; WALK(X,Y-1); WALK(X,Y+1); WALK(X-2,Y); WALK(X+2,Y); MAZE!Y%X='*S' ] : MAZE!Y%X=='E' ? [ Y=0; Y<VLEN(MAZE) @ WRITEF("%S*N",MAZE!Y++) ] ] SOLVE(;X,Y) [ Y=0; Y < VLEN(MAZE) @ [ (X=SCHR(MAZE!Y,'S')) ? [ MAZE!Y%X='*S'; WALK(X,Y); =0 ]; ++Y ] ] .() [ (MAZE=VGET("XMAZE.TXT")) ? [ SOLVE(); WEND(MAZE) ] : WRITES("MAZE FILE NOT FILE*N"); WRITEF("*NMEMORY LEAK = %N*N", VUSE()); 0 ]