PlusleSeedCalculator.Library.ICalculator インターフェース

これはプラスルツールのプラグイン作者向けに書かれた記事です。
プラグインの使い方を知りたい方は[id:plusletool:20100918:howtouse]を参照。
プラグインの作り方を知りたい方は[id:plusletool:20100918:PluginManual]も参照。

乱数計算を実際に行うインターフェースです。

HtmlPageTitle プロパティ

html出力時の結果ファイルのページタイトルを取得します。
このプロパティはhtml出力時のみ使用され、titleタグの中身として出力します。

なお このプロパティは、検索開始時に1度だけ呼ばれます。

【定義】

string HtmlPageTitle { get; }

【プロパティ値】
html出力時の結果ファイルのページタイトル(titleタグの中身)。

※ページタイトルが必要ない場合やめんどうな場合は、 return string.Empty; や return null; などとしてください。

string HtmlHeaderTitle プロパティ

html出力時の結果ファイルのヘッダを取得します。
このプロパティはhtml出力時のみ使用され、h3タグの中身として出力します。

なお このプロパティは、検索開始時に1度だけ呼ばれます。

【定義】

string HtmlHeaderTitle { get; }

【プロパティ値】
html出力時の結果ファイルのヘッダ(h3タグの中身)。

※ヘッダが必要ない場合やめんどうな場合は、 return string.Empty; や return null; などとしてください。

HtmlStyleSheet プロパティ

html出力時の結果ファイルのスタイルシートを取得します。
このプロパティはhtml出力時のみ使用され、styleタグの中身として出力します。

なお このプロパティは、結果ファイル出力時に1度だけ呼ばれます。

【定義】

string HtmlStyleSheet { get; }

【プロパティ値】
html出力時の結果ファイルのスタイルシート(styleタグの中身)。

スタイルシートが必要ない場合やめんどうな場合は、 return string.Empty; や return null; などとしてください。

Header プロパティ

結果ファイルの列ヘッダを取得します。

なお このプロパティは、検索開始時に1度だけ呼ばれます。

【定義】

PlusleSeedCalculator.Library.Result Header { get; }

【プロパティ値】
結果ファイルの列ヘッダ。

※めんどうな場合は return null; としても(プログラムの挙動的には)問題ありません(ただしその場合、表のヘッダはおかしくなる)。

Calculate メソッド

乱数を計算して検索条件に合うかを判定し、その結果を返します。

このメソッドは、初期seedと消費のループの中で繰り返し呼び出されます。

// こんな感じ
foreach ( ulong iniSeed in iniSeeds ) {
	ulong seed = iniSeed;
	// 中略(オフセット処理など)
	for ( int i=min; i<max; i++ ) {
		PlusleSeedCalculator.Library.Result result;
		bool b = calculator.Calculate(seed,result);	// ←ここで呼び出し
		// 中略(出力文字列作成など)
		seed = Util.GetNextSeed(seed);
	}
}

よって、与えられたseedに対する判定結果だけを求めれば十分です。
(次の消費、その次の消費、さらに次の消費……などをわざわざ計算しなくてもいい、という意味。)

【注意】
このメソッドから、IPlugin インターフェースインスタンスやユーザコントロールにはアクセスできません。
別スレッドで計算しているので、実行時に例外(System.InvalidOperationException)が発生します。

【定義】

bool Calculate(ulong seed,out Result result);

【パラメータ】

seed
性格値乱数値のseed (いわゆる S1[n] のこと)。
なお、「初期seed」と「seed」は異なります。
    • 初期seed : S1[0]
    • seed   : S1[n]
      (余談だが、S1[1]を初期seedと定義する流派もあり、混乱を招いている。
      そのためこのツールでは「初期seed」という単語を避け、代わりに「seed0」「seed1」をそれぞれ S1[0], S1[1] の意味として使用している。)
result
結果を格納する変数。
※この変数には、必ず何らかの値(nullでも可)を入れてください。
(何も代入しないとコンパイルエラーになります。詳細は「C# out 参照渡し」で検索。)

【戻り値】
seedが乱数の検索条件を満たす場合、true。
それ以外の場合、false。