Nearly there
Cycle after cycle, they all do their next command, like the clicking of a master clock, beating out they’re digital days.
Each little digital creature, called a figure, gets a turn. That’s just enough time to do one command. It’s been more than 13 hours, and the current population is somewhere just above 310,000,000. They were randomly generated, and used the slow internal I/O—they can only read write cut or paste one number at a time.
Allowing them to read write copy and paste more than one number let’s them reproduce much faster, but then they can delete each other in one move. It’s just an intuition, but I think they should have enough time to notice and react to whatever is being done.
At the moment, the slow I/O is implemented with the tools I’ve made. That slows things down. If I’d remembered to delete 7 letters, they’d probably be going much faster. I had a problem with a subtle bug that I didn’t notice, so I’m going to have to redo some low-level testing. Assuming all is well, I’ll migrate the code to be implemented as part of the core system.
Even though that will considerably speed things up, the slow I/O will never be able to compete with the old multiple number I/O by the measure of how many figures reproduce. But, that is not the only, and far from the most interesting possible measure.
This is the last piece. The basic implementation is, after a bit of double checking and a great deal of cleanup, done.