Index: [Article Count Order] [Thread]

Date:  Mon, 27 May 2002 09:48:41 +0900
From:  lion <****@**.****.**.**>
Subject:  [oosquare-ml:02714] Re: はじめまして
To:  ***********@***.***.*******.**.**
Message-Id:  <**************.****.****@**.****.**.**>
In-Reply-To:  <************.*******@***.*****.**.**>
References:  <**************.****.*******@***.***.*******.**.**> <************.*******@***.*****.**.**>
X-Mail-Count: 02714

lionです。
ちょっと興味湧いたので。

> 
> みなさんなら、オセロゲームはどのようなクラス構造にしますか?
> そして、みなさんが「石」をクラスにしたり、「プレイヤー」を
> 継承して「先手プレイヤー」を作ったりしないのだとしたら、
> そのような設計をしてしまった人を、どのように説得しますか?

自分だと
次のようになります。
[プレイヤークラス]:プレイヤーをあらわします。派生で人プレイヤー、コンピュー
タープレイヤー、ネットプレイヤーなど。
[ゲームマスタークラス]:ゲームの進行を管理します。
[データモデルクラス]:こまの状態などのデータを表すクラスです。
[盤面ビュークラス]:モデルのオブザーバーであり、データの状態を表示します。

ゲームマスターは次にどのプレイヤーに手を促すかなどのコントロールを行いま
す。でプレイヤーは次の手を返してコントローラーがルール上のチェックを行い、
正しければこまのを置き、必要ならひっくり返したりします。これはデータモデ
ルクラスに対して行います。
で、ビュークラスは表示を行うと。
ビュークラスはデータモデルだけを知っており、マスターはプレイヤーとデータ
モデル、プレイヤーはマスターとデータモデルのみを知ってます。データモデル
は何も知りません。
ルールのチェックはデータモデルに持っていったほうがいいかなとも思います。
石クラスは作りません。
でもこれが将棋やチェスだったら、こまにルールを持たしておきます。別に拡張
するわけでないのでクラスにする必要ないかもしれませんが...

自分の設計の基本は、おのおのに役割を最低限持たせる、ほかの人のことはあま
り知らない。

先手プレイヤーとかは作る人に対しては...なんでそれが必要なのかそうでな
いのか自分のポリシーのもとにとくとくと説き伏せます。
-- 
-- 
lion <****@**.****.**.**>