ある地形からパーフェクトできる確率を計算します。
java -jar sfinder.jar percent --tetfu v115@9gE8DeG8CeH8BeG8CeA8JeAgH --patterns *p4
solution-finderでは、必要以上にミノを入力した場合でも、最低限の組み合わせでしか探索を行いません。
たとえばパフェまでにミノ5コ必要な場合、ホールドありでは6コ、ホールドなしでは5コしか使いません。
そのため必要以上にミノを入力した場合、最終的に表示される確率が期待通りとならない可能性があります。
その場合、画面上に Warning が表示されますのでご注意下さい。
short | long | default |
---|---|---|
-H |
--hold |
use |
-t |
--tetfu |
なし |
-P |
--page |
1 |
-p |
--patterns |
なし |
-c |
--clear-line |
4 |
-K |
--kicks |
srs |
-d |
--drop |
softdrop |
-th |
--threads |
-1 |
-td |
--tree-depth |
3 |
-fc |
--failed-count |
100 |
-lp |
--log-path |
output/last_output.txt |
-fp |
--field-path |
input/field.txt |
-pp |
--patterns-path |
input/patterns.txt |
ホールドの有無を指定する。
ホールドなしで探索する場合は --hold avoid
を指定する。
フィールドやオプションなどを指定したテト譜データを指定する。
テト譜で探索条件を指定する場合は --tetfu v115@vhAAgH
のように指定する。
v115のテト譜データにのみ対応。
テト譜でロードするページを指定する。
ページを変更したい場合は --page 31
のように指定する。
探索ミノの組み合わせパターンを指定する。
パターンを変更したい場合は --pattern *p7
のように指定する。
パフェまでに消去するライン数を指定する。
適用する回転法則を指定する。
以下のいずれかの方法でキックの定義を読み込んでください。 複数の解釈ができる値を指定した場合は、番号が小さいものを優先的に読み込みます。
- SRS(デフォルト)を読み込む
--kicks srs
or --kicks default
- 作業ディレクトリから
kicks/ファイル名.properties
にあるファイルを読み込む
--kicks @ファイル名
or --kicks +ファイル名
- 作業ディレクトリから任意のファイルを読み込む
e.g. (絶対パス) --kicks /Users/../srs.properties
or (相対パス) --kicks ../srs.properties
- JARファイルから相対的な位置にあるファイルを読み込む
e.g. --kicks kicks/srs.properties
(作業ディレクトリに依存しない)
なお、kicksファイルのフォーマットは :doc:`../inputs` を参照してください。
ミノの操作に制限を加える。
以下から操作方法をひとつ選択する。
- softdrop: ソフトドロップ+回転入れ(制限なし)
- harddrop: ハードドロップのみ
- 180 (softdrop180): ソフトドロップ+180度回転入れ(使用するには、180度回転に対応したkicksを選択する必要があります)
- t-softdrop: Tミノはソフトドロップ、その他のミノはハードドロップ
探索時に使用するスレッド数を指定します。
1 を指定したとき、シングルスレッドでの探索となります。
もし、0以下を指定した場合は、自動的に「実行環境のコア数」を設定します。
先頭のミノごとのパフェ成功確率を表示するツリーの深さを指定する。
デフォルトの場合、先頭3ミノごとのパフェ成功確率を表示する。
パフェに失敗したツモ順を表示する最大個数を指定する。
デフォルトの場合、パフェできないツモ順が存在するとき100コまで表示する。
-1 を指定した場合は、すべてのツモ順を表示するように個数が自動的に設定される。
実行時のログを保存するファイルのパスを指定する。
フィールドを定義するファイルのパスを指定する。
探索の組み合わせパターンを定義するファイルのパスを指定する。
出力画面について、一部コメントを追加してあります (バージョンによっては一部異なる部分がありますが御了承下さい)
# Setup Field XXXXXX____ XXXXXX____ XXXXXX____ XXXXXX____ XXXXXX____ XXXXXX____ XXXXXXXX__ XXXXXXXX__ # Initialize / User-defined Max clear lines: 8 Searching patterns: [TIJLSZO]p7 # Initialize / System Available processors = 8 Need Pieces = 7 ← パフェに必要なミノ数 # Enumerate pieces Piece pop count = 7 ← 1度の探索で使用するミノ個数。ミノに余裕があれば、ホールドのために Need Pieces + 1 となる。 Searching pattern size (duplicate) = 5040 ← パターン定義ファイルを基に生成されたパターン数。ミノ順が重複して登録されている可能性あり Searching pattern size ( no dup. ) = 5040 ← 実際に探索するミノ順の総数。ミノ順は重複しない # Search -> Stopwatch start -> Stopwatch stop : avg.time = 4137 ms [1 counts] ← 探索にかかったミリ秒 # Output success = 99.84% (5032/5040) ← パフェ成功確率。カッコ内は 成功数/全探索数 Success pattern tree [Head 3 pieces]: ← 先頭のミノごとのパフェ成功確率 * -> 99.8 % ∟ T -> 99.6 % ∟ TI -> 99.2 % ∟ TIL -> 95.8 % ∟ TIJ -> 100.0 % ∟ TIS -> 100.0 % ∟ TIZ -> 100.0 % ∟ TIO -> 100.0 % ∟ TL -> 99.2 % ∟ TLI -> 100.0 % ∟ TLJ -> 95.8 % ∟ TLS -> 100.0 % ∟ TLZ -> 100.0 % ∟ TLO -> 100.0 % ... 省略 ... ∟ OS -> 100.0 % ∟ OST -> 100.0 % ∟ OSI -> 100.0 % ∟ OSL -> 100.0 % ∟ OSJ -> 100.0 % ∟ OSZ -> 100.0 % ∟ OZ -> 100.0 % ∟ OZT -> 100.0 % ∟ OZI -> 100.0 % ∟ OZL -> 100.0 % ∟ OZJ -> 100.0 % ∟ OZS -> 100.0 % ∟ OS -> 100.0 % ∟ OST -> 100.0 % ∟ OSI -> 100.0 % ∟ OSL -> 100.0 % ∟ OSJ -> 100.0 % ∟ OSZ -> 100.0 % ∟ OZ -> 100.0 % ∟ OZT -> 100.0 % ∟ OZI -> 100.0 % ∟ OZL -> 100.0 % ∟ OZJ -> 100.0 % ∟ OZS -> 100.0 % ------------------- Fail pattern (Max. 100) ← パフェができなかったパターンを表示 (デフォルトで最大100個まで) [T, I, L, J, S, O, Z] [T, L, J, O, Z, I, S] [T, S, L, O, Z, J, I] [S, T, L, O, Z, J, I] [L, T, J, O, Z, I, S] [J, I, S, T, O, L, Z] [I, J, S, T, O, L, Z] [I, T, L, J, S, O, Z] # Finalize done