impl'd Solver._move method to handle all situations (out of bound, chain move, portal, change facing)