I won't publish the whole code, but is there anything specific you want? (ex. rules, levels)
Ok, here's the segment of code I used for the player's movement. "Cursor" is a transparent object which leads the player, and "Blocks" is a group of objects that the player cannot move through
(------------ Player sliding movement ------------------) [ Player | Cursor ] -> [ > Player | ] (If the cursor is adjacent, the player moves to the cursor and deletes it) [ > Player | no Blocks | ] -> [ > Player | | Cursor ] again (If the player moves, and nothing blocks it, the cursor is added back) [ Cursor Blocks ] -> [ Blocks ] (When the cursor is on something that blocks the player, it is deleted) (-----------------------------------------------------)