h-docs

Search

Search IconIcon to open search

Solution Finder: Path

Solution Finder’s Path command outputs all the ways to get a perfect clear from a specified field, given a specified pattern. The terminal output is written into a file in the specified log path, and a file containing the path data is generated in the specified output base.

1
java -jar sfinder.jar path --tetfu <fumen> --patterns <pattern>
1
java -jar sfinder.jar path -t <fumen> -p <pattern>

Input Parameters

Specified Field (--tetfu, -t): the fumen code that sfinder begins working with. If not specified, the file field.txt in the input folder is used.

Patterns (--patterns, -p): Determines the queues checked by sfinder. Read more about this parameter here.

OptionHarddropSoftdrop90 spins180 spinsMust also do:
harddrop-
softdrop
180
t-softdropT onlyT only-
tszAny T-spin
tsmtss/tsd/tst (and/or minis)
tsstss/tsd/tst
tsdtsd/tst
tsttst only

Specified only (--specified-only, -so):

WIP

This section isn’t filled out yet.

Reserved minos (--reserved, -r):

WIP

This section isn’t filled out yet.

Kick table (--kicks, -K):

WIP

This section isn’t filled out yet.


Output Parameters

Format (--format, -f): Dictates the way the path output is written onto a file.

Max Layer (--max-layer, -L): refers to the outputs of path when using the html format.

Key (--key, -k): refers to the way the path result is sorted when using the csv format.

Split (--split, -s): refers to the way the solution fumen is built. - By default, it is set to no (output is a normal fumen). - --split yes builds the solves mino-by-mino (glued fumen).


Miscellaneous Parameters

Output Base (--output-base, -o): Specify the path data file output.

Log path (--log-path, -lp): Specify the .txt file output from the output of the command.

Specified Field from a file (--field-path, -fp): instead of defining the fumen code using --tetfu, you can specify a .txt file that contains a fumen code instead.

Patterns from a file (--patterns-path, -pp): instead of defining patterns using --patterns, you can specify a .txt file that contains either the actual queues, or patterns.

Threads (--threads, -th): Specify the number of threads to use when sfinder is running. Basically, threads are tiny virtual CPUs used to calculate stuff. Almost no need to ever touch this.

Cached Bit (--cached-bit, -cb): Specify the smallest bit of the cache to use for the internal algorithm. You most likely will never need to use this parameter.


Summary

Input Parameters
ParameterShorthandDefault
--tetfu-tnull
--page-P1
--clear-line-c4
--patterns-pnull
--hold-Huse
--drop-dsoftdrop
--kicks-Ksrs
--specified-only-soyes
--reserved-rfalse

Output Parameters
ParameterShorthandDefault
--format-fhtml
--max-layer-L2
--key-knone
--split-sno

Miscellaneous Parameters
ParameterShorthandDefault
--output-base-ooutput/path.txt
--log-path-lpoutput/last_output.txt
--field-path-fpinput/field.txt
--patterns-path-ppinput/patterns.txt
--threads-th-1
--cached-bit-cb0

Example Commands and Outputs

An example output of the path command:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#Command Line Input
java -jar sfinder.jar path -t v115@9gD8DeF8CeG8BeH8CeC8JeAgH -p *p4

# Setup Field
XXXX____XX
XXXX___XXX
XXXX__XXXX
XXXX___XXX

# Initialize / User-defined
Max clear lines: 4
Using hold: use
Drop: softdrop
Searching patterns:
  *p4

# Initialize / System
Version = 1.0
Threads = 4
Need Pieces = 3

# Enumerate pieces
Piece pop count = 4

# Cache
  -> Stopwatch start
     ... done
  -> Stopwatch stop : avg.time = 20 ms [1 counts]

# Search
  -> Stopwatch start
     ... searching
     ... done
  -> Stopwatch stop : avg.time = 353 ms [1 counts]

# Output file
Found path [unique] = 18
Found path [minimal] = 16

# Finalize
done

These are the outputs produced by various :

  1. With –format html (the default), the output looks like this for both path_minimal.html and path_unique.html:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
18 solutions [840 input sequences]
All solutions #link

No line erasure # line erasure = line clear
J-Spawn T-Reverse I-Spawn / 11.4 % [96] # these are links to fumens
T-Spawn L-Reverse I-Spawn / 7.6 % [64]
L-Right I-Left T-Reverse / 5.7 % [48]
# 2 more lines...

With line erasure
O-Spawn J-Reverse I-Spawn / 7.6 % [64]
Z-Spawn L-Reverse I-Spawn / 7.6 % [64]
S-Spawn J-Spawn I-Spawn / 7.6 % [64]
# 10 more lines...

# "J-Spawn T-Re..." refers to mino operations based on fumen.
# "/ 11.4 %" is the percentage of queues the solution works for. (cov%)
# "[96]" is the number of queues the solution works for. (cov#)

No line erasure vs with line erasure:

v115@9gD8zhF8ywG8g0wwH8i0C8JeAgH
Solve with no line erasure
v115@9gD8zhF8i0G8RpH8Rpg0C8JeAgH
Solve with line erasure
  1. With –format csv –key solution, the output file (output/path.csv) contains rows that have the path info sorted by solution:
1
2
3
4
5
6
7
8
v115@9gD8g0ywF8i0G8RpH8RpwwC8JeAgWDAv/1BA, #the solution
TJO, #pieces used in the solution
1, #
1, #
32, # number of queues this solution works for
OJT, #
OJT, #
SOJT;ZOJT;JOTI;OTJL;JOTS;OJTL;... # queues this solution works for
  1. With –format csv –key pattern, the output file (output/path.csv) contains rows that have the path info sorted by queue:
1
2
3
4
5
OITL, # queue being checked
2, # number of solutions
TIL;TIO, # pieces used in the solutions
O;L, # pieces not used in the solutions (saved pieces)
v115@...;v115@...;... # solutions for this queue
  1. With –format csv –key use, the output file (output/path.csv) contains rows that have the path info sorted by pieces used:
1
2
3
4
5
ILZ, # pieces used
1, # number of solutions that use these pieces
64, # number of queues solved with these pieces
v115@9gD8zhF8ilG8BtH8glBtC8JeAgWDA6SdBA, # solutions that use these pieces
ZSIL;TZIL;... # queues the solutions work for

Special Uses

  1. One of path’s most important uses is as an input file for finding various types of minimals.