Transformations
You can make rules symmetrical in various ways. These keywords transform rules to achieve this.
Any
The any
keyword randomly transforms rules in specified symmetry:
any(x) {
@_ => _@
}
The above rule has a x
symmetry. It will randomly reflect itself in the x-axis.
In other words, it might move right, or it might move left.
For
The for
keyword loops through all transformations of a symmetry (in a random order):
for(xy) {
@_ => @@
}
The above rule will loop through all possible transformations of xy
in a random order, until it finds a match.
All
The all
keyword works similarly to the for
keyword, but it doesn't randomise the order of transformations.
all(xyz.directions) {
@_ => @@
}
Last updated
Was this helpful?