The basic idea in the search is that when a cell in a photon is updated, each row moves forward 1 cell, so in effect each row depends only on the previous two rows. In other words, the problem is equivalent to a rule on the following neighborhood:
Code: Select all
x = 3, y = 3, rule = B/S012345678History
3B$3B$BAB!
Improvement to-do's:
- Improve detection of duplicate/redundant results.
- Improve the tree search algorithm (currently standard DFS)
- Possibly add support for B0 rules that allow lightspeed spaceships
Code: Select all
python photonsrc.py [-h] -r RULE [-p PERIOD] -w WIDTH [-s SYMMETRY] [--subperiod SUBPERIOD]
Code: Select all
python photonsrc.py -r B2/S0 -w 7 -s u -p 4 --subperiod true
Rule: B2/S0
Period: 4
Width: 13
Symmetry: odd
x = 13, y = 2, rule = B2/S0
b2o7b2o$o2bo5bo2bo!
x = 11, y = 2, rule = B2/S0
b2o5b2o$o2bo3bo2bo!
x = 11, y = 4, rule = B2/S0
2b2o3b2o2$bo7bo$o2bo3bo2bo!
x = 11, y = 3, rule = B2/S0
2b2o3b2o$bo7bo$o9bo!
Search complete.