+*+*Greed in Smalltalk Version 0.8*+*+ Copyright(C) 1998 Masashi Umezawa 1.概要: GreedGameのSmalltalkによる実装。 詳しくは、「オブジェクトレッスン」(トッパン、ISBN 4-8101-8588-5)を参照のこと。 2.対応環境: VisualWorks2.5.* 、VisualWorks 3.0のサポートするプラットフォーム 3.必要ソフトウェア: VisualWorks2.5.*(or 3.0) 4.構成: ReadMe.txt -> このファイル install.st -> Greed in Smalltalkインストールスクリプト Greed-Entity.st -> Greedゲームエンティティクラス群 Greed-Control.st -> Greedゲームコントロールクラス群 Greed-Boundary.st -> Greedゲームバウンダリクラス群 Greed-Facade.st -> Greedゲーム起動用ファサード catalog.zip -> 国際化対応メッセージカタログファイル 5.インストール方法: Greed in Smalltalkはイベント送信メカニズムを使っています。 インストールの前にはVisualWorksのイベント送信メカニズムアドオンをインストールして おかなければなりません。 (2.5.*の場合は、$VISUALWORKS_HOME\extras\sysdeps.stをファイルイン、 3.0の場合は $(VISUALWORKS)\parcels\SysDeps.pclをパーセルインします。) この後install.stをファイルインします。 表示を日本語にする場合にはメッセージカタログファイルを展開する必要があります。 catalog.zipを展開し、メッセージカタログの検索パスにコピーするか、新規に検索 パスを加える設定をVW側で行ってください)。 6.説明: Greedとは、OOPSLA'89で行われたオブジェクト指向プログラミングコンテストで 行われた課題です。オブジェクト指向でのよりよいモデリング、設計、実装の形を簡単な 例題で示そうというのが目的です。 今回は、私が一からモデリング、設計、実装を行いました。回答の一例になっています。 Smalltalkのエレガントな特徴が現れていれば幸いです。 デザイン上の工夫は以下のようになっています。 ・バウンダリとコントロール、エンティティの明確な分離を行う。 ・コントロール部分における自律的モデルの使用。 ・コントロールが一人でがんばるのではなく、複数コントロールの協調により ゲームが進行する。 ・イベント送信機構による、バウンダリとコントロール、エンティティの明確な分離。 ・Boundary <- Control <- Entity の参照は極力さける。 ・HotSpotの切り出し。 ・GreedGameのルールは様々に変化し得るものとして想定し、ルール部分を柔軟に カスタマイズ可能となるように作成する。 Greed start で立ち上がります。お楽しみください。 ゲームとしての面白さを出すため、終了条件の点数を5000から3000、一回目の降りの破産の 条件を300点から200点にしてあります。このあたりは柔軟に変更できるようにクラス設計を 行ってあります。 7.備考: Greed in Smalltalkはフリーウェアです。 Free Software Foundation が公表した GNU 一般公有使用許諾の「バージョン 1」あるいは それ以降の各バージョンの中からいずれかを選択し、そのバージョンが定める条項に従って 本プログラムを再頒布または変更することができます。 バグレポートは歓迎いたしますが、サポートは一切行えませんのでご了承ください。 mail: umejava@mars.dtinet.or.jp 8. 変更履歴: 1998 09/01 Greed in Smalltalk Version 0.7 公開 (pre release) 1998 09/04 Greed in Smalltalk Version 0.8 公開 +*+*Greed in Smalltalk Version 0.8*+*+