function on.enterKey() if currlevel~=14 then levels={{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,4,0,0,1,0,0,0,1,0,2,0,1,0,2,0,3,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},{0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,2,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,2,0,2,2,3,0,0,1,0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0},{0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,1,1,0,1,1,1,0,0,0,0,3,0,0,0,1,2,0,1,1,0,1,0,1,0,1,0,0,0,0,1,0,0,1,1,1,1,1,0,0,1,0,1,0,1,2,2,0,1,1,0,0,1,0,0,0,0,0,0,1,4,1,0,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,1,1,1,0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,1,1,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,4,0,0,0,0,1,0,2,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1,1,1,1,1,0,1,0,2,0,0,0,2,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,2,0,1,0,1,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,2,2,2,2,0,0,0,0,0,0,0,0,0,0,1,1,4,0,0,0,1,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,0,0,0,0,1,1,0,1,0,0,0,0,0,2,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,2,2,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,2,2,2,1,0,1,1,1,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1},{0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,1,0,1,2,2,0,0,0,0,0,0,0,0,1,0,0,2,0,0,1,1,1,0,1,2,2,2,0,0,0,0,0,0,0,1,3,2,2,2,0,1,0,0,0,1,2,2,2,2,0,0,0,0,0,0,1,1,1,1,1,0,1,0,0,0,1,1,1,1,1,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,1,0,0,0,1,1,1,1,1,0,0,0,1,1,0,0,0,1,1,1,0,0,0,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,1,0,1,0,0,0,1,0,0,1,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,1,1,4,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,1,0,2,0,0,0,0,0,1,0,0,0,0,1,1,0,1,0,0,0,1,0,0,0,1,0,2,0,0,0,0,1,1,0,2,0,3,1,1,1,1,0,0,0,1,1,0,0,1,0,2,2,2,0,0,1,1,0,2,2,2,1,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,2,0,0,0,0,1,1,1,0,0,0,0,1,0,1,0,0,0,0,0,1,1,1,0,0,1,1,2,2,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,4,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,1,0,0,1,0,0,0,0,2,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,2,1,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,1,1,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,2,1,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,2,2,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,2,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,2,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,1,1,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,2,0,0,3,0,0,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},{0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,2,2,0,0,0,0,0,0,2,1,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,2,2,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,3,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1,1,4,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,2,1,0,1,0,0,0,0,1,1,2,0,0,1,1,0,0,0,1,1,1,1,0,1,0,0,0,0,1,1,1,1,1,1,1,0,0,1,1,0,0,0,0,1,1,1,0,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,2,0,0,0,0,0,0,0,2,2,1,2,0,0,0,2,2,2,0,2,1,1,0,1,0,0,1,1,0,0,1,0,0,0,1,1,1,1,1,0,0,2,1,1,1,0,1,1,0,1,1,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,0,1,1,1,0,0,1,1,0,0,0,1,1,0,0,1,1,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,1,1,4,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,2,0,0,0,1,0,1,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,1,0,0,0,0,1,2,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,2,2,1,0,0,0,0,1,2,2,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,0,2,2,2,1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0},{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,2,1,2,2,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,1,1,2,0,0,0,1,1,1,0,2,1,1,0,0,0,0,0,2,0,0,1,1,0,0,4,0,1,0,1,1,2,2,0,0,0,0,1,1,1,0,0,0,3,0,0,2,0,0,0,0,0,0,0,1,0,1,0,1,1,1,1,0,0,2,2,1,0,0,0,0,0,1,0,2,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,1,1,1,1,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,1,1,1,0,0,1,1,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,2,0,1,1,2,2,0,0,0,0,0,0,0,1,1,1,0,1,0,1,2,0,0,0,0,1,0,0,1,1,1,1,1,1,1,1,0,2,0,0,0,1,1,1,0,0,1,0,1,1,2,0,0,1,0,2,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,2,0,1,1,1,0,0,2,1,0,0,0,1,0,0,0,1,1,0,0,0,2,0,0,0,0,0,2,2,0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,1,1,0,0,0,0,1,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,0,2,2,1,0,1,1,2,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,1,1,2,1,1,1,0,1,0,0,0,0,1,0,0,0,2,2,2,0,2,0,0,0,0,0,0,0,1,1,2,1,2,1,2,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,2,2,2,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,4,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,3,0,0,0,0,0,0,1,1,2,0,2,0,2,0,2,0,2,0,2,0,2,1,1,0,2,0,2,0,2,0,2,0,2,0,2,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},{1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,3,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,4,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,0,2,2,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,2,2,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,0,2,2,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,2,2,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,0,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}} leveldata={{17,8,20,9},{19,6,22,9},{10,6,19,10},{18,9,24,15},{13,8,22,13},{14,7,21,13},{18,10,24,14},{21,15,27,17},{15,7,20,16},{15,11,27,18},{14,4,29,18},{8,4,15,11},{2,3,12,18}} level=levels[currlevel] guyx=leveldata[currlevel][1] guyy=leveldata[currlevel][2] maxx=leveldata[currlevel][3] maxy=leveldata[currlevel][4] win=false box=false platform.window:invalidate() end end function on.tabKey() currlevel=1 on.enterKey() end on.tabKey() function on.paint(gc) if win then message="Congratulations! You Won!" message2="Press \"Enter\" to Play Level "..currlevel message3="Press \"Tab\" to go back to Level 1" message4="Well Done! You beat all 13 Levels!" gc:drawString(message,(platform.window:width()-gc:getStringWidth(message))/2,platform.window:height()/2, "middle") if(currlevel~=14) then gc:drawString(message2,(platform.window:width()-gc:getStringWidth(message2))/2,platform.window:height()-gc:getStringHeight(message3),"bottom") else gc:drawString(message4,(platform.window:width()-gc:getStringWidth(message4))/2,platform.window:height()-gc:getStringHeight(message3),"bottom") end gc:drawString(message3,(platform.window:width()-gc:getStringWidth(message3))/2,platform.window:height(),"bottom") else xd=guyx-6 if xd<1 then xd=1 end if xd+12>maxx then xd=maxx-12 end yd=guyy-4; if yd<1 then yd=1 end if yd+9>maxy then yd=maxy-9 end for a=yd,yd+9 do for z=xd,xd+12 do local n=level[a*maxx+z] local x=(platform.window:width()-13*21)/2+21*(z-xd) local y=(platform.window:height()-10*21)/2+21*(a-yd) if n==1 then gc:setColorRGB(0,0,0) gc:drawRect(x,y,20,20) gc:setColorRGB(128,0,0) gc:fillRect(x+2,y+2,18,18) elseif n==2 then gc:setColorRGB(128,0,255) gc:fillRect(x,y,20,20) gc:setColorRGB(0,0,255) gc:fillRect(x+2,y+2,16,16) gc:setColorRGB(0,255,0) gc:fillRect(x+4,y+4,12,12) gc:setColorRGB(255,255,0) gc:fillRect(x+6,y+6,8,8) gc:setColorRGB(255,128,0) gc:fillRect(x+8,y+8,4,4) elseif n==3 or n==5 then gc:setColorRGB(0,0,0) gc:drawLine(x+10,y+8,x+10,y+16) gc:drawLine(x+4,y+9,x+16,y+9) gc:drawArc(x+6,y,8,8,0,360) gc:drawArc(x+6,y+16,8,8,0,180) if n==3 then gc:drawLine(x+3,y,x+14,y) gc:drawLine(x+6,y-1,x+14,y-1) gc:drawLine(x+9,y+4,x+9,y+4) else gc:drawLine(x+6,y,x+17,y) gc:drawLine(x+6,y-1,x+14,y-1) gc:drawLine(x+11,y+4,x+11,y+4) end elseif n==4 then gc:setColorRGB(255,0,0) gc:drawRect(x,y,20,20) gc:fillRect(x+4,y+4,13,13) end end end end end function on.arrowKey(key) local dir if key == "left" then level[guyy*maxx+guyx]=3 if level[guyy*maxx+guyx-1]==4 then win=true end if level[guyy*maxx+guyx-1]==0 then level[guyy*maxx+guyx-1]=3 level[guyy*maxx+guyx]=0 if box then if level[(guyy-1)*maxx+guyx-1]==1 or level[(guyy-1)*maxx+guyx-1]==2 then level[guyy*maxx+guyx]=2 level[(guyy-1)*maxx+guyx]=0 box=false else level[(guyy-1)*maxx+guyx]=0 level[(guyy-1)*maxx+guyx-1]=2 end end guyx=guyx-1 while level[(guyy+1)*maxx+guyx]==0 do level[guyy*maxx+guyx]=0 guyy=guyy+1 level[guyy*maxx+guyx]=3 if level[(guyy+1)*maxx+guyx]==4 then win=1 end if box then level[(guyy-2)*maxx+guyx]=0 level[(guyy-1)*maxx+guyx]=2 end end end elseif key == "right" then level[guyy*maxx+guyx]=5 if level[guyy*maxx+guyx+1]==4 then win=true end if level[guyy*maxx+guyx+1]==0 then level[guyy*maxx+guyx+1]=5 level[guyy*maxx+guyx]=0 if box then if level[(guyy-1)*maxx+guyx+1]==1 or level[(guyy-1)*maxx+guyx+1]==2 then level[guyy*maxx+guyx]=2 level[(guyy-1)*maxx+guyx]=0 box=false else level[(guyy-1)*maxx+guyx]=0 level[(guyy-1)*maxx+guyx+1]=2 end end guyx=guyx+1 while level[(guyy+1)*maxx+guyx]==0 do level[guyy*maxx+guyx]=0 guyy=guyy+1 level[guyy*maxx+guyx]=5 if level[(guyy+1)*maxx+guyx]==4 then win=1 end if box then level[(guyy-2)*maxx+guyx]=0 level[(guyy-1)*maxx+guyx]=2 end end end elseif key=="up" then if level[guyy*maxx+guyx]==3 then dir=-1; else dir=1; end if level[guyy*maxx+guyx+dir]==1 or level[guyy*maxx+guyx+dir]==2 then if level[(guyy-1)*maxx+guyx+dir]==4 then win=true beat=true end if level[(guyy-1)*maxx+guyx+dir]==0 and level[(guyy-1)*maxx+guyx]~=1 then level[guyy*maxx+guyx]=0; if dir==1 then level[(guyy-1)*maxx+guyx+dir]=5 elseif dir==-1 then level[(guyy-1)*maxx+guyx+dir]=3 end if box then if level[(guyy-2)*maxx+guyx+dir]==1 or level[(guyy-2)*maxx+guyx+dir]==2 then level[(guyy-1)*maxx+guyx+dir]=0 if dir==1 then level[(guyy-1)*maxx+guyx+dir]=0 elseif dir==-1 then level[(guyy-1)*maxx+guyx+dir]=0; end guyx=guyx-dir guyy=guyy+1 else level[(guyy-1)*maxx+guyx]=0 level[(guyy-2)*maxx+guyx+dir]=2 end end guyx=guyx+dir guyy=guyy-1 end end elseif key=="down" then moved=true if level[guyy*maxx+guyx]==3 then dir=-1; else dir=1; end if box then bmove=0 if level[(guyy-1)*maxx+guyx+dir]==0 then while level[(guyy+bmove)*maxx+guyx+dir]==0 do level[(guyy-1)*maxx+guyx]=0 level[(guyy+(bmove-1))*maxx+guyx+dir]=0 level[(guyy+bmove)*maxx+guyx+dir]=2 box=false moved=false bmove=bmove+1 end end if (level[guyy*maxx+guyx+dir]==1 or level[guyy*maxx+guyx+dir]==2) and moved and level[(guyy-1)*maxx+guyx+dir]==0 then level[(guyy-1)*maxx+guyx]=0 level[(guyy-1)*maxx+guyx+dir]=2 box=false end elseif not box and level[guyy*maxx+guyx+dir]==2 and level[(guyy-1)*maxx+guyx+dir]~=1 and level[(guyy-1)*maxx+guyx+dir]~=2 and level[(guyy-1)*maxx+guyx]~=1 and level[(guyy-1)*maxx+guyx]~=2 then level[guyy*maxx+guyx+dir]=0 level[(guyy-1)*maxx+guyx]=2 box=true end else return end if win then currlevel=currlevel+1 end platform.window:invalidate() end