>歩 と 飛 を別クラスにするのに違和感あるなら
>シューティングゲームで
>弾 と 敵 と プレイヤー を別クラスにすることにも違和感を持たないとおかしい

別におかしいとは思わない
なぜなら将棋の駒は状態を持たないから
そこがシューティングゲームと違う
状態を持たないから定数で十分
定数で十分なものをわざわざクラスにするにはそれ相応のメリットが必要
クラスにするほうがイレギュラー
普通プログラマは定数を好む、安くて速くて旨いから

駒.moveで移動するといっても、どこに移動するんですかっていう話
また、その前に、沢山あるうち、どの駒を動かすんですかっていう話
そういうのは結局俯瞰的に判断しなければならない
駒単独でどうこうなるものではない
それに将棋は評価関数で局面を評価しなければならないわけだが
そのためには、どのマスに何があるのか把握しなければならない
実行時型情報を使うんですか?
それとも駒の種類を表すenum値を返すメソッドを作るんですか?
それなら初めから駒を定数で表現しておけばよい
どうせ、状態を持たないのだから