I have a few questions...
When a rule has been executed, does it try the next rule in the list, or the first rule again ? On an example:
if 0==0 then { C1 };
if 0==0 then { C2 };
is the execution C1,C1,C1... or C1,C2,C1,C2... ?
On the 100 limit per day, is it 100 rules per day or 100 executions of the code ? (this is meaningful only in the second case above)
I find it strange that a,b and color contain random values at startup, because we have no way of telling reliably if this is the very first run or not ! This prevents from coding some interesting algorithms requiring an initialisation step. It would be much practical if there was some predefined value.
Btw, nice problem
but why is the simulation so slow, even on very simple programs ?