The database is a simple text file with just a few columns. There is one row for every valid (solvable, minimal) cluster. The columns are: number of moves, board description, and cluster size (number of reachable states).
The board description is a 36-character string representing the state of the unsolved board. It is a 6x6 2D array in row-major order. The characters in the description follow these simple rules:
o empty cell
x wall (fixed obstacle)
A primary piece (red car)
B - Z all other pieces
I used lowercase
oinstead of periods
.for the empty cells in the database so that the entire board description can be selected with a double-click.
An example board:
60 IBBxooIooLDDJAALooJoKEEMFFKooMGGHHHM 2332
V has a OnePlus 6T Android phone with the following specifications (from here):
|Display Type||Optic AMOLED|
|Display Size||6.41 inches, 100.9 cm2|
|Display Resolution||1080 x 2340 pixels, 19.5:9 ratio (~402 ppi density)|
|CPU Chipset||Qualcomm SDM845 Snapdragon 845 (10 nm)|
|CPU||Octa-core (4x2.8 GHz Kryo 385 Gold & 4x1.7 GHz Kryo 385 Silver)|
The two main specs I need to care about are Android Version and Display Resolution. Additionally, AMOLED hints that pure black is going to look nice.