Author Topic: Maca's Zerosim  (Read 3804 times)

Offline MacadamiaNuts

  • Bot Destroyer
  • ***
  • Posts: 273
    • View Profile
Maca's Zerosim
« on: January 21, 2007, 09:39:07 AM »
Opening a separate topic for this...

These bots - I call them Five-O - evolved from a bot with a start, 400 zeros and a stop. They use a single gene with a dist operator and simple math to shoot, reproduce, tiefeed and rotate occasionally, among other obscure purposes.

I've been picking the best bots and restarting the sim several times to clean it. Settings are soft: waste threshold is -1 (there's enough chaos there to add even more), speed limit is 45, costs are dynamic and are mostly age based, plus a heavy penalty on bitwises and logicals to keep 'em off the code.  

Here's the most significant gene from the last bot DNA:

Code: [Select]
889 8 467 22 sub xor
 1 !=
 17 ^ -1 floor and
 rnd <
 *16 .shoot dec
 inc
 and
 7 xor
 dist -5 <
 start
 -6 | !%=
 mult and
 store
!=
 store
This gene stores the 445 value in all sysvars divisable by 5 (hence the Five-O name), including .tie, .repro, .aimdx and .sharenrg. Also stores 889 in .shootval (8), and fires a -1 .shoot (.shoot dec).

The most recent bots are storing huge amounts of poison through another memory pattern. I didn't spot yet the code doing that.

I made a zip ready to launch with my settings, four bots and the zero alga I'm using. Unzip all to (DB)/Robots/ExNihil, load settings and run.

[attachment=543:attachment]
« Last Edit: January 21, 2007, 09:39:30 AM by MacadamiaNuts »
Sometimes you win, and sometimes you lose...

Offline MacadamiaNuts

  • Bot Destroyer
  • ***
  • Posts: 273
    • View Profile
Maca's Zerosim
« Reply #1 on: January 21, 2007, 09:51:02 AM »
Another cool thing I spotted:

Code: [Select]
*426 angle 8 %=
 floor <
 ~ mod ~ *.shang
[...]
 or
 *.shoot -- <
 - dist >
 *.mass store
I can't tell which one is the other value being picked by the 'angle', but as I saw directly in the sim, this gene changes it's function when the mass increases: at size 2 and at certain point, the bot moves back and forward until it stops. It's not fixed, it just stays there and, if you pick it and place it somewhere else, it will do it again and become static.

This gene seem to work too when the bot is shoot, due to a value being inserted from *.shang.

Edit: Lol! Yes! The static bots move backward when shot and then become static again. Since the other Five-O's aren't hunters, this dodge is enough to avoid damage. There's also a fun behaviour sometimes when they reach the sim edge warp.

I think it's the Nihil00708 the one becoming static. Not very often, though. When they reproduce they move again too.
« Last Edit: January 21, 2007, 10:16:18 AM by MacadamiaNuts »
Sometimes you win, and sometimes you lose...

Offline Sprotiel

  • Bot Destroyer
  • ***
  • Posts: 135
    • View Profile
Maca's Zerosim
« Reply #2 on: January 21, 2007, 10:09:09 AM »
Could you post whole genomes, as attachment perhaps? It'd be more informative and much easier to check your explanations.

Offline MacadamiaNuts

  • Bot Destroyer
  • ***
  • Posts: 273
    • View Profile
Maca's Zerosim
« Reply #3 on: January 21, 2007, 10:20:01 AM »
Ok, here's the Nihil00708 in the zip:

Code: [Select]
xor
 add pow ++ stop
 dist pyth -- <=
 pyth *-564 134 and
 1 ~ 654 angle >
 *281 inc
 and
 angle start
 dist *-33 ~=
 955 =
 *99 1 or
 ++ *.up store
 dup store
 <
 ceil !=
 not
 and
 sqr ~ dist 1 abs =
 274 else
 cond
 add mult inc
 ~ start
 - store
 *426 angle 8 %=
 floor <
 ~ mod ~ *.shang 889 8 467 22 sub xor
 1 !=
 17 ^ -1 floor and
 rnd <
 *16 .shoot dec
 inc
 and
 7 xor
 dist -5 <
 start
 -6 | !%=
 mult and
 store
 !=
 store
 or
 *.shoot -- <
 - dist >
 *.mass store
 cond
 | *.up >=
 *.sx *.memval add -- store
 add cond
 *578 xor
 =
 not
 | ^ cond
 angle sub *.up 77 -- !%=
 1 and
 ceil cond
 >> ^ ~ * ^ 1 767 add cond
 * mod xor
 *.dn or
 else
 angle ceil cond
 angle ++ *-33 dist inc
 xor
 -414 422 add store
 or
 not
 cond
 *.shoot store
 pow cond
 store
 inc
 ~ *.sx *24 or
 mod angle *.aimright dec
 pyth inc
 ~ inc
 * * 8 *-317 * ~=
 *-1028 -3 add ~ %=
 store
 dist *156 dist dist *13 abs inc
 dist and
 else
 not
 else
 << .up store
Sometimes you win, and sometimes you lose...