斜め移動で処理を作るんじゃなくて、縦移動と横移動を合わせて使い回したらどうだろうか