A monster in the realm!



The internal i/o is a mess—the methods that allow the digital creatures to read and write to and from themselves and each other. I’ve always planned on changing it. Each figure, (one of the digital creatures I created) gets a turn, one after another, enough time to execute one instruction. But, no matter how much they are reading or writing, it all happens in one instruction.

That’s too fast!

If one figure is deleting another one, if it happens all at once, the one getting deleted doesn’t have a chance to react. There’s no defense.

I thought I’d test this out, so I did something like core war, and stuck in a figure that does nothing but empty out the memory of other figures. It’s a monster, and all it does is kill.

In the following output, each “n” stands for “null” A letter n means that there is nothing in that slot. Otherwise, you’ll see the size of the given figure. There are 4 slots, and a maximum population size of 3—if every slot is filled, the death object takes out the oldest figure. The figures that copy themselves, the replicators, are 9 numbers long. The monster is only 6. The replicators take three turns to make a new copy. The monster kills a figure every two turns.

Taking all bets!

The size of the realm=4
Before:
ready
start
n, n, n, n
Elapsed time=0 hours, 0 minutes and 0 seconds

9, n, n, 9
9, n, 9, 9
9, 9, 9, 9
Monster!
6, 9, 9, 9
6, 9, 9, n
6, 0, 9, n
6, 0, 0, n
6, 0, n, n
6, n, n, n
The monster’s dead, and 0 of us still live!
n, n, n, n
interrupting cycles
cycles interrupted
n, n, n, n
Elapsed time=0 hours, 0 minutes and 0 seconds

The replicators got wiped out. Shortly thereafter, the monster died of old age.

Clearly, the monster won that time, but watch what happens if I increase the size of the realm and the maximum population size by one each, to 5 and 4.

Second round. lay your money down.

The size of the realm=5
Before:
ready
start
n, n, n, n, n
Elapsed time=0 hours, 0 minutes and 0 seconds

9, n, n, n, 9
9, n, n, 9, 9
9, n, 9, 9, 9
9, 9, 9, 9, 9
Monster!
6, 9, 9, 9, 9
6, 9, 9, 9, n
6, 0, 9, 9, n
6, 0, 9, 9, 9
6, 0, 9, n, 9
6, 0, 0, n, 9
6, 0, 0, 9, 9
6, 0, n, 9, 9
6, 0, n, 0, 9
6, 0, 9, 0, 9
6, n, 9, 0, 9
6, n, 9, 0, 0
6, 9, 9, 0, 0
The monster’s dead, and 4 of us still live!
n, 9, 9, 0, 0
9, 9, 9, 0, 0
9, 9, 9, 0, n
interrupting cycles
9, 9, 9, 0, 9
9, 9, 9, n, 9
cycles interrupted
9, 9, 9, n, 9
Elapsed time=0 hours, 0 minutes and 0 seconds

Look at that. Turns out there is a defense after all. To defeat the monster, outbreed the damn thing.

The replicators are as small as figures can be and still be able to copy themselves. Both the replicators and the monster were prewritten. Let’s see what happens if we set the monster amongst a population that came from randomly constructed figures. The old population that you’ll see loaded are replicators that I didn’t write. They emerged from an earlier experiment.

Round three. What will it be?

The size of the realm=5
Before:
ready
loadpop
Enter file name, or press enter to cancel.
random.pop
loading
population ready
continue
65, 64, n, n, n
Elapsed time=0 hours, 0 minutes and 0 seconds

65, 65, n, n, 64
65, 65, n, 64, 65
65, 65, 64, 65, 65
Monster!
6, 65, 64, 65, 65
6, n, 64, 65, 65
6, n, 0, 65, 65
6, 64, 0, 0, 65
6, 64, 0, 0, n
6, 64, 0, 0, n
6, 0, 0, 0, n
6, 0, 0, n, n
6, 0, n, n, n
The monster’s dead, and 1 of us still live!
n, 0, n, n, n
n, n, n, n, n
interrupting cycles
cycles interrupted
n, n, n, n, n
Elapsed time=0 hours, 0 minutes and 0 seconds

One replicator was still alive, but with 0 numbers in its memory, all it could do was sit there until death came along and reaped it.

The replicators that came from randomness take longer to replicate. If I make the population and maximum population larger, they should be able to out breed the monster. I’ll have to disable most of the output; I have no idea how huge a population this will take.

Before, I had it set up to provide output when certain events happened—when a figure was born, when a figure had its memory erased to zero, and when a figure died and that slot became null. Now, it’s just a little output at the beginning and end of the run.

Here we go.

The size of the realm=8
Before:
ready
loadpop
Enter file name, or press enter to cancel.
random.pop
loading
population ready
continue
65, 64, n, n, n, n, n, n
Elapsed time=0 hours, 0 minutes and 0 seconds

Monster!
The monster’s dead, and 7 of us still live!
n, 0, 64, 65, 65, 65, 65, 0
interrupting cycles
cycles interrupted
64, 64, 65, 65, 65, 65, 65, n
Elapsed time=0 hours, 0 minutes and 0 seconds

That took only a realm with 8 slots, and a maximum population size of 7. Anything less, and the monster wins.

The figures will be solving interesting problems. They might have to be thousands of numbers long, and take hundreds of turns to replicate. A six number long little monster could wipe them out, even when the population numbers in the tens of thousands. This will not do.


Leave a Reply