The program will execute on a PC running Windows XP and is written in Delphi 5.
The automatic tiling works with most tile groups but not with all. For those situations where the automatic tiling does not work, a manual tiler is provided. Load the file L1.til. Notice that "Tiling Automatic" is unchecked and that X and Y are set to 2 and 3. Now when the "OK" button is clicked tiling is performed by repeating the tile group every 2 squares horizontally and every 3 squares vertically.
To create a new grid, click the "New Grid" button and select a tile shape from the Shape Selector. Position the selected tile in the editor by moving the mouse and clicking the left button. Most shapes have a set of orientations. Select one of these orientations by depressing the shift key and clicking the left mouse button. Tiles may be removed by clicking the "Undo Last" button. When a tile group has been constructed, it may be moved by clicking the appropriate "Move Tiles" button. Remember to position the group in the top left corner of the editor before tiling.
Tile groups may be saved by clicking the "Save Tiles" button. The example tile files use a simple naming convention based on the tile shapes used. The letters T (triangle), S (square), L (parallelogram), P (pentagon), H (hexagon) and O (octagon) are used followed by a number. The files have an extension .til.
The Grid Options Dialog can be used to select the grid size and whether the simulation is performed on a plane or a torus by setting the "Wrap Edges" option. Point or Side neighbors can also be selected (see below).
Each iteration, the neighbors of each cell that are in state 1 are counted. Cells of any shape are included in this neighbor count. If a cell is in state 0 then it changes to state 1 if its neighbor count is included in the set specified in the Birth column of the row corresponding the the cell's shape. Otherwise the cell remains in state 0. If a cell is in state 1 then it remains in state 1 if its neighbor count is included in the Survival column of the row corresponding to the cell's shape. If its neighbor count is not included in the relevant set and the number of states corresponding to its shape is greater than 2 then it changes to state 2, otherwise it changes to state 0. If a cell is in state n where n >= 2 and the number of states corresponding to the cells shape is s, then it changes to state n + 1 if n + 1 < s, otherwise the cell returns to state 0. In the example shown below, the rules are set for the well know rule "Star Wars" which uses a square grid.
The Rule Options Dialog can also be used to load and save rules. In the rule examples included with the program, the file names indicate which grid the rule is intended to use. For example, the file TSLH5_2.rul contains rules which should be used with the grid file TSLH5.til.
The display may be saved to a pattern file with "File | Save" and restored from a pattern file with "File | Load". The example pattern files use a simple naming convention which describes the pattern type followed by the base name of the corresponding rule file with an extension .pat. The pattern types are S (ship), DS (diagonal ship), KS (Knight ship), O (oscillator), P (puffer), DP (diagonal puffer), G (gun), DG (diagonal gun) and R (replicator).
The display cells may be cleared (set to state 0) with "Clear" and set to random states with "Random". Finally, the simulation may be started, stopped and stepped by clicking the appropriate menu buttons.
The three example display sections show ships on different grids. These ships can be run by loading the file sets:
T7.til, T7_3.rul and DS001_T7_3.pat
TL7.til, TL7_3.rul and S001_TL7_3.pat
TSH10.til, TSH10_1.rul and S001_TSH10_1.pat
To try different rule families recode the procedure ca_step in file TiledCAUnit.pas and rewrite the RuleOptions Dialog.
It would be nice to have a better pattern editor.
Some of the example patterns are the work of Dr Carter Bays' students. Their work is here:
Triangular, Pentagonal, and Hexagonal CA
Three other CA Simulators that use a square grid are here:
I have recently written three new CA Simulators in Java. These may be obtained here:
Java Hexagonal and Triangular Cell
All three Java programs together with the complete source code and a large collection of example patterns are included in a zip file: