Darwinbots Forum
Bots and Simulations => DNA - General => The Gene depository => Topic started by: gymsum on May 07, 2008, 12:25:16 AM
-
Ok, adopted from a random bot I found that made a huge list of 0 stores, I've created a bot that randomly increases random locations in random increments. Its only 3 genes and is for a primative but adaptable veggie. Eventually a random store in repro or mrepro will produce offspring, not meant for overly agressive bots, more of a Evo bot.
'random bot,veggie
cond
*.robage 10 10 rnd sub mod 1 =
start
.memloc dec
.memval inc
stop
cond
*.robage 20 10 rnd sub mod 1 =
start
*.memloc rnd *.eyef .memloc store
*.memloc rnd *.robage .memval store
stop
cond
*.robage 5 10 rnd sub mod 1 =
start
.memloc inc
.memval inc
stop
-
The *.memloc rnd statements in the second gene don't do anything that I'm aware of.
-
Once a memloc has been picked, it does a random selection from current memloc tot he eyef return, so it can go from say repro to 0 memloc depending on the eyef. Thats the gene that sometimes makes the bot take off in a directio with velocity.
-
So half the time it won't do anything?
-
precisely, until point mutations or generations of mutations later, it will evolve to do thigns all of the time, and some of the time.
-
That's a cool idea! I'll see if I can add that one into my current sim.
-
Umm, I was actually referring to the times when it won't have anything in front of it. Also for the two store commands, you are giving it three variables, so the memloc reference will be used as the floor value for the second store, and that value will then fizzle.
-
True, but only should eyef return anything above 0, otherwise its age comes in and does almost the same nothing. I've run a long sim with thkis veggie, about 27600 cycles later, they were adapting to sexually reproduce, the same problem remained though, it still carried the memloc genes. But since it overpopulates, mroe often then not it sees something.
-
You should really rewrite it; as far as I know, manipulating .memval does nothing, mainly because it doesn't make nearly as much sense as -- or ++, but also it might be a read-only variable.
-
but also it might be a read-only variable.
it is.
-
You can write to it, but the value will get overwritten next cycle. So the only use is tricking or confusing DNA downstream.