`mark_on_field` は、縦に配置するか横に配置するかで異なる部分、と同じ部分を整理すると、
もっとすっきりよくなりそうですね :-) 例えば、

- 配置する位置候補を決定する処理

は縦に配置するか横に配置するかで異なるけれど、それ以外の

- マップからはみでていないかのチェック
- 他の艦とぶつかっていないかのチェック
- マップをマークする

は配置する位置候補さえ出せていれば共通して行えるかなーとか！

あと、チェックに引っかかった場合には(3.timesの中であれば) 
`redo` を使ってやりなおさせると、いーかんじに書けたりするかもです :bouquet: