lionです。
ちょっと興味湧いたので。
>
> みなさんなら、オセロゲームはどのようなクラス構造にしますか?
> そして、みなさんが「石」をクラスにしたり、「プレイヤー」を
> 継承して「先手プレイヤー」を作ったりしないのだとしたら、
> そのような設計をしてしまった人を、どのように説得しますか?
自分だと
次のようになります。
[プレイヤークラス]:プレイヤーをあらわします。派生で人プレイヤー、コンピュー
タープレイヤー、ネットプレイヤーなど。
[ゲームマスタークラス]:ゲームの進行を管理します。
[データモデルクラス]:こまの状態などのデータを表すクラスです。
[盤面ビュークラス]:モデルのオブザーバーであり、データの状態を表示します。
ゲームマスターは次にどのプレイヤーに手を促すかなどのコントロールを行いま
す。でプレイヤーは次の手を返してコントローラーがルール上のチェックを行い、
正しければこまのを置き、必要ならひっくり返したりします。これはデータモデ
ルクラスに対して行います。
で、ビュークラスは表示を行うと。
ビュークラスはデータモデルだけを知っており、マスターはプレイヤーとデータ
モデル、プレイヤーはマスターとデータモデルのみを知ってます。データモデル
は何も知りません。
ルールのチェックはデータモデルに持っていったほうがいいかなとも思います。
石クラスは作りません。
でもこれが将棋やチェスだったら、こまにルールを持たしておきます。別に拡張
するわけでないのでクラスにする必要ないかもしれませんが...
自分の設計の基本は、おのおのに役割を最低限持たせる、ほかの人のことはあま
り知らない。
先手プレイヤーとかは作る人に対しては...なんでそれが必要なのかそうでな
いのか自分のポリシーのもとにとくとくと説き伏せます。
--
--
lion <****@**.****.**.**>