コマンド: percent

概要

ある地形からパーフェクトできる確率を計算します。

基本コマンド

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

-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

-H, --hold [default: use]

ホールドの有無を指定する。

ホールドなしで探索する場合は --hold avoid を指定する。

-t, --tetfu [default: なし]

フィールドやオプションなどを指定したテト譜データを指定する。

テト譜で探索条件を指定する場合は --tetfu v115@vhAAgH のように指定する。

v115のテト譜データにのみ対応。

-P, --page [default: 1]

テト譜でロードするページを指定する。

ページを変更したい場合は --page 31 のように指定する。

-p, --patterns [default: なし]

探索ミノの組み合わせパターンを指定する。

パターンを変更したい場合は --pattern *p7 のように指定する。

-c, --clear-line [default: 4]

パフェまでに消去するライン数を指定する。

-d, --drop [default: softdrop]

ミノの操作に制限を加える。

以下から操作方法をひとつ選択する。

  • softdrop: ソフトドロップ+回転入れ(制限なし)

  • harddrop: ハードドロップのみ

  • 180: ソフトドロップ+180度回転入れ。180度回転は Nullpomino のStandard Wallkickに準拠します。

  • t-softdrop: Tミノはソフトドロップ、その他のミノはハードドロップ

-th, --threads [default: -1]

探索時に使用するスレッド数を指定します。

1 を指定したとき、シングルスレッドでの探索となります。

もし、0以下を指定した場合は、自動的に「実行環境のコア数」を設定します。

-td, --tree-depth [default: 3]

先頭のミノごとのパフェ成功確率を表示するツリーの深さを指定する。

デフォルトの場合、先頭3ミノごとのパフェ成功確率を表示する。

-fc, --failed-count [default: 100]

パフェに失敗したツモ順を表示する最大個数を指定する。

デフォルトの場合、パフェできないツモ順が存在するとき100コまで表示する。

-1 を指定した場合は、すべてのツモ順を表示するように個数が自動的に設定される。

-lp, --log-path [default: output/last_output.txt]

実行時のログを保存するファイルのパスを指定する。

-fp, --field-path [default: input/field.txt]

フィールドを定義するファイルのパスを指定する。

-pp, --patterns-path [default: input/patterns.txt]

探索の組み合わせパターンを定義するファイルのパスを指定する。

出力画面のサンプル

出力画面について、一部コメントを追加してあります (バージョンによっては一部異なる部分がありますが御了承下さい)

# 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