キャラクターのプロパティを分けたいのですがどのように分けたらいいでしょうか?

例えば、一つのキャラクターの各種パラメータ変数や移動・アクション・イベントメソッドなどをキャラクタークラスとして
まとめるか、

移動は移動用としてのファイルとクラスを作って
それぞれ敵・味方・ユーザーからの要求にレスポンスして行く形での設計なのかで迷っています。

class chara{
int hp,mp,exp,movepoint....;
public:
charamove_x(){}
charamove_y(){}
}
みたいにするか
もしくはcharaという構造体で
move_x_object(chara);
などとすればいいのか