Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Moonfisher

Pages: 1 2 [3] 4 5 ... 40
31
Bot Tavern / The amazing wikibot
« on: May 17, 2010, 12:31:40 PM »
Sweet hadn't noticed people where building on this again
Last version I tryed could barely survive without costs on, but after a few mutations it started coming up with all sorts of tricks to survive, dispite it's somewhat skitzofrenic design.
(When reproducing it would first make a very small offspring, then move towards the offspring while incrementing .repro, aparently t doesn't reset if you can't reproduce, or something. Anyway it allowed it to produce larger offspring of random sizes using just .repro inc)
Point is, when running it mutations will usualy improve it rather fast.

start
*.body 200 <
*.nrg 200 > and
20 .dn store
.backshot inc
618 .eye5dir .focuseye add store
-1 .shoot store
50 .strbody store
*.eyef 0 > and
*.in1 *.out2 = and
-6 .shoot store
20 .up store
*.refvelup .dx store
*.body 200 >=
*.nrg 20000 > and
.repro inc
swapbool
*.numties 0 = and
*.eye5 70 > and
.tie inc
swapbool
not
10 .up store
or
*.refxpos *.refypos angle *.aim sub 35 *.focuseye mult add .eye5dir *.focuseye add store
-1 .shoot store
*.nrg 1500 >
*.body 100 < and
10 .mrepro store
600 .aimdx store
.mkshell inc

32
Internet Mode Commentary / New IM Commentry Thread
« on: May 15, 2010, 02:59:55 PM »
Think it's too late for that, the version i have now has 118 mutations.
I think it's because of spinner causing bots to use .mrepro

[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\'] 0 0 mult
''''''''''''''''''''''''  Gene:  1 Begins at position  4  '''''''''''''''''''''''
 start
 *.timer abs dropbool
 mod 4 mult add 8000 angle 628 add .setaim store
 *.eye9 0 !=
 4 .focuseye store
 *.eye1 0 !=
 -4 swapbool
 511 *.eye8 0 !=
 3 .focuseye store
 *.eye2 2 !=
 -3 .focuseye store
 *.eye7 0 !=
 .dn store
 *.eye3 store
 511 -2 *.eye6 0 1 - !=
 511 0 !=
 -1 .focuseye store
 *.eye5 -39 0 store
 add *.refeye =
 or
 <
 =
 -7 =
 and
 *.numties 2 <
 and
 *.timer abs or
 . store
 8000 add 6000 *.daytime -- -
''''''''''''''''''''''''  Gene:  1 Ends at position  89  '''''''''''''''''''''''
''''''''''''''''''''''''  Gene:  2 Begins at position  90  '''''''''''''''''''''''
 cond
 add *.totalmyspecies 300 add start
 dropbool
 *.timer abs 6000 add 8000 8000 sqr 2000 div 3 add 457 2 true
 *.timer abs 4000 mod sqr 6000 8000 *.daytime -- - dist 1000 pow - 21 2 div angle 0 floor .dx store
 *.tin5 -4 2 *.daytime mult store
 *.eye1 0 !=
 *.eye2 0 !=
 and
 *.eye3 0 !=
 0 !=
 and
 *.eye5 0 !=
 and
 *.eye6 0 !~=
 and
 !=
 <
 0 *.eye7 and
 >=
 *.eye8 0 !=
 and
 *.eye9 drop !=
 and
 mod 4 mult 8000 *.timer abs 4 mod 4000 mult 8000 6000 8000 -- add dist *.totalmyspecies 2600 <
 and
 .tie inc
 abs *.timer 469 200 4000 mod mult %=
 8000 add 6000 *.pleas -- - - mult add ceil *.totalmyspecies 6000 add !=
 *.numties 0 >
 and
 .deltie inc
 *388 angle .setaim store
 *.robage 0 =
 7 *.shflav store
 -238 834 =
 *.poison 100 <
 and
 20 .mkpoison store
 1 .tout3 store
 1 & =
 *.poison 100 <
 *.shflav store
 pow 826 20 and
 -6 =
 100 <
 and
 20 .mkshell store
 true
 1 .tout4 store
 0 .shflav store
 100 -118 *.shell =
 1 *.tin4 <
 and
 20 822 *.eye5 0 =
 .repro store
 *.timer 400 mod 360 sub 4 - store
 mod 900 *.timer 923 >
 *.maxvel - .dn store
 *.maxvel 2 dup .dx store
 .deltie store
 stop
''''''''''''''''''''''''  Gene:  2 Ends at position  313  '''''''''''''''''''''''

33
Internet Mode Commentary / New IM Commentry Thread
« on: May 15, 2010, 06:33:58 AM »
I'm not sure you managed to spread those... I think if your sim was open and normal bots came in it shouldn't be too long before the sim froze, when a bot got infected.
Anyway haven't seen any flyfruit, but I'm glad. I have a sim running with spinners mutating freely and A_minimalis which had turned cancerous.

Got this new alge in though:
(Called Effero Zero)

[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\'] 0 0 0
''''''''''''''''''''''''  Gene:  1 Begins at position  4  '''''''''''''''''''''''
 start
 *.timer abs 4000 mod 4 mult 8000 add 6000 8000 *.daytime -- - mult add angle 628 add .setaim store
 *.eye9 0 !=
 4 .focuseye store
 *.eye1 0 !=
 -4 .focuseye store
 *.eye8 0 !=
 3 .focuseye store
 *.eye2 0 !=
 -3 .focuseye store
 *.eye7 0 !=
 2 .focuseye store
 *.eye3 0 !=
 -2 .focuseye store
 *.eye6 0 !=
 -1 .focuseye store
 *.eye4 0 !=
 -1 .focuseye store
 *.eye5 0 !=
 0 .focuseye store
 *.refeye *.myeye =
 *.eye5 0 =
 or
 *.tin1 0 =
 and
 *.tin5 0 =
 and
 *.numties 2 <
 and
 *.timer abs 4000 mod 4 mult 8000 add 6000 8000 *.daytime -- - mult add dist *.totalmyspecies 300 add >
 and
 *.timer abs 4000 mod 4 mult 8000 add 6000 8000 *.daytime -- - mult add dist 2000 div 3 add .dn store
 true
 *.timer abs 4000 mod 4 mult 8000 add angle 6000 8000 *.daytime -- - mult add dist 1000 div 2 pow - 21 add 0 floor .dx store
 *.tin5 -4 2 *.daytime mult store
 *.eye1 0 !=
 *.eye2 0 !=
 and
 *.eye3 0 !=
 and
 *.eye4 0 !=
 and
 *.eye5 0 !=
 and
 *.eye6 0 !=
 and
 *.eye7 0 !=
 and
 *.eye8 0 !=
 and
 *.eye9 drop 0 !=
 and
 *.timer abs 4000 mod 4 mult 8000 add 6000 8000 *.daytime -- - mult add dist *.totalmyspecies 500 add <
 overbool
 1 .tout5 store
 *.eye5 0 !=
 *.timer abs 4000 mod 4 mult 8000 add 6000 8000 *.daytime -- - mult add dist *.totalmyspecies 2600 add <
 and
 .tie inc
 200 .fixlen store
 *.timer abs 4000 mod mult %=
 8000 add 6000 8000 *.daytime -- - mult add dist *.totalmyspecies 6000 add >
 *.numties 0 >
 and
 .deltie inc
 *.tin1 0 !=
 *.tin1 *.tin2 angle .setaim store
 *.robage 0 =
 7 .ploc store
 *.shflav -1 =
 *.poison 100 <
 and
 20 .mkpoison store
 1 .tout3 store
 0 .shflav store
 *.tin3 1 =
 *.poison 100 <
 and
 20 .mkpoison store
 *.shflav -6 =
 *.shell 100 <
 and
 20 .mkshell store
 1 .tout4 store
 0 .shflav store
 *.tin4 1 =
 *.shell 100 <
 and
 20 .mkshell store
 *.eye5 0 =
 *.nrg 4587 >
 and
 50 .repro store
 *.timer 400 mod 360 >
 *.timer 400 355 sub mod - .dx store
 mod 900 *.timer 890 >
 *.maxvel - .dn store
 *.maxvel 2 div .dx store
 .deltie store
 stop
''''''''''''''''''''''''  Gene:  1 Ends at position  396  '''''''''''''''''''''''



Seems to stick to the corners of the sim, sort of like Shrinking Violet that always crossed edges to shake off predators.
It also looks like it's gonna whipe out the spinners... but kinda suspected it wouldnøt take much to disturb mutated spinners  It's too coustomized for F1.

34
Untagged bots / sporebot
« on: May 15, 2010, 06:23:44 AM »
You only needed to make a new tie in older versions because the birth tie couldn't be accessed. Now .deltie inc will do it since birth ties are always nr 1. (Not sure from what version, but it's a while back)
Also if you never want ties, just do this:

start
.deltie inc
stop

Incrementing and decrementing costs the same as a condition, so it won't be expensive to cut ties every cycle.

35
Bot Tavern / anti-mutation bot
« on: May 11, 2010, 04:45:19 PM »
Theres already an alge called Flyfruit, wich channels the Fruitflies DNA as a virus and infects whatever is near (It also has some random viruses and is capable of icorporating new viruses in it's arsenal, should it get infected by someone). This way it can spread as an alge, but the infected bots won't have a population cap from being veggies.
I should also mention that Quickdraw won't perform too well as an alge... not unless the alge pop cap is fairly high.

Anyway Flyfruit 0.92 was the last version where the alge and the infected bots worked together (Meaning the alge would feed the infected bots if they had the same dna length as the original virus)
But it was mainly made because EricL issued the 9000 bots on IM challenge (Only reached 7000 before EricL disabled viruses from alge in his sims)

However the thing isn't very interesting... it just freezes the sim once a bot is infected by the Fruitfly virus (Dynamic costs can have other outcomes, but eventualy the sims gets booring fast). Also promissed not to release it again and was personaly plagued by it reapearing from old sims via the intra sim teleporter (Keep me off IM till now, so not about to run it again)
This is also the reason why it's hard to spread normal Fruitflies on IM, because your own sim will freeze fast, and even if you keep the pop down the flies that get teleported only have a small chance of making it on their own. (An everage fruitfly is size 1 and holds no more than 100 nrg... hard to invade a sim with that)

I'm actualy trying to mess around with the original fruitflies atm, just set the artifitial pop cap to 150 (Instead of 1000 from the F1 league, just change the value of maxpop in the bots code) and gave it some lower mutation rates... But so far I've had to restart the sim 4-5 times, since the only evolutionary step it seems to be interested in is the mutation breaking the population cap (Which freezes the sim).
Currently running the sim with very low mutation rates, and so far the pop cap still hasn't been broken, but I fear it's only a matter of time, it takes only one mutation and is very benefitial so sooner or later it'll happen again. But so far it seems to be coexisting with Webfungus... it's funny how dorcile fruitflies are when the pop cap is very low (Using 150 as maxpop in a size 2 sim).
The only reason Fruitflies seem to be agressive is because the F1 version has a high pop cap, so they're everywhere, feeding on everything. Without the high numbers they barely seem to be doing anything, I think theres 300 fruitflies in the sim (Pop cap is loose but get's hard once you reach twice the pop cap) and Webfungus is doing just fine (I even have a pig in there, although I doubt it'll last much longer).

36
Alright, I'm gonna give it a shot.
Got this alge I've been wanting to try on IM, very simple, not hard to live off, but spreads a virus wich spreads random genes, and a virus that causes the infected bot to occasionaly rape other bots (Of any species, and nothing like 99 .sexrepro store, I think it's 40% if I remember correcly)

So basicaly it's suposed to shake things up a bit, the idea isn't to see how the alge does, but if it'll help infected bots evolve faster. (The rape gene doesn't trigger too often, so it shouldn't overpower the bot's behavior)

Not sure if it'll work, but been wanting to try it out for a while, so I hope this hack fix works. (And thanks in advance Sammeh)

Also, the last few times I tried IM I kept getting intra sim bots teleported in from old sims... mainly Flyfruit... so if that happens again I'll apologize in advance, I'm not trying to spread that thing again, I'm trying to get rid of it. (If you get them in your sim an easy way to get rid of them without stopping the sim, is just to reduce alge energy gain and disable viruses on your alge.)


Oh and Nums, it's too subtle... what do you mean? Whats he doing with the other hand?


EDIT: WOHO! It works! And no flyfruits, and I got a Pig

37
F2 bots / Fluffy (F2)(Billy)-07/05/2010
« on: May 08, 2010, 11:37:24 AM »
Not sure if anyones in charge of running F2 atm.
Personaly I still think the F2 rules need some tweeking. (Get rid of tie attacks, and counter leeching, and maybe a loose rule araigst insta kill shots (Like the shootval thing))
Also not even sure if we've banned sexrepro in the new F2 rules. (I know we agreed on it, but not sure we got it in the rules topic)
But it's a nice bot, when I ran it I think it got to 9th place or something.
And theres room to improve other areas, so you have a strong base with more potential.

If you want you could probably get access to post in the F2 league topic, then you could just run and update the league yourself  (Maybe run some of the other new F2 bots in the starting gate)
Generaly the starting gate is in strong need of someone to sort all the bots and get them in the right topics, the starting gate is packed with new bots.

38
Off Topic / What's your religion?
« on: May 08, 2010, 11:26:30 AM »
I guess the simulation theory is an atheist creationist'ish belief.
And it's hard to argue with that theory, since in a sim the bots world is updated at a certain framerate and it would never be able to move outside those confines. So if we're just an advanced evo sim, we would never be able to find out, and as mentioned the behavior of electrons still eludes us and it would be a more or less valid theory that things work this way because the physics in our world are just the sim settings but when you look at the smaller bits things behave very oddly.
And as crazy as the theory may be, wouldn't it be awesome if we where actualy just a simulation... making out own simulations. (Maybe we can get that ball rolling around DB 1000)

39
Newbie / dumb question
« on: May 08, 2010, 11:11:54 AM »
I think if EricL made it, it's called drop, just as he made the dropbool operator for the boolean stack.

40
Short bots / The One (1G)(Shen)-23.04.05
« on: May 07, 2010, 02:01:56 PM »
It was handcrafted... by a monkey.
I know I have a broken down version somewhere, but can't find it, and it's still to big to read.
But it's a lot like Excalibur 1.12 (From the F2 league).
It's not that tough, it beats the SS league, but it doesn't get past Seasnake in the F2 league (And OneManBucket actualy gets further in F2 than this one).
It's main problem is a slow reaction time, and the fact that sims take ages to run since just 100 of them will slow down the sim speed considerably.

But I doubt it would live long in a sim against quickdraw...

41
Short bots / The One (1G)(Shen)-23.04.05
« on: May 06, 2010, 01:31:16 PM »
I'm pretty sure this one will execute more than one store per cycle. But it does use math to replace logic operators, wich means it only spends energy when executing a store
So it can hibernate and spend almost no energy per cycle if no stores are executed. Ofcourse now theres inline conditions making it a lot easier to just make a one gene bot with a hibernation condition (Almost as cheap as doing this)
But when this thing was made there where no inline conditions.

But there are bots that execute only one store every cycle, there's even a league for it (The SS (Single Store) league)

This one is Excalibur v1.12 buildt into one line executing only one store per cycle (It's not as good as Excalibur ofcourse, since doing one thing per cycle has some disadvantages)
Code: [Select]
cond
start
511 *.robage 6 sub dup div 1 sub abs *972 511 sub dup div mult mult 511 *.robage 5 sub dup div 1 sub abs *971 511 sub dup div mult mult add 682 *.robage 4 sub dup div 1 sub abs mult add 7 *.robage 3 sub dup div 1 sub abs mult add -2 *.robage 2 sub dup div 1 sub abs mult add 7 *.robage 1 sub dup div 1 sub abs mult add 971 1 rnd add *.robage 0 sub dup div 1 sub abs mult add *.tiepres *.robage 4 sub sqr dup div *972 511 sub dup div 1 sub abs mult *.numties 0 sub sqr dup div mult mult add *.robage *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.eye9 0 sub dup div 1 sub abs *.eye8 0 sub dup div 1 sub abs mult *.eye7 0 sub dup div 1 sub abs mult *.eye6 0 sub dup div 1 sub abs mult *.eye5 0 sub dup div 1 sub abs mult *.eye4 0 sub dup div 1 sub abs mult *.eye3 0 sub dup div 1 sub abs mult *.eye2 0 sub dup div 1 sub abs mult *.eye1 0 sub dup div 1 sub abs mult *.memval 511 sub dup div 1 sub abs add sgn mult *951 30 add *.robage sub -1 mult sqr dup div mult mult add 100 *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.robage 2 mod 1 sub dup div 1 sub abs mult *951 20 add *.robage sub 1 add 0 floor sgn mult *.poison 50 sub -1 mult sqr dup div mult *.shell 99 sub sqr dup div mult *.venom 199 sub sqr dup div mult *.nrg 700 sub sqr dup div mult *.eye9 0 sub dup div 1 sub abs *.eye8 0 sub dup div 1 sub abs mult *.eye7 0 sub dup div 1 sub abs mult *.eye6 0 sub dup div 1 sub abs mult *.eye5 0 sub dup div 1 sub abs mult *.eye4 0 sub dup div 1 sub abs mult *.eye3 0 sub dup div 1 sub abs mult *.eye2 0 sub dup div 1 sub abs mult *.eye1 0 sub dup div 1 sub abs mult *.memval 511 sub dup div 1 sub abs add sgn mult mult add 100 *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.robage 2 mod 1 sub dup div 1 sub abs mult *951 20 add *.robage sub 1 add 0 floor sgn mult *.shell 100 sub -1 mult sqr dup div mult *.venom 199 sub sqr dup div mult *.nrg 700 sub sqr dup div mult *.eye9 0 sub dup div 1 sub abs *.eye8 0 sub dup div 1 sub abs mult *.eye7 0 sub dup div 1 sub abs mult *.eye6 0 sub dup div 1 sub abs mult *.eye5 0 sub dup div 1 sub abs mult *.eye4 0 sub dup div 1 sub abs mult *.eye3 0 sub dup div 1 sub abs mult *.eye2 0 sub dup div 1 sub abs mult *.eye1 0 sub dup div 1 sub abs mult *.memval 511 sub dup div 1 sub abs add sgn mult mult add 200 *.venom sub 0 floor 200 ceil *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.robage 2 mod 1 sub dup div 1 sub abs mult *951 20 add *.robage sub 1 add 0 floor sgn mult *.venom 200 sub -1 mult sqr dup div mult *.nrg 500 sub sqr dup div mult *.eye9 0 sub dup div 1 sub abs *.eye8 0 sub dup div 1 sub abs mult *.eye7 0 sub dup div 1 sub abs mult *.eye6 0 sub dup div 1 sub abs mult *.eye5 0 sub dup div 1 sub abs mult *.eye4 0 sub dup div 1 sub abs mult *.eye3 0 sub dup div 1 sub abs mult *.eye2 0 sub dup div 1 sub abs mult *.eye1 0 sub dup div 1 sub abs mult *.memval 511 sub dup div 1 sub abs add sgn mult mult add 2000 *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.robage 2 mod 1 sub dup div 1 sub abs mult *951 20 add *.robage sub 1 add 0 floor sgn mult *.poison 49 sub sqr dup div mult *.shell 99 sub sqr dup div mult *.venom 199 sub sqr dup div mult *.nrg 1000 sub sqr dup div *.nrg 3000 sub -1 mult sqr dup div mult *.body 200 sub sqr dup div add sgn *.robage 4 mod 0 sub dup div add sgn *.eye5 0 sub dup div 1 sub abs add sgn *.body 500 sub -1 mult 1 add 0 floor sgn mult mult *.eye9 0 sub dup div 1 sub abs *.eye8 0 sub dup div 1 sub abs mult *.eye7 0 sub dup div 1 sub abs mult *.eye6 0 sub dup div 1 sub abs mult *.eye5 0 sub dup div 1 sub abs mult *.eye4 0 sub dup div 1 sub abs mult *.eye3 0 sub dup div 1 sub abs mult *.eye2 0 sub dup div 1 sub abs mult *.eye1 0 sub dup div 1 sub abs mult *.memval 511 sub dup div 1 sub abs add sgn mult mult add 180 *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.robage 2 mod 1 sub dup div 1 sub abs mult *951 20 add *.robage sub 1 add 0 floor sgn mult *.poison 49 sub sqr dup div mult *.shell 99 sub sqr dup div mult *.venom 199 sub sqr dup div mult *.nrg 500 sub -1 mult sqr dup div mult *.body 20 sub sqr dup div mult *.eye9 0 sub dup div 1 sub abs *.eye8 0 sub dup div 1 sub abs mult *.eye7 0 sub dup div 1 sub abs mult *.eye6 0 sub dup div 1 sub abs mult *.eye5 0 sub dup div 1 sub abs mult *.eye4 0 sub dup div 1 sub abs mult *.eye3 0 sub dup div 1 sub abs mult *.eye2 0 sub dup div 1 sub abs mult *.eye1 0 sub dup div 1 sub abs mult *.memval 511 sub dup div 1 sub abs add sgn mult mult add 200 *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.robage 2 mod 0 sub dup div 1 sub abs mult *951 20 add *.robage sub 1 add 0 floor sgn mult mult add -6 *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.body 200 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.nrg 3000 sub -1 mult sqr dup div *.body 500 sub sqr dup div add sgn mult *.robage 8 mod 0 sub dup div add sgn *.robage 4 mod 0 sub dup div add sgn mult *.body 200 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.nrg 3000 sub -1 mult sqr dup div *.body 500 sub sqr dup div add sgn mult *.robage 8 mod 5 sub dup div add sgn *.robage 4 mod 1 sub dup div add sgn mult *.eye5 50 sub sqr dup div *.refxpos *.refypos angle *.aim sub abs *.refbody 10 div 60 sub sub -1 mult sqr dup div mult *.robage 4 mod 2 sub dup div add sgn mult *.refvelup 2 sub -1 mult sqr dup div *.refvelup 2 sub -1 mult sqr dup div mult *.eye5 50 sub sqr dup div mult *.robage 4 mod 0 sub dup div add sgn mult *.refveldx 2 sub -1 mult sqr dup div *.refvelsx 2 sub -1 mult sqr dup div mult *.eye5 50 sub sqr dup div mult *.robage 4 mod 1 sub dup div add sgn mult *.refshell 0 sub dup div 1 sub abs *.refeye 0 sub dup div 1 sub abs mult *.venom 5 sub -1 mult sqr dup div add sgn *.eye5 20 sub -1 mult sqr dup div add sgn *.robage 4 mod 3 sub dup div add sgn mult *.memval 511 sub dup div mult *.eye5 5 sub sqr dup div mult mult add -3 *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.robage 4 mod 3 sub dup div 1 sub abs mult *.refshell 0 sub sqr dup div *.refeye 0 sub sqr dup div add sgn mult *.memval 511 sub dup div mult *.eye5 20 sub sqr dup div mult *.venom 5 sub sqr dup div mult mult add *.refxpos *.refypos angle *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.refbody 50 sub -1 mult sqr dup div *.refxpos *.refypos angle *.aim sub abs *.refbody 10 div 60 sub sub 1 add 0 floor sgn add sgn mult *.robage 4 mod 2 sub dup div 1 sub abs mult *.memval 511 sub dup div mult *.eye5 0 sub sqr dup div mult mult add *.refveldx 3 rnd add *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.body 200 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.nrg 3000 sub -1 mult sqr dup div *.body 500 sub sqr dup div add sgn mult *.robage 8 mod 5 sub dup div add sgn mult *.robage 4 mod 1 sub dup div 1 sub abs mult *.eye5 0 sub dup div 1 sub abs *.memval 511 sub dup div 1 sub abs add sgn mult *951 20 add *.robage sub -1 mult sqr dup div mult *951 30 add *.robage sub 1 add 0 floor sgn mult mult add *.refvelup *.body 15 div add *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.body 200 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.nrg 3000 sub -1 mult sqr dup div *.body 500 sub sqr dup div add sgn mult *.robage 8 mod 0 sub dup div add sgn mult *.robage 4 mod 0 sub dup div 1 sub abs mult *.eye5 0 sub dup div 1 sub abs *.memval 511 sub dup div 1 sub abs add sgn mult *951 20 add *.robage sub -1 mult sqr dup div mult *951 30 add *.robage sub 1 add 0 floor sgn mult mult add *.refveldx *.refveldx add *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.body 200 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.nrg 3000 sub -1 mult sqr dup div *.body 500 sub sqr dup div add sgn mult *.robage 8 mod 5 sub dup div add sgn mult *.robage 4 mod 1 sub dup div 1 sub abs mult *.eye5 50 sub -1 mult sqr dup div mult *.eye5 0 sub sqr dup div mult *.memval 511 sub dup div mult *.refveldx 2 sub sqr dup div *.refvelsx 2 sub sqr dup div add sgn *.eye5 50 sub -1 mult sqr dup div add sgn mult mult add *.refvelup *.refvelup add *.refxpos *.xpos sub abs *.refypos *.ypos sub abs pyth 7 div add *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.body 200 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.nrg 3000 sub -1 mult sqr dup div *.body 500 sub sqr dup div add sgn mult *.robage 8 mod 0 sub dup div add sgn mult *.robage 4 mod 0 sub dup div 1 sub abs mult *.eye5 50 sub -1 mult sqr dup div mult *.eye5 0 sub sqr dup div mult *.memval 511 sub dup div mult *.refvelup 2 sub sqr dup div *.refveldn 2 sub sqr dup div add sgn *.eye5 50 sub -1 mult sqr dup div add sgn mult mult add *.refveldx *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.body 200 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.nrg 3000 sub -1 mult sqr dup div *.body 500 sub sqr dup div add sgn mult *.robage 8 mod 5 sub dup div add sgn mult *.refveldx 2 sub sqr dup div *.refvelsx 2 sub sqr dup div add sgn mult *.memval 511 sub dup div mult *.robage 4 mod 1 sub dup div 1 sub abs mult *.eye5 50 sub sqr dup div mult mult add *.refvelup *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.body 200 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.nrg 3000 sub -1 mult sqr dup div *.body 500 sub sqr dup div add sgn mult *.robage 8 mod 0 sub dup div add sgn mult *.refvelup 2 sub sqr dup div *.refveldn 2 sub sqr dup div add sgn mult *.memval 511 sub dup div mult *.robage 4 mod 0 sub dup div 1 sub abs mult *.eye5 50 sub sqr dup div mult mult add 3000 *.body 200 sub -1 mult sqr dup div *.nrg 1000 sub sqr dup div mult *.nrg 3000 sub sqr dup div *.body 500 sub -1 mult sqr dup div mult add sgn *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.eye5 0 sub sqr dup div mult *.memval 511 sub dup div mult *.robage 8 mod 0 sub dup div 1 sub abs *.robage 8 mod 5 sub dup div 1 sub abs add sgn mult mult add *.eye4 *.eye6 sub sgn 35 mult *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.eye6 0 sub sqr dup div *.eye4 0 sub sqr dup div add sgn mult *.eye5 0 sub dup div 1 sub abs mult *.eye6 *.eye4 sub dup div mult *.eye4 *.eye1 sub sqr dup div *.eye4 *.eye2 sub 1 add 0 floor sgn mult *.eye4 *.eye3 sub 1 add 0 floor sgn mult *.eye4 *.eye7 sub 1 add 0 floor sgn mult *.eye4 *.eye8 sub 1 add 0 floor sgn mult *.eye4 *.eye9 sub 1 add 0 floor sgn mult *.eye6 *.eye1 sub 1 add 0 floor sgn *.eye6 *.eye2 sub 1 add 0 floor sgn mult *.eye6 *.eye3 sub 1 add 0 floor sgn mult *.eye6 *.eye7 sub 1 add 0 floor sgn mult *.eye6 *.eye8 sub 1 add 0 floor sgn mult *.eye6 *.eye9 sub 1 add 0 floor sgn mult add sgn mult *951 20 add *.robage sub 1 add 0 floor sgn *951 30 add *.robage sub -1 mult sqr dup div add sgn mult mult add *.eye3 *.eye7 sub sgn 70 mult *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.eye7 *.eye3 sub dup div mult *.eye5 0 sub dup div 1 sub abs mult *.eye3 *.eye1 sub sqr dup div *.eye3 *.eye2 sub sqr dup div mult *.eye3 *.eye4 sub sqr dup div mult *.eye3 *.eye6 sub sqr dup div mult *.eye3 *.eye8 sub sqr dup div mult *.eye3 *.eye9 sub sqr dup div mult *.eye7 *.eye1 sub sqr dup div *.eye7 *.eye2 sub sqr dup div mult *.eye7 *.eye4 sub sqr dup div mult *.eye7 *.eye6 sub sqr dup div mult *.eye7 *.eye8 sub sqr dup div mult *.eye7 *.eye9 sub sqr dup div mult add sgn mult *951 20 add *.robage sub 1 add 0 floor sgn *951 30 add *.robage sub -1 mult sqr dup div add sgn mult mult add *.eye2 *.eye8 sub sgn 104 mult *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.eye8 *.eye2 sub dup div mult *.eye5 0 sub dup div 1 sub abs mult *.eye2 *.eye1 sub sqr dup div *.eye2 *.eye2 sub sqr dup div mult *.eye2 *.eye4 sub sqr dup div mult *.eye2 *.eye6 sub sqr dup div mult *.eye2 *.eye8 sub sqr dup div mult *.eye2 *.eye9 sub sqr dup div mult *.eye8 *.eye1 sub sqr dup div *.eye8 *.eye2 sub sqr dup div mult *.eye8 *.eye4 sub sqr dup div mult *.eye8 *.eye6 sub sqr dup div mult *.eye8 *.eye8 sub sqr dup div mult *.eye8 *.eye9 sub sqr dup div mult add sgn mult *951 20 add *.robage sub 1 add 0 floor sgn *951 30 add *.robage sub -1 mult sqr dup div add sgn mult mult add *.eye1 *.eye9 sub sgn 139 mult *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.eye9 *.eye1 sub dup div mult *.eye5 0 sub dup div 1 sub abs mult *.eye1 *.eye1 sub sqr dup div *.eye1 *.eye2 sub sqr dup div mult *.eye1 *.eye4 sub sqr dup div mult *.eye1 *.eye6 sub sqr dup div mult *.eye1 *.eye8 sub sqr dup div mult *.eye1 *.eye9 sub sqr dup div mult *.eye9 *.eye1 sub sqr dup div *.eye9 *.eye2 sub sqr dup div mult *.eye9 *.eye4 sub sqr dup div mult *.eye9 *.eye6 sub sqr dup div mult *.eye9 *.eye8 sub sqr dup div mult *.eye9 *.eye9 sub sqr dup div mult add sgn mult *951 20 add *.robage sub 1 add 0 floor sgn *951 30 add *.robage sub -1 mult sqr dup div add sgn mult mult add 51 *.robage 4 sub sqr dup div *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.robage 3 mod 0 sub dup div 1 sub abs mult *.nrg 1000 sub sqr dup div mult *.body 500 sub sqr dup div mult *.eye5 50 sub -1 mult sqr dup div mult *.eye4 50 sub -1 mult sqr dup div mult *.eye6 50 sub -1 mult sqr dup div mult *.eye3 50 sub -1 mult sqr dup div mult *.eye7 50 sub -1 mult sqr dup div mult *.eye2 50 sub -1 mult sqr dup div mult *.eye8 50 sub -1 mult sqr dup div mult mult add 200 *.body 100 sub -1 mult sqr dup div *.nrg 1000 sub sqr dup div mult *.shflav 0 sub dup div mult *.shflav -2 sub dup div mult *.robage 4 mod 0 sub dup div mult *.eye5 0 sub sqr dup div mult *.memval 511 sub dup div mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult mult add 972 *.robage 6 sub dup div 1 sub abs *972 511 sub dup div mult mult 971 *.robage 5 sub dup div 1 sub abs *971 511 sub dup div mult mult add 6 *.robage 4 sub dup div 1 sub abs mult add 834 *.robage 3 sub dup div 1 sub abs mult add 836 *.robage 2 sub dup div 1 sub abs mult add 835 *.robage 1 sub dup div 1 sub abs mult add 474 *.robage 0 sub dup div 1 sub abs mult add 467 *.robage 4 sub sqr dup div *972 511 sub dup div 1 sub abs mult *.numties 0 sub sqr dup div mult mult add 951 *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.eye9 0 sub dup div 1 sub abs *.eye8 0 sub dup div 1 sub abs mult *.eye7 0 sub dup div 1 sub abs mult *.eye6 0 sub dup div 1 sub abs mult *.eye5 0 sub dup div 1 sub abs mult *.eye4 0 sub dup div 1 sub abs mult *.eye3 0 sub dup div 1 sub abs mult *.eye2 0 sub dup div 1 sub abs mult *.eye1 0 sub dup div 1 sub abs mult *.memval 511 sub dup div 1 sub abs add sgn mult *951 30 add *.robage sub -1 mult sqr dup div mult mult add 826 *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.robage 2 mod 1 sub dup div 1 sub abs mult *951 20 add *.robage sub 1 add 0 floor sgn mult *.poison 50 sub -1 mult sqr dup div mult *.shell 99 sub sqr dup div mult *.venom 199 sub sqr dup div mult *.nrg 700 sub sqr dup div mult *.eye9 0 sub dup div 1 sub abs *.eye8 0 sub dup div 1 sub abs mult *.eye7 0 sub dup div 1 sub abs mult *.eye6 0 sub dup div 1 sub abs mult *.eye5 0 sub dup div 1 sub abs mult *.eye4 0 sub dup div 1 sub abs mult *.eye3 0 sub dup div 1 sub abs mult *.eye2 0 sub dup div 1 sub abs mult *.eye1 0 sub dup div 1 sub abs mult *.memval 511 sub dup div 1 sub abs add sgn mult mult add 822 *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.robage 2 mod 1 sub dup div 1 sub abs mult *951 20 add *.robage sub 1 add 0 floor sgn mult *.shell 100 sub -1 mult sqr dup div mult *.venom 199 sub sqr dup div mult *.nrg 700 sub sqr dup div mult *.eye9 0 sub dup div 1 sub abs *.eye8 0 sub dup div 1 sub abs mult *.eye7 0 sub dup div 1 sub abs mult *.eye6 0 sub dup div 1 sub abs mult *.eye5 0 sub dup div 1 sub abs mult *.eye4 0 sub dup div 1 sub abs mult *.eye3 0 sub dup div 1 sub abs mult *.eye2 0 sub dup div 1 sub abs mult *.eye1 0 sub dup div 1 sub abs mult *.memval 511 sub dup div 1 sub abs add sgn mult mult add 824 *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.robage 2 mod 1 sub dup div 1 sub abs mult *951 20 add *.robage sub 1 add 0 floor sgn mult *.venom 200 sub -1 mult sqr dup div mult *.nrg 500 sub sqr dup div mult *.eye9 0 sub dup div 1 sub abs *.eye8 0 sub dup div 1 sub abs mult *.eye7 0 sub dup div 1 sub abs mult *.eye6 0 sub dup div 1 sub abs mult *.eye5 0 sub dup div 1 sub abs mult *.eye4 0 sub dup div 1 sub abs mult *.eye3 0 sub dup div 1 sub abs mult *.eye2 0 sub dup div 1 sub abs mult *.eye1 0 sub dup div 1 sub abs mult *.memval 511 sub dup div 1 sub abs add sgn mult mult add 313 *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.robage 2 mod 1 sub dup div 1 sub abs mult *951 20 add *.robage sub 1 add 0 floor sgn mult *.poison 49 sub sqr dup div mult *.shell 99 sub sqr dup div mult *.venom 199 sub sqr dup div mult *.nrg 1000 sub sqr dup div *.nrg 3000 sub -1 mult sqr dup div mult *.body 200 sub sqr dup div add sgn *.robage 4 mod 0 sub dup div add sgn *.eye5 0 sub dup div 1 sub abs add sgn *.body 500 sub -1 mult 1 add 0 floor sgn mult mult *.eye9 0 sub dup div 1 sub abs *.eye8 0 sub dup div 1 sub abs mult *.eye7 0 sub dup div 1 sub abs mult *.eye6 0 sub dup div 1 sub abs mult *.eye5 0 sub dup div 1 sub abs mult *.eye4 0 sub dup div 1 sub abs mult *.eye3 0 sub dup div 1 sub abs mult *.eye2 0 sub dup div 1 sub abs mult *.eye1 0 sub dup div 1 sub abs mult *.memval 511 sub dup div 1 sub abs add sgn mult mult add 312 *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.robage 2 mod 1 sub dup div 1 sub abs mult *951 20 add *.robage sub 1 add 0 floor sgn mult *.poison 49 sub sqr dup div mult *.shell 99 sub sqr dup div mult *.venom 199 sub sqr dup div mult *.nrg 500 sub -1 mult sqr dup div mult *.body 20 sub sqr dup div mult *.eye9 0 sub dup div 1 sub abs *.eye8 0 sub dup div 1 sub abs mult *.eye7 0 sub dup div 1 sub abs mult *.eye6 0 sub dup div 1 sub abs mult *.eye5 0 sub dup div 1 sub abs mult *.eye4 0 sub dup div 1 sub abs mult *.eye3 0 sub dup div 1 sub abs mult *.eye2 0 sub dup div 1 sub abs mult *.eye1 0 sub dup div 1 sub abs mult *.memval 511 sub dup div 1 sub abs add sgn mult mult add 6 *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.robage 2 mod 0 sub dup div 1 sub abs mult *951 20 add *.robage sub 1 add 0 floor sgn mult mult add 7 *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.body 200 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.nrg 3000 sub -1 mult sqr dup div *.body 500 sub sqr dup div add sgn mult *.robage 8 mod 0 sub dup div add sgn *.robage 4 mod 0 sub dup div add sgn mult *.body 200 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.nrg 3000 sub -1 mult sqr dup div *.body 500 sub sqr dup div add sgn mult *.robage 8 mod 5 sub dup div add sgn *.robage 4 mod 1 sub dup div add sgn mult *.eye5 50 sub sqr dup div *.refxpos *.refypos angle *.aim sub abs *.refbody 10 div 60 sub sub -1 mult sqr dup div mult *.robage 4 mod 2 sub dup div add sgn mult *.refvelup 2 sub -1 mult sqr dup div *.refvelup 2 sub -1 mult sqr dup div mult *.eye5 50 sub sqr dup div mult *.robage 4 mod 0 sub dup div add sgn mult *.refveldx 2 sub -1 mult sqr dup div *.refvelsx 2 sub -1 mult sqr dup div mult *.eye5 50 sub sqr dup div mult *.robage 4 mod 1 sub dup div add sgn mult *.refshell 0 sub dup div 1 sub abs *.refeye 0 sub dup div 1 sub abs mult *.venom 5 sub -1 mult sqr dup div add sgn *.eye5 20 sub -1 mult sqr dup div add sgn *.robage 4 mod 3 sub dup div add sgn mult *.memval 511 sub dup div mult *.eye5 5 sub sqr dup div mult mult add 7 *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.robage 4 mod 3 sub dup div 1 sub abs mult *.refshell 0 sub sqr dup div *.refeye 0 sub sqr dup div add sgn mult *.memval 511 sub dup div mult *.eye5 20 sub sqr dup div mult *.venom 5 sub sqr dup div mult mult add 19 *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.refbody 50 sub -1 mult sqr dup div *.refxpos *.refypos angle *.aim sub abs *.refbody 10 div 60 sub sub 1 add 0 floor sgn add sgn mult *.robage 4 mod 2 sub dup div 1 sub abs mult *.memval 511 sub dup div mult *.eye5 0 sub sqr dup div mult mult add 4 *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.body 200 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.nrg 3000 sub -1 mult sqr dup div *.body 500 sub sqr dup div add sgn mult *.robage 8 mod 5 sub dup div add sgn mult *.robage 4 mod 1 sub dup div 1 sub abs mult *.eye5 0 sub dup div 1 sub abs *.memval 511 sub dup div 1 sub abs add sgn mult *951 20 add *.robage sub -1 mult sqr dup div mult *951 30 add *.robage sub 1 add 0 floor sgn mult mult add 1 *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.body 200 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.nrg 3000 sub -1 mult sqr dup div *.body 500 sub sqr dup div add sgn mult *.robage 8 mod 0 sub dup div add sgn mult *.robage 4 mod 0 sub dup div 1 sub abs mult *.eye5 0 sub dup div 1 sub abs *.memval 511 sub dup div 1 sub abs add sgn mult *951 20 add *.robage sub -1 mult sqr dup div mult *951 30 add *.robage sub 1 add 0 floor sgn mult mult add 4 *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.body 200 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.nrg 3000 sub -1 mult sqr dup div *.body 500 sub sqr dup div add sgn mult *.robage 8 mod 5 sub dup div add sgn mult *.robage 4 mod 1 sub dup div 1 sub abs mult *.eye5 50 sub -1 mult sqr dup div mult *.eye5 0 sub sqr dup div mult *.memval 511 sub dup div mult *.refveldx 2 sub sqr dup div *.refvelsx 2 sub sqr dup div add sgn *.eye5 50 sub -1 mult sqr dup div add sgn mult mult add 1 *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.body 200 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.nrg 3000 sub -1 mult sqr dup div *.body 500 sub sqr dup div add sgn mult *.robage 8 mod 0 sub dup div add sgn mult *.robage 4 mod 0 sub dup div 1 sub abs mult *.eye5 50 sub -1 mult sqr dup div mult *.eye5 0 sub sqr dup div mult *.memval 511 sub dup div mult *.refvelup 2 sub sqr dup div *.refveldn 2 sub sqr dup div add sgn *.eye5 50 sub -1 mult sqr dup div add sgn mult mult add 4 *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.body 200 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.nrg 3000 sub -1 mult sqr dup div *.body 500 sub sqr dup div add sgn mult *.robage 8 mod 5 sub dup div add sgn mult *.refveldx 2 sub sqr dup div *.refvelsx 2 sub sqr dup div add sgn mult *.memval 511 sub dup div mult *.robage 4 mod 1 sub dup div 1 sub abs mult *.eye5 50 sub sqr dup div mult mult add 1 *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.body 200 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.nrg 3000 sub -1 mult sqr dup div *.body 500 sub sqr dup div add sgn mult *.robage 8 mod 0 sub dup div add sgn mult *.refvelup 2 sub sqr dup div *.refveldn 2 sub sqr dup div add sgn mult *.memval 511 sub dup div mult *.robage 4 mod 0 sub dup div 1 sub abs mult *.eye5 50 sub sqr dup div mult mult add 313 *.body 200 sub -1 mult sqr dup div *.nrg 1000 sub sqr dup div mult *.nrg 3000 sub sqr dup div *.body 500 sub -1 mult sqr dup div mult add sgn *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.eye5 0 sub sqr dup div mult *.memval 511 sub dup div mult *.robage 8 mod 0 sub dup div 1 sub abs *.robage 8 mod 5 sub dup div 1 sub abs add sgn mult mult add 6 *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.eye6 0 sub sqr dup div *.eye4 0 sub sqr dup div add sgn mult *.eye5 0 sub dup div 1 sub abs mult *.eye6 *.eye4 sub dup div mult *.eye4 *.eye1 sub sqr dup div *.eye4 *.eye2 sub 1 add 0 floor sgn mult *.eye4 *.eye3 sub 1 add 0 floor sgn mult *.eye4 *.eye7 sub 1 add 0 floor sgn mult *.eye4 *.eye8 sub 1 add 0 floor sgn mult *.eye4 *.eye9 sub 1 add 0 floor sgn mult *.eye6 *.eye1 sub 1 add 0 floor sgn *.eye6 *.eye2 sub 1 add 0 floor sgn mult *.eye6 *.eye3 sub 1 add 0 floor sgn mult *.eye6 *.eye7 sub 1 add 0 floor sgn mult *.eye6 *.eye8 sub 1 add 0 floor sgn mult *.eye6 *.eye9 sub 1 add 0 floor sgn mult add sgn mult *951 20 add *.robage sub 1 add 0 floor sgn *951 30 add *.robage sub -1 mult sqr dup div add sgn mult mult add 6 *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.eye7 *.eye3 sub dup div mult *.eye5 0 sub dup div 1 sub abs mult *.eye3 *.eye1 sub sqr dup div *.eye3 *.eye2 sub sqr dup div mult *.eye3 *.eye4 sub sqr dup div mult *.eye3 *.eye6 sub sqr dup div mult *.eye3 *.eye8 sub sqr dup div mult *.eye3 *.eye9 sub sqr dup div mult *.eye7 *.eye1 sub sqr dup div *.eye7 *.eye2 sub sqr dup div mult *.eye7 *.eye4 sub sqr dup div mult *.eye7 *.eye6 sub sqr dup div mult *.eye7 *.eye8 sub sqr dup div mult *.eye7 *.eye9 sub sqr dup div mult add sgn mult *951 20 add *.robage sub 1 add 0 floor sgn *951 30 add *.robage sub -1 mult sqr dup div add sgn mult mult add 6 *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.eye8 *.eye2 sub dup div mult *.eye5 0 sub dup div 1 sub abs mult *.eye2 *.eye1 sub sqr dup div *.eye2 *.eye2 sub sqr dup div mult *.eye2 *.eye4 sub sqr dup div mult *.eye2 *.eye6 sub sqr dup div mult *.eye2 *.eye8 sub sqr dup div mult *.eye2 *.eye9 sub sqr dup div mult *.eye8 *.eye1 sub sqr dup div *.eye8 *.eye2 sub sqr dup div mult *.eye8 *.eye4 sub sqr dup div mult *.eye8 *.eye6 sub sqr dup div mult *.eye8 *.eye8 sub sqr dup div mult *.eye8 *.eye9 sub sqr dup div mult add sgn mult *951 20 add *.robage sub 1 add 0 floor sgn *951 30 add *.robage sub -1 mult sqr dup div add sgn mult mult add 6 *.nrg 1000 sub -1 mult sqr dup div *.body 500 sub -1 mult sqr dup div add sgn *.eye5 50 sub sqr dup div add sgn *.eye4 50 sub sqr dup div add sgn *.eye6 50 sub sqr dup div add sgn *.eye3 50 sub sqr dup div add sgn *.eye7 50 sub sqr dup div add sgn *.eye2 50 sub sqr dup div add sgn *.eye8 50 sub sqr dup div add sgn *.robage 3 mod 0 sub dup div add sgn *.body 100 sub sqr dup div *.nrg 1000 sub -1 mult sqr dup div add sgn *.shflav 0 sub dup div 1 sub abs add sgn *.shflav -2 sub dup div 1 sub abs add sgn *.robage 4 mod 0 sub dup div 1 sub abs add sgn *.eye5 0 sub sqr dup div add sgn *.memval 511 sub dup div 1 sub abs add sgn mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.eye9 *.eye1 sub dup div mult *.eye5 0 sub dup div 1 sub abs mult *.eye1 *.eye1 sub sqr dup div *.eye1 *.eye2 sub sqr dup div mult *.eye1 *.eye4 sub sqr dup div mult *.eye1 *.eye6 sub sqr dup div mult *.eye1 *.eye8 sub sqr dup div mult *.eye1 *.eye9 sub sqr dup div mult *.eye9 *.eye1 sub sqr dup div *.eye9 *.eye2 sub sqr dup div mult *.eye9 *.eye4 sub sqr dup div mult *.eye9 *.eye6 sub sqr dup div mult *.eye9 *.eye8 sub sqr dup div mult *.eye9 *.eye9 sub sqr dup div mult add sgn mult *951 20 add *.robage sub 1 add 0 floor sgn *951 30 add *.robage sub -1 mult sqr dup div add sgn mult mult add 300 *.robage 4 sub sqr dup div *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult *.robage 3 mod 0 sub dup div 1 sub abs mult *.nrg 1000 sub sqr dup div mult *.body 500 sub sqr dup div mult *.eye5 50 sub -1 mult sqr dup div mult *.eye4 50 sub -1 mult sqr dup div mult *.eye6 50 sub -1 mult sqr dup div mult *.eye3 50 sub -1 mult sqr dup div mult *.eye7 50 sub -1 mult sqr dup div mult *.eye2 50 sub -1 mult sqr dup div mult *.eye8 50 sub -1 mult sqr dup div mult mult add 4 *.body 100 sub -1 mult sqr dup div *.nrg 1000 sub sqr dup div mult *.shflav 0 sub dup div mult *.shflav -2 sub dup div mult *.robage 4 mod 0 sub dup div mult *.eye5 0 sub sqr dup div mult *.memval 511 sub dup div mult *.robage 4 sub sqr dup div mult *972 511 sub dup div 1 sub abs mult *.numties 0 sub dup div 1 sub abs mult mult add store
stop
end

42
Newbie / Enemy Recognition.
« on: May 06, 2010, 12:56:59 PM »
Didn't seem to work properly when I ran it, you should try advancing one cycle at the time in the sim to see the result.
From what I can see, if I place a friendly bot in the left or right eye it will turn before switching the focus eye, and after turning it switches the focus eye...
So you're one cycle behind, my first suspition seems to have been the right one:

Quote
But remember that changing the focus eye won't give you any new input untill next cycle. Any actions you perform in the code won't take effect till the end of the cycle. (But since you change focus eye during the code execution you'll be able to read the new value, the focus eye just hasn't changed yet, and the value in eyef and all the refvars will still be the ones from the old focuseye)

You turn before the focus eye has changed.
When your code is executed the only thing that happens is you're setting some values in some sysvars, you don't shoot, turn or anything (Including changing the focuseye).
Then once the end of the code is reached the values are read and the corresponding commands are executed. (Can't remember the order, but I think the important ones go : turn, shoot, tie (Can't remember when movement is done though))

So the fix is easy, just place the turning gene before the genes that manipulate focuseye.


I'd recomend doing something a litle easier though :
(This also seems to have the advantage of turning to the position where the target will be next cycle, not sure why, but it makes everything a lot easier (Maybe that's why ))

[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']
'Since eye5 is 0 it's enough to make sure eyef isn't and you'll know the focus eye isn't eye5 (No matter what it says in the .focuseye sysvar)
cond
*.eye5 0 =
*.eyef 0 >
*.refeye *.myeye !=
start
*.refxpos *.refypos angle .setaim store
0 .focuseye store
stop

43
Newbie / Enemy Recognition.
« on: May 05, 2010, 02:44:29 PM »
I'm not sure you can use def in a gene, I'd sugest having those before the first gene.
Also if you wan't to save energy you can have a robage = 0 gene where you set the eyes and such. (Ofcourse it's safer to set them every cycle if you're up against an oponent that might mess with those settings)

But I think the issue may be that current doesn't exist, so you're never changing the focus eye. (If you select a bot you'll see the focus eye is the one with the red edge)
Also a tip, eyef is like eye5 but for the focus eye, it's a good idea to check that the focus eye contains something before turning.

And you should be aware that view distance isn't huge, and looking at the closest object isn't the same as looking at the most dangerous one. You may often be swithing between the 2 closest alies while an enemy is aproaching and firing. Not saying it can't be effective, but you may want a way to make sure the same eyes aren't checked repeatedly when allies are near.

You're welcome to steal anything you like from this thing (Or maybe switch to this behavior when you keep seing alies) :

[div class=\'codetop\']CODE[div class=\'codemain\' style=\'height:200px;white-space:pre;overflow:auto\']'A system with some practical eyes
'And a test bot (F3) wich shows some of the posibilities.
'The conspec is buildt into the eye system, it just uses
'.dnalen to reconize it's own

'- Variables -
'To apply new eye settings store the value 1 in seteyes
'seteyes will be 0 if not set and 2 if they've been set to something.
def seteyes 50

'When seteyes is 1 the values in seteyespace, setoffset and seteyewidth
'will be applied.
def seteyespace 52
def setoffset 53
def seteyewidth 54

'Eyeuse chooses between changing the focuseye to look,
'or turning the current focus eye to look.
'If you plan on shooting without using .aimshoot and you're using the
'system for turning, then remember to set the focus eye to the one you have centered
'Same goes for using angle and setaim to face the oponent,
'always rememeber to keep track of your focuseye.
'(Unless ofcourse you're never using the system for changing eyefocus)
def eyesystem 55


'- Constants -
'eyedist is used for turning and should be 35 unless something changes in the source.
def eyedist 35      'The eyes default offset

'These are just some values I usualy use, but you can use any values you like.
'They also don't need to be defined as constant, you can just push raw values into the set vars.
def fulleyespace 105   '360 degree spread
def fulloffset 140   'Offset to center eye9
def slimeyewidth -30   'Slimmest eye width
def normaleyewidth 0
def wideeyewidth 80   'Wider eyewidth


'- Vars and const for the test bot
'These are just used in the example to show how the system can be used.

'vars
def state 56

'const
def alge 13
def maxbody 15000
def movebody 6000


'********************************************************************
'------------------------- Init Eyes --------------------------------
'--- Initializing the eyes ---
cond
*.seteyes 0 =
start
1 .seteyes store
.dnalen .memloc store
.fulleyespace .seteyespace store
.fulloffset .setoffset store
.normaleyewidth .seteyewidth store
stop
'********************************************************************


'********************************************************************
'------------------------- Eyes -------------------------------------
'--- Setup ---
cond
*.seteyes 1 =
start
*.setoffset .eye9dir store
*.setoffset *.seteyespace add .eye8dir store
*.setoffset *.seteyespace 2 mult add .eye7dir store
*.setoffset *.seteyespace 3 mult add .eye6dir store
*.setoffset *.seteyespace 4 mult add .eye5dir store
*.setoffset *.seteyespace 5 mult add .eye4dir store
*.setoffset *.seteyespace 6 mult add .eye3dir store
*.setoffset *.seteyespace 7 mult add .eye2dir store
*.setoffset *.seteyespace 8 mult add .eye1dir store
*.seteyewidth .eye1width store
*.seteyewidth .eye2width store
*.seteyewidth .eye3width store
*.seteyewidth .eye4width store
*.seteyewidth .eye5width store
*.seteyewidth .eye6width store
*.seteyewidth .eye7width store
*.seteyewidth .eye8width store
*.seteyewidth .eye9width store
2 .seteyes store
stop

'--- Change focus ---
cond
*.eyesystem 0 =
start
*.eyef 0 =
*.memval *.dnalen = or
 501 *.focuseye 5 add 9 mod add * abs sgn 501 *.focuseye 6 add 9 mod add * abs sgn 2 mult | 501 *.focuseye 7 add 9 mod add * abs sgn 4 mult | 501 *.focuseye 8 add 9 mod add * abs sgn 8 mult | 501 *.focuseye 9 add 9 mod add * abs sgn 16 mult | 501 *.focuseye 10 add 9 mod add * abs sgn 32 mult | 501 *.focuseye 11 add 9 mod add * abs sgn 64 mult | 501 *.focuseye 12 add 9 mod add * abs sgn 128 mult | dup dup dup dup dup dup dup dup 1 & 1 sub dup div 1 sub abs *.focuseye 5 add 9 mod 4 sub mult swap 3 & 2 sub dup div 1 sub abs *.focuseye 6 add 9 mod 4 sub mult add swap 7 & 4 sub dup div 1 sub abs *.focuseye 7 add 9 mod 4 sub mult add swap 15 & 8 sub dup div 1 sub abs *.focuseye 8 add 9 mod 4 sub mult add swap 31 & 16 sub dup div 1 sub abs *.focuseye 9 add 9 mod 4 sub mult add swap 63 & 32 sub dup div 1 sub abs *.focuseye 10 add 9 mod 4 sub mult add swap 127 & 64 sub dup div 1 sub abs *.focuseye 11 add 9 mod 4 sub mult add swap 255 & 128 sub dup div 1 sub abs *.focuseye 12 add 9 mod 4 sub mult add swap 511 swap sgn mult store
stop

'--- Turn ---
cond
*.eyesystem 1 =
start
*.eyef 0 =
*.memval *.dnalen = or
 501 *.focuseye 5 add 9 mod add * abs sgn 501 *.focuseye 6 add 9 mod add * abs sgn 2 mult | 501 *.focuseye 7 add 9 mod add * abs sgn 4 mult | 501 *.focuseye 8 add 9 mod add * abs sgn 8 mult | 501 *.focuseye 9 add 9 mod add * abs sgn 16 mult | 501 *.focuseye 10 add 9 mod add * abs sgn 32 mult | 501 *.focuseye 11 add 9 mod add * abs sgn 64 mult | 501 *.focuseye 12 add 9 mod add * abs sgn 128 mult | dup dup dup dup dup dup dup dup 1 & 1 sub dup div 1 sub abs *.aim 521 *.focuseye 5 add 9 mod add * add 35 4 mult add mult swap 3 & 2 sub dup div 1 sub abs *.aim 521 *.focuseye 6 add 9 mod add * add 35 3 mult add mult add swap 7 & 4 sub dup div 1 sub abs *.aim 521 *.focuseye 7 add 9 mod add * add 35 2 mult add mult add swap 15 & 8 sub dup div 1 sub abs *.aim 521 *.focuseye 8 add 9 mod add * add 35 1 mult add mult add swap 31 & 16 sub dup div 1 sub abs *.aim 521 *.focuseye 9 add 9 mod add * add 35 0 mult add mult add swap 63 & 32 sub dup div 1 sub abs *.aim 521 *.focuseye 10 add 9 mod add * add 35 1 mult sub mult add swap 127 & 64 sub dup div 1 sub abs *.aim 521 *.focuseye 11 add 9 mod add * add 35 2 mult sub mult add swap 255 & 128 sub dup div 1 sub abs *.aim 521 *.focuseye 12 add 9 mod add * add 35 3 mult sub mult add swap 19 swap sgn mult store
stop
'********************************************************************



'********************************************************************
'************ From here on it's just the test bot *******************
'********************************************************************

start
.fixpos dec
.deltie inc

*.nrg *.body >
*.nrg 500 > and
100 .strbody store

*.nrg 2000 >
*.body *.nrg < and
*.body .maxbody < and
*.nrg 10 mult *.body sub .strbody store

*.robage 50 >
1 .seteyes store
.wideeyewidth .seteyewidth store
stop

'- Scout -
cond
*.state 0 =
start
*.eyesystem 0 !=
0 .eyesystem store

*.eyef 0 =
*.memval *.dnalen = or
*.maxvel .up store

*.robage 5 <
*.body 1100 > and
*.maxvel - .up store

*.eyef 0 !=
*.memval .alge != and
*.memval *.dnalen != and
*.refvelsx 100 mult .dx store
*.refveldn 100 mult .up store

*.eyef 0 !=
*.memval .alge = and
1 .state store

*.eyef 0 =
*.memval *.dnalen = or
*.shflav 0 = and
*.nrg 20000 > and
*.body 3000 > and
2 .state store

*.eyef 0 !=
*.memval *.dnalen != and
*.body *.refbody 200 sub > and
3 .state store

*.body .movebody >
4 .state store
*.totalmyspecies 2 < and
*.nrg 10000 > and
*.eyef 0 = and
2 .state store
stop

cond
*.state 1 =
start
*.eyesystem 1 !=
1 .eyesystem store
4 .focuseye store

*.eyef 0 !=
*.memval .alge = and
*.refxpos *.refypos angle .setaim store
*.refvelsx *.veldx add .sx store
*.refvelup 100 *.eyef sub add 10 floor .up store
-6 .shoot store
16 .shootval store

*.eyef 0 =
*.memval .alge != or
0 .state store
stop

cond
*.state 2 =
start
*.eyef 0 =
*.memval *.dnalen = or
*.shflav 0 = and
*.nrg 20000 > and
*.body 3000 > and
*.aim 314 add .setaim store
20 .repro store

not
3 .state store
stop

cond
*.state 3 =
start
*.eyesystem 1 !=
1 .eyesystem store
4 .focuseye store

*.eyef 0 !=
*.memval *.dnalen != and
*.refxpos *.refypos angle .setaim store
*.refvelsx *.veldx add .sx store
*.refxpos *.xpos sub abs *.refypos *.ypos sub abs pyth 5 div 30 sub 0 floor 100 ceil *.refvelup add .up store
*.nrg 100 div *.refnrg ceil 25 floor .shootval store
-6 .shoot store

*.shflav 0 !=
*.shang .aimshoot store
-6 .shoot store
40 .shootval store
0 .shflav store

*.eyef 0 =
*.memval *.dnalen = or
0 .state store

*.body .movebody >
4 .state store
stop

cond
*.state 4 =
start
*.eyesystem 1 !=
1 .eyesystem store
4 .focuseye store
1 .seteyes store
.wideeyewidth .seteyewidth store

*.eyef 0 !=
*.memval *.dnalen != and
*.refxpos *.refypos angle .setaim store
-6 .shoot store
*.memval .alge != and
*.nrg 100 div *.refnrg ceil 25 floor .shootval store

*.refxpos *.refypos dist 600 >
*.memval .alge = and
*.shflav 0 = and
-10 .shootval store

*.timer 15 mod 0 =
*.memval .alge = and
150 .aimsx store

*.shflav 0 !=
*.shang .aimshoot store
-6 .shoot store
40 .shootval store
0 .shflav store

*.eyef 0 =
*.memval *.dnalen = or
0 .state store

*.eyef 0 =
*.memval *.dnalen = or
*.memval .alge = or
*.body .movebody < and
0 .state store

*.eyef 0 =
*.memval *.dnalen = or
*.memval .alge = or
*.body .maxbody > and
4 .state store
stop

end

The first 2 genes are for initializing the eyes, the next 2 are 2 different ways of using the eyes, one turns to the next non empty eye, while the other one just changes the focus eye. (Those 2 genes are hard to read, I can post a broken down version, but it'll still be kinda hard to read it) But the point is that you don't need to understand them to use them, you just change the defined values at the beginning of the code.
After that the remaining genes are just a test bot to show how you can use the eye genes.

You can also change the overall eye setup if you like, but be aware that the turning gene won't work without the current eye setup (You can change the width and distance between the eyes by using the defined values, but not scramble it any way you like), however the focus eye switching gene should work no matter how you set the eyes.

44
Newbie / Enemy Recognition.
« on: May 05, 2010, 01:08:46 PM »
Would be easier to see if you posted all the eye and turning code together, the error might not be in the gene you think it is...
From what I can see the gene should be working correctly... if your focus eye is on a friendly unit the gene won't trigger.
But remember that changing the focus eye won't give you any new input untill next cycle. Any actions you perform in the code won't take effect till the end of the cycle. (But since you change focus eye during the code execution you'll be able to read the new value, the focus eye just hasn't changed yet, and the value in eyef and all the refvars will still be the ones from the old focuseye)

45
Newbie / Greetings
« on: May 04, 2010, 01:36:36 PM »
Welcome, don't forget to check out the leagues if you're into coding bots

Pages: 1 2 [3] 4 5 ... 40