Author Topic: Zerobot sims  (Read 20406 times)

Offline MacadamiaNuts

  • Bot Destroyer
  • ***
  • Posts: 273
    • View Profile
Zerobot sims
« Reply #60 on: January 20, 2007, 02:01:32 PM »
Ah well, I evolved it in a limited speed sim. I tried to let them have enough time to try and aim before passing by, but bleh, they learned to tiefeed instead. I've got the code saved somewhere, among a bunch of more evolved copies... I want to check them after a while and see which code hasn't changed (meaning it does something useful). When I watched the .up sysvar in the console I noticed it was being switched between a big value or zero... dunno why.

It's really weird code evolving there, no .repro, no .tie, no .sharenrg, and it still does all that. I think it's using angle to narrow ranges of values. If you think about it, no matter what you input 'angle' is going to return a 1-1200 (positive?) value.
Sometimes you win, and sometimes you lose...

Offline MacadamiaNuts

  • Bot Destroyer
  • ***
  • Posts: 273
    • View Profile
Zerobot sims
« Reply #61 on: January 20, 2007, 02:23:43 PM »
About naming zerobots, maybe we could use mithological names as source so we don't need to think much about it.
Sometimes you win, and sometimes you lose...

Offline MacadamiaNuts

  • Bot Destroyer
  • ***
  • Posts: 273
    • View Profile
Zerobot sims
« Reply #62 on: January 20, 2007, 09:20:18 PM »
The new memory inspector is awesome. I could tell what was going on with my zerobots.

The last one I checked is storing the value 448 in all 0 and 5 sysvars, (tho a few non read-only still remain at "0" value). That includes repro (300), tie (330) and sharenrg (830). This must be the awesome piece of code doing everything:

Code: [Select]
467 19 sub xor
 5 not
 -7 ^ -1 ceil and
 rnd <
 *15 .shoot dec
 inc
 and
 7 dist -7 >
 start
 -6 | !%=
 mult store
So, let's see...

467 19 sub = 448

Then there's a bitwise 5 -7 ^ (xor) that returns a -4, if I did understand right how those bitwises work.

-1 ceil may be junk or a safety check so no matter how the gene mutates, it never passes a positive value. It now does nothing, because -4 is under the ceiling.

Then the value is randomized. Values are [-4, 0].

*15 .shoot dec inc fires energy shots and should increase the 448 memloc, tho when I checked it, it didn't change. Actually I'm confused because on the memory inspector, the 7 sysvar is always 0 too.

Then there's a [-4, 0] 7 dist. I've got no idea about how dist returns values. If it's using the bot's distance to the [-4, 0] 7 coordinates, then .repro, .tie and .sharenrg are triggered with a little fuzzyness by where the bot is in the sim. Maybe it's trying to avoid reproducing and tiefeeding at the same areas.  

The bitwise -7 - 6 |  returns -5, which is multiplied to the distance value it got before.

I used this GNU online scicalc:
http://ostermiller.org/calc/calculator.html

Edit: I don't post this for the zerobot prize. It's not a true condition since it's only creating a fixed pattern, not reacting to unexpected changes in the enviroment.
« Last Edit: January 20, 2007, 09:35:51 PM by MacadamiaNuts »
Sometimes you win, and sometimes you lose...

Offline MacadamiaNuts

  • Bot Destroyer
  • ***
  • Posts: 273
    • View Profile
Zerobot sims
« Reply #63 on: January 20, 2007, 10:13:28 PM »
Other sysvars it must be hitting:

.mkvirus (335) .vloc (835)
.delgene (340)

Both invalid since there's no gene 448. A mutation in the value code, tho, may lead to a DNA lobotomy.

.tieang (450)
.tieang1 (480)
.tielen2 (485)

The 448 value may mean something there.  

.tienum (455)

Oh yeah. Tie value was 448. So .tienum is 448 too.

.tmemval (475)

Huh.

.out1 (800)

Cool if it was using .in1 at all.

.mkslime (820)

To avoid being tied? Though the slime stored this way degrades before more is stored again.

.backshoot (900)

I actually noticed this random backshoot. So this is why.
« Last Edit: January 20, 2007, 10:15:47 PM by MacadamiaNuts »
Sometimes you win, and sometimes you lose...

Offline Jez

  • Bot Overlord
  • ****
  • Posts: 788
    • View Profile
Zerobot sims
« Reply #64 on: January 20, 2007, 10:41:25 PM »
Hehe, I was about to suggest you for prize when I double checked and found that the only reason I hadn't noticed the bots firing all the time was because of the 'movement vector' covering the shots. Does make me wonder why I only noticed shots when the bot was close to target though.

sysvar 7 is shootval so a value of 0 won't stop the shot.

*15 .shoot dec is the same as 0 .shoot dec or -1 .shoot!

Checking the wiki, dist returns the distance between two locations, I presume this is between x,y and x,y so it could be stripping three values off the stack and returning the distance, in unspecified units, between the two locations. I'm not sure that a negative location is valid so so am confused why this wouldn't always be higher than -7

The mention of 'bitwise' makes me lean on the gate and mutter things like 'when I was a young lad' seeing as that's stuff I have never used!

-----

When it comes to naming bots, the reason I like to insist on such things, it's down to time; when I first messed with DB I. Flamma was top bot, now it is an anachronistic side note. The Ancestor's Tale by RD traces our development from(/to) bacteria, I would like to make it easier for us to trace the same. If you ever take a break from DB then return perhaps you will notice the difference.

----

I have never run a zerobot sim (is yours a true zerobot?) Although I have asked for a representative sim setting it has never appeared, therefore a minor change, such as double the veg seems appropriate. I will re-add your previously posted bot later.

Your last bot was much better at reproducing but didn't reach such high body/nrg values IIRC.
If you try and take a cat apart to see how it works, the first thing you have in your hands is a non-working cat.
Douglas Adams