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] の意味として使用している。)
【戻り値】
seedが乱数の検索条件を満たす場合、true。
それ以外の場合、false。