This program generates tile layouts for Classico tiles. Classico tiles (also known as Old Town) is a set of tiles of 3 sizes: small, medium and large. The width ratio is 1:2:3 and the height is 2 for all tiles. The tiles look like this:
The number of tiles on a pallet can be different among manufacturers. Here's an example of one layer of tiles on a pallet:
Also, the pavement can consist of tiles of different color so we need to mix them in a proper ratio.
The task is to layout tiles within a given pavement width so that the remainder of tiles is minimum.
git clone [email protected]:bhmj/classico_layout.git
make build
./build/classico_layout --pallet.large=16 --pallet.medium=16 --pallet.small=4
- configurable number of large, medium and small pieces in one pallet layer
- configurable number of layers
- configurable pavement width
- configurable color ratio
- configurable output path
- user-defined colors
- color mix: random pattern for 2 colors
- color mix: random pattern for N colors
- color mix: gradient pattern
Usage:
classico_layout [OPTIONS]
Classico tile layout generator
version 0.3.0
Application Options:
--config-file= Classico config file path (json and yaml formats supported) [$CLASSICO_CONFIG_FILE]
--log-level=[debug|info|warn|error|dpanic|panic|fatal] Log level (default: info) [$CLASSICO_LOG_LEVEL]
Pallet configuration:
--pallet.large= Number of large pieces in one layer (default: 16) [$CLASSICO_PALLET_LARGE]
--pallet.medium= Number of medium pieces in one layer (default: 16) [$CLASSICO_PALLET_MEDIUM]
--pallet.small= Number of small pieces in one layer (default: 4) [$CLASSICO_PALLET_SMALL]
--pallet.layers= Number of layers on a pallet (default: 12) [$CLASSICO_PALLET_LAYERS]
Pavement configuration:
--pavement.width= Width of the pavement in small piece numbers (default: 10) [$CLASSICO_ROAD_WIDTH]
Color configuration:
--color.mode=[random|gradient] Color mode (default: random) [$CLASSICO_COLOR_MODE]
Help Options:
-h, --help Show this help message
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :)
Michael Gurov aka BHMJ