Rewrite shiftLeft and shiftRight, fix fillEmptyTile