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.


Topics - googlyeyesultra

Pages: [1] 2
1
Bugs and fixes / Viral Mutation? RESOLVED 2.43.1d
« on: February 11, 2008, 02:07:12 AM »
I've noticed that on occasion, in a sim with every bot being mutation-disabled, a spreading virus can sometimes mutate, always in my experience being the first bp (which, also, is always a cond, don't know which it is connected to). This is changed to a 0, which makes me believe that the word cond is somehow being corrupted and the interpreted is reading the unknown word as a zero. I am using the latest buddy drop, although I recall this happening in earlier versions. I haven't tested this with the sim-wide mutations disabled. Furthermore, the only mutation registered in the mutations dialogue area is the viral infection itself, so I don't think actually mutation code is being run (and if it was, it wouldn't happen in the same place and way every time.)

Tell me if you need more info.

2
Evolution and Internet Sharing Sims / Basic Principles of Evolution
« on: January 08, 2008, 06:08:03 PM »
I've compiled a basic (certainly not comprehensive) list of major evolutionary theories and hypothesis. Mostly, this is a quick reference for those interested in evolution; however, I'm curious as to which of these Darwinbots accurately models and which of these need improvement. Feel free to add to or critique this list.

Once one bot in a line develops a poor mutation, all descendants will have no fewer numbers of deleterious mutations (except as the result of a ridiculously unlikely back mutation). This means that unless selective pressures are far higher than mutation rates, deleterious mutations will gradually accumulate in a population. This is called Muller's Ratchet.

In an asexual population, a beneficial mutation can only become fixed if all other lines die out (possibly extinguishing other beneficial mutations they had).

The most accurate unit of selection is the gene. A gene can occasionally evolve to help other organisms with the same gene at the detriment to its host. This is called the selfish gene or the Green Beard effect.

In addition to merely surviving, in a sexually reproducing organism, the organism must possess traits that are favorable to prospective mates in order to reproduce. This is called sexual selection.

On occasion, a deleterious mutation can occur along with a beneficial one. Oftentimes, especially in difficult situations, this poor mutations will spread due to proximity (can't remove it from the organism without removing the beneficial one). The poor mutation is genetically hitchhiking.

Generally, evolution happens slowly most times, and then rapidly works in times of extreme hardship. This is called punctuated equilibrium.

Evolution rarely, if ever, follows a straight path. It wanders about, trying things randomly until it finds something that works.

Evolution does not pick that which is awesome, uber, or efficient. Natural selection favors anything that can reproduce successfully.

There is an evolutionary arms race. Competing organism have to accumulate beneficial mutations in order to compete with every other organism that is doing the same thing. This is called the Red Queen effect.

Most mutations are neutral or deleterious. Very few are beneficial.

Large populations are needed to avoid bottleneck effects, where a few organisms are the only representatives of a genome, and may have less or worse mutations than the majority of that species.

Point mutations are necessary to evolve a first replicator, but from then on, they are usually bad things. Copy mutations power evolution once basic reproduction occurs.

Genetic drift allows some neutral mutations to fix in a population.

3
Bot Tavern / F1 Alliance
« on: December 31, 2007, 10:11:24 PM »
I was thinking. . . What if several of us bot programmers got together and create a whole slew of "allied" bots (with the same conspec) and some sort of teamwork strategies. Presumably, a few programmers making allied bots could quickly take over the internet mode. We could have veggies that would give our bots a small portion of their energy in exchange for protection, and whole armies of symbiotic combatants.

Anyways, does anyone have any interest in trying something like this? It might be interesting.

4
Bugs and fixes / 2.43y Eye Troubles RESOLVED 2.43z
« on: December 30, 2007, 08:30:28 PM »
I've just installed the new 2.43y buddy drop, and I sadly find that my well-tweaked bot no longer runs properly. The DNA is attached.

Two major problems in the new version:
Foremost, when two bots are touching (aka, directly after repro), the conspec avoidance code no longer works (they turn away, but they don't run away. Probably because it uses eye5 there.)

Secondly, when one of my bots that has accumulated a large amount of body (probably greater than 10000 or so), when it gets close to a non-moving veggie, it will stall outside of shot distance.

As a postscript, I find that common eye values (such as thirty) occur at much shorter distances than they used to.

5
DNA - General / Poison Question
« on: December 29, 2007, 05:44:07 PM »
I've looked, but I can't find an answer: exactly how much poison is returned when a poison containing bot is shot? What are the variables in this, and is it possible for either bot to calculate this amount?

Thanks in advance.

6
Suggestions / Enzyme System
« on: December 27, 2007, 04:27:03 AM »
I know that enzymes won't be set up for quite a while, but I thought I could chip in my two cents.

So far, the primary idea is some sort of mutatable string that would consist of one or more enzymes.

I think I've got an idea that would allow both random mutations and programmers to utilize these enzyme strings.

So, let's say we've got a chart of some sort. In this chart, we'll have various base molecules aligned vertically. Lines could join these elements, and some other molecules could be added along the way. In theory, a single base element could have many branches.

So, the value should look something like this:
0120214
The first two digits would represent the base molecule (00 being the top molecule, 01 being the next one down on the chart, and so on. This could be truncated to one digit if we decide that we won't need more than ten base molecules.) Then, the next digit after that would represent the next "fork" on that reaction path. In this case it would be the third fork (0, 1, 2), then the first fork, the third, the second, and the fith.

Let's suppose that that last digit (the four) goes to a spot with only three possible forks. If that were the case, then that five (or any value from zero to nine) would be moded by the number of forks (no +1, since it starts at zero).

Now, let's suppose that one reaction path, for instance, only has one fork. This would mean that everything after the first two became "junk" enzyme data. This could mutate on its own and if an earlier fork changed, then this section could become useful.

Mutations could just randomly add or subtract one or two to one of the digits, with an higher likelihood for later digits (since that would change the overall reaction less).

In this system, humans could easily program an enzyme they wanted, while mutational algorithims would work. Furthermore, this is just the bit code (not really bits, but you get what I mean), that would determine what type of reaction it is, meaning that efficiency and whether or not DNA can effect it are somewhat seperate issues.

This system should be exstensible, seeing as how you could add additional molecules and reactions without breaking most bots (although mutants that relied on the moding might be broken).

Notes:
I'm really not sure how to model efficiency on these. Perhaps a seperate bit pattern could be affixed onto this for that.
Each enzyme in this manner would represent one full reaction.
The whole value could be made as long as the longest reaction, I guess.

7
Suggestions / .sexrepro Algorithm
« on: December 27, 2007, 01:19:49 AM »
I think I've got a possible algorithim for .sexrepro (I know you get this a lot, but hear me out).

1. Check to make sure that both bots are of same species. If not, insta-fail the sexrepro.
2. The new bot should be created with the original, unmutated DNA.
3. Compare mutation histories of the parent bots.
4. If the two bots share any identical mutations (AKA, a common ancestor, or perhaps random chance) apply these in the order they were formed.
5. Randomly select some of the remaining mutations from each parent to be enacted.
6. Parent one's selected mutations should be enacted on the new bot in order.
7. Parent two's selected mutations should be enacted on the new bot in order.
8. New bot is free to do whatever the hell it wants.

An example:
Base DNA:
cond
*.nrg 100 >
start
50 .repro store
stop

Mutation Histories:
Parent 1: Del "cond", switch "*.nrg" "100", del stop
Parent 2: Del "cond", insert 50 at end, insert 12 at beginning

Possible New Bot DNA:
12
100 *.nrg >
start
50 .repro store
stop

Obviously, that's a simple example, but you get the idea.

8
Bugs and fixes / Crash on program start OPEN
« on: December 26, 2007, 10:45:02 PM »
Having just now installed the latest buddy drop (2.43x), I find a big, big error. On starting the program (every time, and I do have it in the proper directory), an error message comes up: "An Error Occurred. Darwinbots can not continue. Sorry. Invalid property value Darwinbots 380 0". The error is titled "Darwinbots" and has one button: "OK". Proceeding to click said button closes the window, but any attempts to continue (such as hitting file-new sim) will display a second, similar error message: "Run time error '380': Invalid property value." Hitting the "OK" button in this message instantly terminates the program.

Additional information:
I am running XP SP2.
I have succesfully run Darwinbots before, although not this buddy drop.
There is a small white square in the upper left corner of the blue bot field. Not sure what it is, and I can't recall it being there in previous versions.

If you need any more information, feel free to ask. I really want this resolved, seeing as it's a big issue.

9
Bot Tavern / Dogfighting
« on: August 19, 2007, 12:10:29 PM »
Essentially, I'm working on creating a new bot with a tentative title of "Sharpshooter". It's designed to accurately predict where it should aim in order to make the shot hit you, without matching your velocity (well, at this point, it does match your velocity, but only because I haven't figured out a cool dogfighting routine yet). Essentially, it won't care much (when I finish coding it), at least when fighting instead of feeding, whether or not the returning energy hits it. All it will try to do is pump the enemy full of shots and duck and weave to prevent any returned fire from hitting it. It's kindof a large bot, so it'll have to be really good at dodging. So far I've got most of the basic code together, as well as a prototype of the advanced aiming. I'm holding off on shell, slime, etc. until I've got most of the other stuff working as planned. Essentially, any tips for dogfighting or aiming code that would work for this would be much appreciated. Or, well, code itself, if you're really nice. Thanks.

Code: [Select]
'Sharpshooter: A bot by googlyeyesultra.
'It semi-accurately leads targets.

cond
start
'Conspec
*.myeye *.myshoot add *.myup add 998 *.robage sgn 1 sub -1 mult mult store

'Sharefeed if multi
99 .sharenrg *.multi mult store
.sharewaste *.multi mult inc

'Set eyewidth
1221 .eye5width *.robage sgn 1 sub -1 mult mult store
stop

'Reproduce
cond
*.nrg 25000 >=
*.nrg 2 div *.body ~=
start
49 .repro store
stop

'Conspec
cond
*.refeye *.refshoot add *.refup add *.refshell add *997 !=
start
*.refeye *.refshoot add *.refup add *.refshell add 997 store
stop

'Birthie cut
cond
*.robage 2 <
start
.tie *.robage -1 mult 1 add mult inc
.deltie inc
stop

'Shoot feed
cond
*.eyef 0 >
*997 *998 !=
*.refpoison *.refshell >=
start
*.refxpos *.refveldx *.veldx sub *.refxpos *.refveldx *.veldx sub add *.refypos *.velup *.refvelup sub add dist 40 div mult add *.refypos *.velup *.refvelup sub *.refxpos *.refveldx *.veldx sub add *.refypos *.velup *.refvelup sub add dist 40 div mult add dist 30 div -1 mult .shootval store
-6 .shoot store
stop

cond
*.eyef 0 >
*997 *998 !=
*.refpoison *.refshell <
start
*.refxpos *.refveldx *.veldx sub *.refxpos *.refveldx *.veldx sub add *.refypos *.velup *.refvelup sub add dist 40 div mult add *.refypos *.velup *.refvelup sub *.refxpos *.refveldx *.veldx sub add *.refypos *.velup *.refvelup sub add dist 40 div mult add dist 30 div -1 mult .shootval store
-1 .shoot store
stop

'Deltie enemy ties/conspec ties
cond
*.numties 0 >
*.tiepres *996 !=
*.trefshoot *.trefeye add *.trefup add *998 = or
start
*.tiepres .deltie store
stop

'Tie
cond
*.eyef 30 >
*997 *998 !=
start
998 rnd 1 add 996 *996 sgn -1 mult 1 add mult store
*996 .tie store
stop

'Tiefeed/Counter leach
cond
*.numties 0 >
*.trefshoot *.trefeye add *.trefup add *998 !=
start
*996 .tienum store
*.tieval sgn .tieloc store
-1000 .tieval store
stop

'Regulate body/energy
cond
*.nrg 2 div *.body >
start
*.nrg 2 div *.body sub .strbody store
stop

cond
*.nrg 2 div *.body <
start
*.body *.nrg 2 div sub .fdbody store
stop

'Waste Removal
cond
*.waste 100 >=
start
-4 .shoot store
*.waste .shootval store
stop

'Aiming
cond
*.eyef 0 >
start
*.aim *.refxpos *.refveldx *.veldx sub *.refxpos *.refveldx *.veldx sub add *.refypos *.velup *.refvelup sub add dist 40 div mult add *.refypos *.velup *.refvelup sub *.refxpos *.refveldx *.veldx sub add *.refypos *.velup *.refvelup sub add dist 40 div mult add angle sub .aimshoot store
stop

'Orientation
cond
*.aim 314 !=
start
314 .setaim store
stop

'Search
cond
*.eyef 0 =
*.velscalar 10 <
start
50 4 rnd store
stop

'Movement
cond
*.eyef 0 >
*997 *998 !=
start
*.velup *.refvelup sub *.refypos *.ypos sub 2 div dup .dn store
*.refveldx *.veldx sub *.refxpos *.xpos sub 2 div dup .dx store
stop

'Avoid conspecs
cond
*.eyef 0 >
*997 *998 =
start
200 *.velup *.refvelup sub *.refypos *.ypos sub 2 div add sub .dn store
200 *.refveldx *.veldx sub *.refxpos *.xpos sub 2 div add sub .dx store
stop

'Chameleon genes
cond
*.in1 0 !=
*.in1 *.out1 !=
start
*.in1 .out1 store
stop

cond
*.in2 0 !=
*.in2 *.out2 !=
start
*.in2 .out2 store
stop

'Some various code defenses
cond
*.fixed 0 !=
start
0 .fixpos store
stop

cond
*.delgene 0 !=
start
0 .delgene store
stop

cond
*.shoot -2 =
start
0 .shoot store
stop

cond
*.mrepro 0 !=
start
0 .mrepro store
stop

cond
*.sexrepro 0 !=
start
0 .sexrepro store
stop

cond
*.repro 49 !=
*.repro 0 !=
start
0 .repro store
stop

'Antivirus
cond
*.mkvirus 0 !=
start
*.mkvirus .delgene store
0 .mkvirus store
stop

'End of Program
end

Essentially, if you're facing upwards, this code snippet will return where it thinks the targeted bot will be (Factoring in my movement as well).

Code: [Select]
*.refxpos *.refveldx *.veldx sub *.refxpos *.refveldx *.veldx sub add *.refypos *.velup *.refvelup sub add dist 40 div mult add *.refypos *.velup *.refvelup sub *.refxpos *.refveldx *.veldx sub add *.refypos *.velup *.refvelup sub add dist 40 div mult add
Also, it's alot easier to see it leading targets if it is set to "voluntary movement disabled".

10
Bot Tavern / Some fancy aiming:
« on: August 17, 2007, 11:45:42 AM »
Ah, yes; I have returned. After a ridiculously tiring trip, I have an aiming question. I'm working on a crude multi-bot, and I need to know the exact velocity of a shot in grids per cycle. Essentially, I'm working on a wacky bot that will lead when it shoots, hopefully ending the era of bots that ram each other in order to feed.

Anyways, what is this magical constant or formula to determine shot velocity?

11
Evolution and Internet Sharing Sims / Zerobot Evolution - Where to now?
« on: August 03, 2007, 01:56:41 AM »
Okay, I'm working on the whole conditional logic zerobot thing. As it stands, I've got a bot that every so often (not very often at all) will randomly decide to reproduce, tie for 1-2 cycles, virus shoot, or shoot. The children won't reproduce, however (They've got 10 body, so it's not that. It's either some wacky epigenetics, a really fragile genome, or some sort of condition on reproduction (or I'm brain-dead). No clue which.

Anyways, my questions:
Can anyone decipher the wacky code that causes whatever the hell this thing is to work?
Can anyone verify my results?
Can anyone offer advice as to where to go from here on evolving this thing?

In exchange, I'll put up my limited knowledge, and the code of the evolved zerobot.

Tips:
Select a bot, ctrl-r, reproduce. This'll make it reproduce if you like something in its genome.

Early on, don't expect much. Any bot that has one more "store", even if it doesn't do anything, is really, really good.

Once you have something decent, find the best one (just look at the DNA/behaviors manually). Then, take this one and evolve it in a sim all by itself.

Until you've got a decent amount of code, disable deletions. Also disable delta mutations.

Consider using either zero costs or perhaps negative costs to feed your bots or at least prevent them from dieing off.

If you can keep your bots from dieing, you don't need to run around with 600 of 'em. All the times I managed to get reproduction were from having about 5-10 bots, and then being able to get around 1-3 thousand cycles a second.

It'll take quite a while.

Movement tends to evolve quickly, as it's not a huge step from 0 to 1 or 2.

If you don't have anything good, set point mutations to around 100 (or lower, if you want).

Once you get something, assuming it can reproduce, start it up in a sim, with point mutations disabled, but the others (aside from delta and major deletion) enabled. That means that even if deletrious mutations occur, the original will remain unmutated and continue to reproduce hopefully healthy children.

Erm, yes. So, please, add your own tips in your posts, please! Now here comes the scary technical part. I'll leave you to scratch out your eyeballs as you attempt to decipher whatever the hell this evolved code is.

Code: [Select]
<< >
 -4 ceil 47 2 ^ floor or
 store
 dup *.maxvel pyth or
 19 ~ pow -- stop
 0 << >
 -4 ceil 47 2 ^ floor xor
 store
 dup *.maxvel pyth or
 19 ~ pow -- stop
 0 << >
 -4 ceil 47 2 ^ floor xor
 store
 dup *.maxvel pyth or
 19 ~ pow -- stop
 0 << >
 -4 ceil 47 2 ^ floor or
 store
 dup *.maxvel pyth or
 19 ~ pow -- stop
 0 << >
 -4 dist 47 2 ^ 436 floor or
 store
 dup *.maxvel pyth or
 19 ~ pow -- stop
 0 << >
 -4 ceil 47 start
 << floor or
 store
 start
 add pyth inc
 19 ~ pow -- stop
 0 << >
 -4 ceil 47 0 << >
 -4 ceil 47 start
 << floor or
 store
 dup *.maxvel pyth ~ 19 ~ pow -- else
 angle 47 inc
 >=
 %=
 not
 sub store
 and
 store
 xor
 -14 ~=
 dec
 | 41 .dx store
 1 pyth else
 & pyth rnd -5 -6 =
 or
 or
 floor stop
 start
 store
 inc
 *.timer -- ~ inc
 22 %=
 !~=
 add << >
 -4 ceil 47 2 ^ floor or
 store
 dup *.maxvel pyth or
 19 ~ pow -- stop
 0 << >
 -4 ceil 47 2 ^ floor xor
 store
 dup *.maxvel pyth or
 19 ~ pow -- stop
 0 << >
 -4 ceil 47 2 ^ floor xor
 store
 dup *.maxvel pyth or
 19 ~ pow -- stop
 0 << >
 -4 ceil 47 2 ^ floor or
 store
 dup *.maxvel pyth or
 19 ~ pow -- stop
 0 << >
 -4 dist 47 2 ^ 436 floor or
 store
 dup *.maxvel pyth or
 19 ~ pow -- stop
 0 << >
 -4 ceil 47 start
 << floor or
 store
 start
 add pyth inc
 19 ~ pow -- stop
 0 << >
 -4 ceil 47 0 << >
 -4 ceil 47 start
 << floor or
 store
 dup *.maxvel pyth ~ 19 ~ pow -- else
 angle 47 inc
 >=
 %=
 not
 sub store
 and
 store
 xor
 -14 ~=
 dec
 | 41 .dx store
 1 pyth else
 & pyth rnd -5 -6 =
 or
 or
 floor stop
 start
 store
 inc
 *.timer -- ~ inc
 22 %=
 !~=
 add

12
F1 bots / Reaper (F1)(Googlyeyesultra)-17.07.07
« on: July 17, 2007, 01:18:50 AM »
Alrighty! This one is a little better than Rabidus 1.1, but it still won't beat Etch. Feel free to replace all versions of Rabidus with Reaper.

Code: [Select]
'Reaper: A bot by googlyeyesultra.
'Almost identical to my other bot, Rabidus, but a bit harder to beat.
'To the reaper, every foe is a stalk of grain.

cond
start
'Conspec, Self-Virus Protection, Set Eyewidth
*.myeye *.myshoot add *.myup add 998 *.robage sgn 1 sub -1 mult mult store
65 999 *.robage sgn 1 sub -1 mult mult store
1221 .eye5width *.robage sgn 1 sub -1 mult mult store

'Targeting/Movement
*.refxpos *.refypos angle .setaim
*.eye5 sqr dup div
*997 *998 sub dup div mult mult store

*.refveldx *.veldx sub .dx
*.eye5 sqr dup div
*997 *998 sub dup div mult mult store

*.refxpos *.refypos dist 2 div *.refvelup add *.velup sub .up
*.eye5 sqr dup div
*997 *998 sub dup div mult mult store

'Sharefeed if multi
99 .sharenrg *.multi mult store
.sharewaste *.multi mult inc
stop

'Reproduce
cond
*.nrg 850 >
*.body 50 >=
start
100 .strbody store
49 .repro store
stop

'Conspec
cond
*.refeye *.refshoot add *.refup add *.refshell add *997 !=
start
*.refeye *.refshoot add *.refup add *.refshell add 997 store
stop

'Birthie cut
cond
*.robage 2 <
start
.tie *.robage -1 mult 1 add mult inc
.deltie inc
stop

'Spread out when born
cond
*.eye5 0 !=
*997 *998 =
*.robage 20 <
*.robage 2 >
start
*.refxpos *.refypos angle 628 add .setaim store
*.eye5 .up store
stop

'Spread out later
cond
*.eye5 0 !=
*997 *998 =
*.robage 20 >=
*.numties 0 =
start
*.refxpos *.refypos angle 628 add .setaim store
*.eye5 2 div .up store
stop

'Shoot feed
cond
*.eye5 30 >
*997 *998 !=
*.refpoison *.refshell >=
start
-6 .shoot store
stop

cond
*.eye5 30 >
*997 *998 !=
*.refpoison *.refshell <
start
-1 .shoot store
stop

'Making venom
cond
*.nrg 300 >
*.body 40 >
*.nrg 2 div 100 75 *.venom sub >
start
75 *.venom sub .strvenom store
stop

'Firing venom
cond
*.eye5 30 >
*997 *998 !=
*997 0 !=
*.venom 25 >
*.robage 10 sub *990 >
start
.setaim .vloc store
*.aim .venval store
*.venom 25 sub rnd 25 add .shootval store
-3 .shoot store
*.robage 990 store
stop

'Info shots
cond
*.eye5 30 >
*997 *998 !=
*997 0 !=
*.robage 4 sub *989 >
start
31999 .shootval store
.mkslime .shoot store
*.robage 989 store
stop

'Deltie enemy ties/conspec ties
cond
*.numties 0 >
*.tiepres *996 !=
*.trefshoot *.trefeye add *.trefup add *998 = or
start
*.tiepres .deltie store
stop

'Tie
cond
*.eye5 30 >
*997 *998 !=
*.numties 0 =
start
999 rnd 996 store
*996 .tie store
stop

'Tiefeed/Counter leach
cond
*.numties 0 >
*.trefshoot *.trefeye add *.trefup add *998 !=
start
*996 .tienum store
*.tieval sgn .tieloc store
-1000 .tieval store
stop

'Body to Energy Conversion
cond
*.nrg 850 <
*.body 50 >
start
*.body 10 sub 100 ceil 10 mult .fdbody store
stop

'Energy to Body Conversion
cond
*.nrg 250 >
*.body 50 <
start
*.body 30 sub 100 ceil .strbody store
stop

'Waste Removal
cond
*.waste 100 >=
start
-4 .shoot store
*.waste .shootval store
stop

'Shoot Virii
cond
*.eye5 15 >
*.nrg 150 >
*.vtimer 1 =
start
50 .vshoot store
stop

'Make Virii
cond
*.vtimer 0 =
start
*.thisgene 1 add .mkvirus store
stop

'Virus
cond
65 *999 !=
start
*.thisgene .mkvirus store
*.myeye *.myshoot add *.myup add 31999 mult 50 floor .vshoot store
.delgene dec
stop

'Chameleon genes
cond
*.in1 0 !=
*.in1 *.out1 !=
start
*.in1 .out1 store
stop

cond
*.in2 0 !=
*.in2 *.out2 !=
start
*.in2 .out2 store
stop

'Some various code defenses
cond
*.fixed 0 !=
start
0 .fixpos store
stop

cond
*.delgene 0 !=
start
0 .delgene store
stop

cond
*.shoot -2 =
start
0 .shoot store
stop

cond
*.mrepro 0 !=
start
0 .mrepro store
stop

cond
*.sexrepro 0 !=
start
0 .sexrepro store
stop

cond
*.repro 49 !=
*.repro 0 !=
start
0 .repro store
stop

'End of Program
end

13
Bot Tavern / Rabidus v1.1 (F1)(Googlyeyesultra)-15.07.07
« on: July 14, 2007, 07:57:10 PM »
In my own personal runs, this one was able to beat the entire F1 league EXCEPT for Etch. Curse you, Etch! Some of 'em take a little while, though.

Code: [Select]
'Rabidus: A bot by googlyeyesultra.

cond
start
'Conspec, Self-Virus Protection, Set Eyewidth
*.myeye *.myshoot add 998 *.robage sgn 1 sub -1 mult mult store
65 999 *.robage sgn 1 sub -1 mult mult store
1221 .eye5width *.robage sgn 1 sub -1 mult mult store

'Targeting/Movement
*.refxpos *.refypos angle .setaim
*.eye5 sqr dup div
*997 *998 sub dup div mult mult store

*.refveldx *.veldx sub .dx
*.eye5 sqr dup div
*997 *998 sub dup div mult mult store

*.refxpos *.refypos dist 2 div *.refvelup add *.velup sub .up
*.eye5 sqr dup div
*997 *998 sub dup div mult mult store

'Sharefeed if multi
99 .sharenrg *.multi mult store
.sharewaste *.multi mult inc
stop

'Reproduce
cond
*.nrg 850 >
*.body 50 >=
start
100 .strbody store
49 .repro store
stop

'Conspec
cond
*.refeye *.refshoot add *997 !=
start
*.refeye *.refshoot add 997 store
stop

'Birthie cut
cond
*.robage 2 <
start
.tie *.robage -1 mult 1 add mult inc
.deltie inc
11 990 store
stop

'Spread out when born
cond
*.eye5 0 !=
*997 *998 =
*.robage 20 <
*.robage 2 >
start
*.refxpos *.refypos angle 628 add .setaim store
*.eye5 .up store
stop

'Shoot feed
cond
*.eye5 30 >
*997 *998 !=
*.refpoison *.refshell >=
start
-6 .shoot store
stop

cond
*.eye5 30 >
*997 *998 !=
*.refpoison *.refshell <
start
-1 .shoot store
stop

'Making venom
cond
*.nrg 300 >
*.body 40 >
*.nrg 2 div 100 75 *.venom sub >
start
75 *.venom sub .strvenom store
stop

'Firing venom
cond
*.eye5 30 >
*997 *998 !=
*997 0 !=
*.venom 25 >
*.robage 10 sub *990 >
start
.setaim .vloc store
*.aim .venval store
*.venom 25 sub rnd 25 add .shootval store
-3 .shoot store
*.robage 990 store
stop

'Deltie enemy ties/conspec ties
cond
*.numties 0 >
*.tiepres *996 !=
*.trefshoot *.trefeye add *998 = or
start
*.tiepres .deltie store
stop

'Tie
cond
*.eye5 30 >
*997 *998 !=
*.numties 0 =
start
999 rnd 996 store
*996 .tie store
stop

'Tiefeed/Counter leach
cond
*.numties 0 >
*.trefshoot *.trefeye add *998 !=
start
*996 .tienum store
*.tieval sgn .tieloc store
-1000 .tieval store
stop

'Body to Energy Conversion
cond
*.nrg 850 <
*.body 50 >
start
*.body 50 sub 100 ceil 10 mult .fdbody store
stop

'Energy to Body Conversion
cond
*.nrg 250 >
*.body 50 <
start
*.body 50 sub 100 ceil .strbody store
stop

'Waste Removal
cond
*.waste 100 >=
start
-4 .shoot store
*.waste .shootval store
stop

'Shoot Virii
cond
*.eye5 15 >
*.nrg 150 >
*.vtimer 1 =
start
50 .vshoot store
stop

'Make Virii
cond
*.vtimer 0 =
start
*.thisgene 1 add .mkvirus store
stop

'Virus
cond
65 *999 !=
start
*.thisgene .mkvirus store
*.myeye *.myshoot add 31999 mult 50 floor .vshoot store
.delgene dec
stop

'Chameleon genes
cond
*.in1 0 !=
*.in1 *.out1 !=
start
*.in1 .out1 store
stop

cond
*.in2 0 !=
*.in2 *.out2 !=
start
*.in2 .out2 store
stop

'Some various code defenses
cond
*.fixed 0 !=
start
0 .fixpos store
stop

cond
*.delgene 0 !=
start
0 .delgene store
stop

cond
*.shoot -2 =
start
0 .shoot store
stop

cond
*.mrepro 0 !=
start
0 .mrepro store
stop

cond
*.sexrepro 0 !=
start
0 .sexrepro store
stop

cond
*.repro 49 !=
*.repro 0 !=
start
0 .repro store
stop

'End of Program
end

14
F1 bots / Rabidus (F1)(Vir)(Googlyeyesultra)-01.07.07
« on: July 12, 2007, 11:05:45 PM »
This thing is ownin' most of the league in my own run. Try it out, please, for F1 league. I suspect it'll get fairly far.

Edit: Holy cow, using F1 defaults and a simple 5 round per contest on my own machine, mine ended up number 3! Holy cow, it's number three!

Code: [Select]
'Rabidus: A bot by googlyeyesultra.
 
 cond
 start
 'Conspec, Self-Virus Protection, Set Eyewidth
 *.myeye *.myshoot add 92 add 998 *.robage sgn 1 sub -1 mult mult store
 65 999 *.robage sgn 1 sub -1 mult mult store
 1221 .eye5width *.robage sgn 1 sub -1 mult mult store
 stop
 
 'Reproduce
 cond
 *.nrg 850 >
 start
 100 .strbody store
 49 .repro store
 stop
 
 'Conspec
 cond
 *.refeye *.refshoot add 92 add *997 !=
 start
 *.refeye *.refshoot add 92 add 997 store
 stop
 
 'Spread out when born
 cond
 *.eye5 0 !=
 *997 *998 =
 *.robage 20 <
 start
 *.refxpos *.refypos angle 628 add .setaim store
 *.eye5 .up store
 stop
 
 'Targeting/Movement
 cond
 *.eye5 0 >
 *997 *998 !=
 start
 *.refxpos *.refypos angle .setaim store
 *.refveldx *.veldx sub .dx store
 *.refxpos *.refypos dist *.refvelup add *.velup sub 10 sub .up store
 stop
 
 'Shootfeed
 cond
 *.eye5 30 >
 *997 *998 !=
 start
 -6 .shoot store
 stop
 
 'Del ties not made by me
 cond
 *.numties 0 >
 *.tiepres *996 !=
 start
 *.tiepres .deltie store
 stop
 
 'Tie
 cond
 *.eye5 30 >
 *997 *998 !=
 *.numties 0 =
 start
 999 rnd 996 store
 *996 .tie store
 stop
 
 'Tiefeed
 cond
 *.numties 0 >
 start
 996 *.numties sub rnd 996 *.numties add * .tienum store
 -1 .tieloc store
 -1000 .tieval store
 stop
 
 'Sharefeed if multi
 cond
 *.multi 0 >
 start
 99 .sharenrg store
 stop
 
 'Body to Energy Conversion
 cond
 *.nrg 850 <
 *.body 50 >
 start
 *.body 50 sub 100 ceil 10 mult .fdbody store
 stop
 
 'Energy to Body Conversion
 cond
 *.nrg 250 >
 *.body 50 <
 start
 *.body 50 sub 100 ceil .strbody store
 stop
 
 'Waste Removal
 cond
 *.waste 50 >=
 start
 -4 .shoot store
 *.waste .shootval store
 stop
 
 'Shoot Virii
 cond
 *.eye5 15 >
 *.nrg 150 >
 *.vtimer 1 =
 start
 50 .vshoot store
 stop
 
 'Make Virii
 cond
 *.vtimer 0 =
 start
 *.thisgene 1 add .mkvirus store
 stop
 
 'Virus
 cond
 65 *999 !=
 start
 *.thisgene .mkvirus store
 *.myeye *.myshoot add 32000 mult 50 add 32000 ceil .vshoot store
 .delgene dec
 stop
 
 'Chameleon genes
 cond
 *.in1 0 !=
 *.in1 *.out1 !=
 start
 *.in1 .out1 store
 stop
 
 cond
 *.in2 0 !=
 *.in2 *.out2 !=
 start
 *.in2 .out2 store
 stop
 
 'Some various code defenses
 cond
 *.fixed 0 !=
 start
 0 .fixpos store
 stop
 
 cond
 *.delgene 0 >
 start
 0 .delgene store
 stop
 
 cond
 *.shoot -6 !=
 *.shoot -1 !=
 *.shoot 0 !=
 *.shoot -4 !=
 start
 0 .shoot store
 stop
 
 cond
 *.mrepro 0 !=
 start
 0 .mrepro store
 stop
 
 cond
 *.sexrepro 0 !=
 start
 0 .sexrepro store
 stop
 
 cond
 *.repro 49 !=
 *.repro 0 !=
 start
 0 .repro store
 stop
 
 'End of Program
 end
 

15
F1 bots / SmartShooter (F1)(googleyesultra) - 01.07.07
« on: July 01, 2007, 04:02:16 AM »
Feel free to run this through f1, if you please. No clue if it'll have even the slightest chance. Anyways, here's my best shot at coding something in reverse polish. Also, this was designed in 2.43, so it's probably a lot worse in the other version.

Code: [Select]
'SmartShooter: A bot by googlyeyesultra.
 
 'Springy Birth-ties + Self-Virus Protection
 cond
 *.robage 0 =
 start
 0 .stifftie store
 65 999 store
 *.myeye *.myshoot add 998 store
 stop
 
 'Conspec
 cond
 *.refeye *.refshoot add *997 !=
 start
 *.refeye *.refshoot add 997 store
 stop
 
 'Set Poison
 cond
 *.ploc .shoot !=
 start
 .shoot .ploc store
 stop
 
 'Reproduce
 cond
 *.nrg 5000 >
 *.body 1000 >
 *.eye5 40 <
 start
 50 .repro store
 stop
 
 'Targeting
 cond
 *.hit 0 !=
 *.shang 90 add 180 <=
 start
 0 .hit store
 *.shang 90 add .aimdx store
 stop
 
 cond
 *.hit 0 !=
 *.shang 90 add 180 >
 start
 0 .hit store
 360 *.shang sub 90 add .aimsx store
 stop
 
 cond
 *.eye1 *.eye2 >=
 *.eye1 *.eye3 >=
 *.eye1 *.eye4 >=
 *.eye1 *.eye5 >=
 *.eye1 *.eye6 >=
 *.eye1 *.eye7 >=
 *.eye1 *.eye8 >=
 *.eye1 *.eye9 >=
 start
 mult -140
 stop
 
 cond
 *.eye9 *.eye2 >=
 *.eye9 *.eye3 >=
 *.eye9 *.eye4 >=
 *.eye9 *.eye5 >=
 *.eye9 *.eye6 >=
 *.eye9 *.eye7 >=
 *.eye9 *.eye8 >=
 *.eye9 *.eye1 >=
 start
 mult 140
 stop
 
 cond
 *.eye2 *.eye9 >=
 *.eye2 *.eye3 >=
 *.eye2 *.eye4 >=
 *.eye2 *.eye5 >=
 *.eye2 *.eye6 >=
 *.eye2 *.eye7 >=
 *.eye2 *.eye8 >=
 *.eye2 *.eye1 >=
 start
 mult -105
 stop
 
 cond
 *.eye8 *.eye9 >=
 *.eye8 *.eye3 >=
 *.eye8 *.eye4 >=
 *.eye8 *.eye5 >=
 *.eye8 *.eye6 >=
 *.eye8 *.eye7 >=
 *.eye8 *.eye2 >=
 *.eye8 *.eye1 >=
 start
 mult 105
 stop
 
 cond
 *.eye3 *.eye9 >=
 *.eye3 *.eye8 >=
 *.eye3 *.eye4 >=
 *.eye3 *.eye5 >=
 *.eye3 *.eye6 >=
 *.eye3 *.eye7 >=
 *.eye3 *.eye2 >=
 *.eye3 *.eye1 >=
 start
 mult -70
 stop
 
 cond
 *.eye7 *.eye9 >=
 *.eye7 *.eye8 >=
 *.eye7 *.eye4 >=
 *.eye7 *.eye5 >=
 *.eye7 *.eye6 >=
 *.eye7 *.eye3 >=
 *.eye7 *.eye2 >=
 *.eye7 *.eye1 >=
 start
 mult 70
 stop
 
 cond
 *.eye4 *.eye9 >=
 *.eye4 *.eye8 >=
 *.eye4 *.eye7 >=
 *.eye4 *.eye5 >=
 *.eye4 *.eye6 >=
 *.eye4 *.eye3 >=
 *.eye4 *.eye2 >=
 *.eye4 *.eye1 >=
 start
 mult -35
 stop
 
 cond
 *.eye6 *.eye9 >=
 *.eye6 *.eye8 >=
 *.eye6 *.eye7 >=
 *.eye6 *.eye5 >=
 *.eye6 *.eye4 >=
 *.eye6 *.eye3 >=
 *.eye6 *.eye2 >=
 *.eye6 *.eye1 >=
 start
 mult 35
 stop
 
 cond
 *997 *998 !=
 *.eye5 *.eye9 >=
 *.eye5 *.eye8 >=
 *.eye5 *.eye7 >=
 *.eye5 *.eye6 >=
 *.eye5 *.eye4 >=
 *.eye5 *.eye3 >=
 *.eye5 *.eye2 >=
 *.eye5 *.eye1 >=
 start
 *.refveldx *.veldx sub .dx store
 5000 *.eye5 div *.refvelup add *.velup sub .up store
 *.refxpos *.refypos angle .setaim store
 mult
 stop
 
 cond
 start
 .aimdx store
 stop
 
 'Veggie Feed
 cond
 *997 *998 !=
 *997 0 =
 *.eye5 30 >
 *.refnrg 10 mult *.refbody >=
 start
 -1 .shoot store
 stop
 
 cond
 *997 *998 !=
 *997 0 =
 *.eye5 30 >
 *.refbody *.refnrg 10 mult >
 start
 -6 .shoot store
 stop
 
 'Enemy Kill
 cond
 *997 0 !=
 *997 *998 !=
 *.eye5 30 >
 *.refnrg 10 mult *.refbody <=
 start
 -1 .shoot store
 stop
 
 cond
 *997 0 !=
 *997 *998 !=
 *.eye5 30 >
 *.refbody *.refnrg 10 mult <
 start
 -6 .shoot store
 stop
 
 'Body to Energy Conversion
 cond
 *.nrg 2000 <
 start
 100 .fdbody store
 stop
 
 'Energy to Body Conversion
 cond
 *.nrg 1.3 div *.body  >
 *.nrg 3000 >
 *.body 1500 <
 start
 100 .strbody store
 stop
 
 'Waste Removal
 cond
 *.waste 50 >=
 start
 -4 .shoot store
 *.waste .shootval store
 stop
 
 'Some various code defenses
 cond
 *.in1 0 !=
 *.in1 *.out1 !=
 start
 *.in1 .out1 store
 stop
 
 cond
 *.in2 0 !=
 *.in2 *.out2 !=
 start
 *.in2 .out2 store
 stop
 
 cond
 *.fixed 0 !=
 start
 0 .fixpos store
 stop
 
 cond
 *.numties 0 >
 start
 *.tiepres .deltie store
 stop
 
 cond
 *.delgene 0 !=
 start
 0 .delgene store
 stop
 
 cond
 *.shoot -2 =
 start
 0 .shoot store
 stop
 
 'Defenses
 cond
 cond
 *.nrg 1000 >
 *.shell 500 <
 start
 500 *.shell sub 100 ceil .mkshell store
 stop
 
 cond
 *.nrg 1000 >
 *.poison 500 <
 start
 500 *.poison sub 100 ceil .strpoison store
 stop
 
 cond
 *.nrg 1000 >
 *.slime 500 <
 start
 500 *.slime sub 100 ceil .mkslime store
 stop
 
 'Shoot Virii
 cond
 *.nrg 2000 >
 *.vtimer 1 =
 start
 50 .vshoot store
 stop
 
 'Make Virii
 cond
 *.vtimer 0 =
 start
 *.thisgene 1 add .mkvirus store
 stop
 
 'Virus
 cond
 65 *999 !=
 start
 *.thisgene .mkvirus store
 *.myeye *.myshoot add 32000 mult 50 add 32000 ceil .vshoot store
 .delgene dec
 stop
 
 'End of Program
 end
 

Pages: [1] 2