step 関数を変更　移動先を決めてチェックしてから step するのではなく、とりあえず移動先に step してダメなら return に変更。