The following paragraphs are written as if the features were already implemented, but this is only done so that the text can be copied into the real book without having to rewrite a lot of it.

There are 3 possible design methods implemented in BURRTOOLS

- BurrGrowing after Dic Sonnevelds ideas
- Constructing, the natural approach
- Destructing, the inverse way, take the assembled puzzle and try to assign cubes to one of the pieces

The following sections will describe these methods

The idea behind Constructing is to create new puzzles out of a set of pieces, try all possibilities and select the best found. To give the designer a great number of possibilities there are loooots of options here beginning with the design of the pieces ending with the method of how to solve the generated puzzle and how to save them.

The basis for the Burr Construction is a normal puzzle file containing some shapes. These shapes are then taken by the constructor and made into many puzzles that are solved.

So lets start with the piece generation. Each piece for the puzzle that needs to be generated may be assembled out of the following possibilities: a fixed piece, a list of pieces, a merger of 2 or more pieces, a piece containing variable cubes. The whole possibilities can be stacked on one another, so you can specify a list of 2 pieces where is piece is the merger of 3 pieces containing variable cubes... . All this can result in many possibilities, so be careful if you want a full analysis this side of eternity. Because of the complexity the program also might encounter the same puzzle several times. It will also be possible to let the program select puzzles out of the definition space by chance instead of doing a full analysis.

So what do the possibilities mean.

**fixed piece**- a shape containing no variable cubes. This shape is directly used
**variable piece**- a shape containing n (n>0) variable cubes. All shapes are used that have one of the 2^n possible conditions for the variable cubes are used
**list of pieces**- the pieces in the list are taken one after the other
**merger of n pieces**- a new piece is constructed containing the union of both pieces, where the union is set, if one of more of the shapes to merge is set and the others are not set and variable is at least one is variable.

At the end of the process it is possible to define the type of connection that must exists inside the shapes, shapes that do not fulfil this requirement are dropped

All these possibilities may lead to a huge number of shapes, so be careful.

Now it is possible to select the way the puzzle is solved. This includes disassembly (if or if not), also reduction and parameters for reduction can be set

Finally it is possible to select the way the created puzzles are saved.

- All / only Solvable / only uniquely
- keep best with least number of solutions
- keep best with highest disassembly level
- keep best with biggest disassembly tree (most branches on the way out)
- keep best with highest number of not disassembable solutions

Save puzzles with solution(s) or without to save space

The puzzles are all saved into single directory, that must be selected

It would be nice to be able to stop the search process and continue later on, the parameters for the constructor should be saved into the source puzzle file (including the current state)

Destruction is in some way the inverse process of construction. Here you start with the finished assembly and you assign the outer voxels to certain pieces. Now the search process starts by assigning the not yet assigned cubes to pieces or to voids. All possibilities are tried and the best are kept.

Additionally it is possible to pose certain requirements on the piece shapes. You can say in which way the pieces must be connected (by faces, edges, corners), if the pieces need to be machine makable.

Also it is possible to do the whole process randomly instead of completely

This method has been pioneered by Dic Sonneveld. It is suitable to create extremely high level burrs. The algorithm works by adding cubes to pieces to prevent certain moves and hope that the puzzle will still be disassembable in a different way.

Contents Previous Next