The solver supports “board instances” that can be duplicated and deleted on command. Each board instance has its own set of remaining two side options. A board can also have a specified 2x2 piece on each of the 64 locations.

A board instance is referenced by its number. Evaluators always work on a specified board.

An operator or script can request a board instance to be duplicated, as shown below.

Duplicate board 0 to board 1:

$ ./manage.sh dup_segments 0 1
[INFO] Duplicating processor 0 to 1
[INFO] Creating 23637 records
$

Duplicate board 0 to the next free number (this is intended for scripts):

$ ./manage.sh dup_segments_new 0
2
$

Drop board 1:

$ ./manage.sh drop_segments 1
[INFO] Deleting 23637 TwoSide records
[INFO] Deleted 0 jobs for processor 1 from work queue

Dead end

An evaluator can mark a board as a “dead end”, for example when zero options remain for one of the segments. Boards that are a dead end can be cleaned up with the drop segments command.

Example of a dead-end:

Progress

The progress shows that the single-location evaluator concluded no 2x2 pieces is available for location 13, given the remaining two-side options around location 13 and the base pieces already taken by the filled locations.

Progress