サブコマンド: util seq

概要

入力されたパターンの * などをシーケンス(ツモ順)に展開します。

展開のほかに、ホールドによるミノの入れ替えにも対応しています。

対応している変換モードは以下の通りです。

  • pass: * などを展開だけを行う

  • forward: 指定パターンから、ホールドでミノを入れ替えてつくれる、ホールド後のシーケンスを展開する

  • backward: ホールドでミノを入れ替えると、指定パターンの形になる、ホールドの前の元のシーケンスを展開する。最終的にホールドされるため特定できないミノは * が出力されます

  • backward-and-pass backward-pass: backward と同じ処理をした後、* を7種類のミノで展開します

基本コマンド

java -jar sfinder.jar util seq -p '*!'

サンプルコマンド

代表的なサンプルコマンドをいくつか例示します。

Sの直後にZがくるツモ順 (開幕7ミノ)

java -jar sfinder.jar util seq -M pass -hh no -p *! -e 'SZ'

SがZより先にくるツモ順 (開幕7ミノ)

java -jar sfinder.jar util seq -M pass -hh no -p *! -e 'S.*Z'

Sが先頭から2番目にくるツモ順 (開幕7ミノ)

java -jar sfinder.jar util seq -M pass -hh no -p *! -e '^.S'

Sが先頭から1番目か2番目にくるツモ順 (開幕7ミノ)

java -jar sfinder.jar util seq -M pass -hh no -p *! -e '^.{0,1}?S'

Sが最後から2番目にくるツモ順 (開幕7ミノ)

java -jar sfinder.jar util seq -M pass -hh no -p *! -e 'S.$'

Tが2個含まれるツモ順 (任意のホールド+4ミノ選択)

java -jar sfinder.jar util seq -M pass -p *,*p4 -n T=2

ツモ順 TIOLJ から、ホールド1回以内で並び変えられる、ホールド後のシーケンス (4ミノ)

java -jar sfinder.jar util seq -M forward -p TIOLJ -n HOLD<=1

※ 先頭の T は、はじめからホールドにある設定です

ツモ順 TIOLJ にホールド1回以内で並び変えられる、ホールド前のシーケンス (6ミノ)

java -jar sfinder.jar util seq -M backward -p TIOLJ -n HOLD<=1

※ 出力されるシーケンスの先頭のミノは、はじめからホールドにある設定です

フィルタリングや変換処理の順番

各オプションの処理される順番は以下のようになっています。

  • パターンをモードに従って展開

  • ホールドの回数によるフィルタリング (-n オプション)

  • シーケンスサイズの変換処理 (-l オプション)

  • ミノの個数によるフィルタリング (-n オプション)

  • 正規表現によるフィルタリング (-e オプション)

  • シーケンスの出力

オプション一覧

short

long

default

-p

--patterns

なし

-M

--mode

pass

-l

--length

-1

-d

--distinct

yes

-e

--expression

なし

-ne

--not-expression

なし

-n

--num

なし

-hh

--head-hold

yes

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

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

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

-M, --mode [default: pass]

入力されたパターンをどのように変換するかモードを指定する。

対応しているモードは以下の通り。

  • pass: * などを展開だけを行う

  • forward: 指定パターンから、ホールドでミノを入れ替えてつくれる、ホールド後のシーケンスを展開する

  • backward: ホールドでミノを入れ替えると、指定パターンの形になる、ホールドの前の元のシーケンスを展開する。最終的にホールドされるため特定できないミノは * が出力されます

  • backward-and-pass backward-pass: backward と同じ処理をした後、* を7種類のミノで展開します

-l, --length [default: -1]

変換後のシーケンスの長さを指定します。

-1 を入力したとき、以下の値が自動的に設定されます。

  • pass: 入力されたパターンの長さと同じ

  • forward: 入力されたパターンの長さ - 1

  • backward backward-and-pass: 入力されたパターンの長さ + 1

-d, --distinct [default: yes]

変換後のシーケンスの重複を取り除くか指定します。

yes を指定した場合、重複したシーケンスを取り除かれます。

-e, --expression [default: なし]

変換後のシーケンスに対して、条件が満たしているものだけを取り出します。

条件は正規表現で指定します。

なお -ne を同時に指定した場合、2つのオプションを満たすもの(AND)が取り出されます。

-ne, --not-expression [default: なし]

変換後のシーケンスに対して、条件が満たさないものだけを取り出します。

条件は正規表現で指定します。

なお -e を同時に指定した場合、2つのオプションを満たすもの(AND)が取り出されます。

-n, --num [default: なし]

変換後のシーケンスに対して、ミノの個数やホールドの回数の条件を満たすものだけを取り出します。

条件は T==0 1<Hold のように指定します。条件を複数個同時に指定する場合は、スペースでつなげてください。

ex) S=1 Z=1 0<Hold

  • 対象: T I O L J S Z

  • 演算子: == (=も可) != < <= > >=

-hh, --head-hold [default: yes]

パターン( forward モード)・出力されるシーケンス( backward モード) の先頭のミノを、ホールドの初期値として扱うかどうかを指定します。 この設定値は、ホールドの回数に影響を与えます。

たとえば LZSO というシーケンスがあるとき、

  • --hh yes を指定すると、L``がホールドされている状態で ``Z を受け取るところから開始される

  • --hh no を指定すると、何もホールドされていない状態で L を受け取るところから開始される

となります。