>>156
ゲームはオブジェクト同士の相互作用がめちゃくちゃ多いから最低限のメソッドだけ用意して外から動かしたほうがいいとおもう

class Chara {
// params
void move(Vector const & new_pos) { pos = new_pos; }
int get_id(void) const { return id; }
};

class AI {
int target_id;
public:
void do_something(GameState & gs) {
some_info i(gs.get_some_info());
// think
gs.req_move(target_id, new_pos) ; // 実際に動けるか、どこに動くかはGameStateが判断する
}
};