prevent useless moves [TODO] diagonal useless moves