> まずこんな動作させたら、このメソッドを使うユーザープログラマが混乱するよね

え?なんで?wwww

相手に最適な攻撃をするのは、当たり前の話だけど
もちろん、相手(引数)の情報を知らないならば
有効そうな攻撃をするしか無いけどね。

同じ戦うでも、知性によってどういう攻撃をするかは変わる。