クラスの説明
このページでは,開発者向けに,クラスの説明をします.
本プログラムには多くのクラスがありますが,思考ルーチンのみを作成したい人にとって
重要なクラスはさほど多くはありません.ここでは,重要性も含めて,各クラスを簡単に説明します.
詳しくはコードのコメントを参照してください.
基幹クラス
これらは思考ルーチン作成のために理解が欠かせないクラスです.
- Map
- 盤上の地形やユニットなど“状態”を保持するクラスです.
- あるマスの地形,あるマスのユニット,全移動可能ユニットのリストなどを得る様々な関数があります.
- Unit
- 1つのユニットを表すクラスです.
- ID,現在の位置,HP,ユニット種類,行動済みかどうか,などを得る関数があります.
- Action
- 1ユニット分の行動を表すクラスです.
- 思考ルーチンは,Mapオブジェクトをもらって,Actionオブジェクトを返すように設計します.
- 行動するユニットのID,行動タイプ,移動先,攻撃ユニットなどを指定する多くのコンストラクタがあります.
- Spec
- ユニットの性能を表すクラスです.Unitはその種類(fighter, panzerなど)ごとにSpecを持っています.
- 攻撃力,移動力などを得るには Spec を参照します.
思考ルーチン関係
- Player
- 思考ルーチンのインタフェースです.
- 新しい思考ルーチンを作る際には,名前を返す関数と,行動を返す関数を作成する必要があります.
- PlayerList
- 選択可能にする思考ルーチンのリストを持つクラスです.
- 新しい思考ルーチンを作成した場合,ここに登録して選択可能にしてください.
- また,デフォルトのプレイヤを指定することもできます.
- AI関係のツール
ツールなど
これらは利用法のみを分っていれば十分なクラスです.
- Consts
- Logger
- 情報の表示や保存を容易にするクラスです.
- 使う必要はありませんが,思考ルーチンのデバッグに役立つと思います.
- MersenneTwister
- 乱数生成のためのクラスです.特に意識する必要はありません.
- DamageCalculator
- あるユニットがあるユニットを攻撃したときに,与えるダメージ・反撃ダメージを計算するクラスです.
- 多くのタイプの引数で利用できるため,思考ルーチンを書く際に便利です.
- RangeController
- あるユニットの移動可能範囲,攻撃可能敵ユニットなどを返す関数があるクラスです.
- 思考ルーチンを書く際に便利です.
ゲーム実装に関するもの
これらは,勿論重要なクラスなのですが,思考ルーチンを作成するために参照する必要は殆どありません.
- MainForm
- 主画面のクラスです.主にマウス等のイベントを処理します.
- DrawManager
- 画像ファイルの管理,マップの表示などを担当します.
- SGFManager
- GameManager
- HumanPlayer
- Playerインタフェースの実装で,人間プレイヤの行動をGameManagerに送ります.
JAIST ターン制戦略ゲーム 学術用基盤プロジェクト