General > Bot Challenges

Conspec Challenge

(1/7) > >>

Moonfisher:
Start in normal F1 conditions, with the test alge as the only alge and your bot as the only bot.
The object is to live off the alge with a bot that has a conspec (Doesn't attack it's own).
I guess the secondary objective would be to have as solid a conspec as possible, only being folled for as few cycles as possible, or not at all.

Also ofcouse the conspec used should be something that's hasn't been posted in this topic yet.
There are conspecs out there it can't steal, you can also post those if you like, but I want to encourage people to try to think of new ways aswell.

The test alge will not attack or make shell or anything like that, it only reproduces slowly and steals conpecs.
Just post or upload a bot that uses the conspec you want to submit.

The conpec test alge :

--- Code: ---'Alge for testing your conspec
'If you can't get up close and feed on this
'Then your conspec is obviously vulnerable to these genes

cond
*.robage 0 =
start
.memloc .memloc store
.tmemloc .tmemloc store
100 .eye5width 1 mult store
stop

cond
*.nrg 3000 >
start
50 .repro store
stop

cond
*.memloc .memloc !=
*.memval 0 !=
start
*.memval *.memloc store
stop

cond
*.memloc .memloc !=
start
.memloc .memloc store
stop

cond
*.eyef 0 >
*.memloc .memloc =
*.memval 0 >
*.memval .memloc !=
start
*.memval .memloc store
stop

cond
*.tmemloc .tmemloc !=
*.tmemval 0 !=
start
*.tmemval *.tmemloc store
stop

cond
*.tmemloc .tmemloc !=
start
.tmemloc .tmemloc store
stop

cond
*.numties 0 >
*.tmemloc .tmemloc =
*.tmemval 0 >
*.tmemval .tmemloc !=
start
*.tmemval .tmemloc store
stop

cond
*.eyef 0 >
start
*.in1 .out1 store
*.in2 .out2 store
*.in3 .out3 store
*.in4 .out4 store
*.in5 .out5 store
*.in6 .out6 store
*.in7 .out7 store
*.in8 .out8 store
*.in9 .out9 store
*.in10 .out10 store
stop

cond
*.numties 0 >
start
*.tin1 .tout1 store
*.tin2 .tout2 store
*.tin3 .tout3 store
*.tin4 .tout4 store
*.tin5 .tout5 store
*.tin6 .tout6 store
*.tin7 .tout7 store
*.tin8 .tout8 store
*.tin9 .tout9 store
*.tin10 .tout10 store
stop

cond
*.eyef 0 >
start
*.refxpos *.refypos angle .setaim store
stop

cond
*.eyef 0 =
start
*.aim 70 add .setaim store
stop

cond
*.shflav 0 !=
*.shflav -2 !=
*.memloc .memloc =
start
*.aim *.shang sub .setaim store
0 .shflav store
stop


'--- Addapt shoot commands
cond
*.eyef 0 >
*.refshoot *.myshoot <
start
*.thisgene 1 add .delgene store

*.myshoot *.refshoot sub 1 >
*.thisgene 3 add .delgene store

*.myshoot *.refshoot sub 4 >
*.thisgene 4 add .delgene store

*.myshoot *.refshoot sub 9 >
*.thisgene 5 add .delgene store

*.myshoot *.refshoot sub 19 >
*.thisgene 6 add .delgene store

*.myshoot *.refshoot sub 39 >
*.thisgene 7 add .delgene store
stop

cond
0 1 =
start
0 .shoot store
stop

cond
0 1 =
start
0 .shoot store
stop

cond
0 1 =
start
0 .shoot store
0 .shoot store
stop

cond
0 1 =
start
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
stop

cond
0 1 =
start
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
stop

cond
0 1 =
start
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
stop

cond
0 1 =
start
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
0 .shoot store
stop


'--- Addapt eye commands
cond
*.eyef 0 >
*.refeye *.myeye <
start
*.thisgene 1 add .delgene store

*.myeye *.refeye sub 1 >
*.thisgene 3 add .delgene store

*.myeye *.refeye sub 4 >
*.thisgene 4 add .delgene store

*.myeye *.refeye sub 9 >
*.thisgene 5 add .delgene store

*.myeye *.refeye sub 19 >
*.thisgene 6 add .delgene store

*.myeye *.refeye sub 39 >
*.thisgene 7 add .delgene store
stop

cond
0 1 =
start
*.eye9 0 >
stop

cond
0 1 =
start
*.eye9 0 >
stop

cond
0 1 =
start
*.eye9 0 >
*.eye9 0 >
stop

cond
0 1 =
start
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
stop

cond
0 1 =
start
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
stop

cond
0 1 =
start
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
stop

cond
0 1 =
start
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
*.eye9 0 >
stop

end

--- End code ---

Peksa:
There's a bunch more refvars, like .refdx or .refdn, but I guess using them would be unsportsmanlike

fulizer:
not really theres was no rule against what conspecs you can and cannot use.
also a conspec is a conspec weather moonfisher likes it or not.
anyway living of vegs isnt that hard I thing my bot has a just aout solid conspec but unfortulatey I lost the origonal code and the only other one I have is badly mutated.

Moonfisher:
There are no rules, as long as you can eat the alge.
Using other refvars can be interesting, like always aiming in the same direction and using .refaim, or always traveling at a certain speed...
But it's an extra bonus if the conspec can be put into any bot.
The point is actualy to see some new ways of building a conspec.

So far there are some "plug n play" conspecs this doesn't beat.
Endy uses .thisgene as it's .memloc value and has it's conpec as the last gene.
Since thisgene is a sysvar that gets updated each cycle.
Not sure if it's fooled for one cycle when the key is first entered though, that would still let it be fooled every 2 cycles while the target is looking at it...
I guess you could save the observed keys and push them into their memmory locations every cycle, but that would be more complex.
And I'm not sure you can overide any sysvar, you could have a bot that randomly checks, .thisgene/.genes/.dnalen/.totalmyspecies or something like that.
(The bots with Endy's conspec don't seem to be fooled though, so I'm guessing maybe .thisgene is also updated after the last gene)

But the new Slim evo has an even better way. Just pushes a value into out4 and if in4 is the same it's an enemy... so easy but very effective. (I can't think of a way to fool that)

Peksa:
Actually, .refup and .refdn refer to number of .up or .dn commands in the DNA. It's .refvelup etc. that you're thinking of. Interesting thought though, to use speed for conspec.

Aura had an interesting conspec recognition system:


--- Code: ---cond
start
1234 *.robage 1234 mod sub .out1 store
start

cond
1234 *.refage 1234 mod sub *.in1 %=
start
1 .botisafriend store
stop
--- End code ---

Something like that at least, I can't remember exactly.

Navigation

[0] Message Index

[#] Next page

Go to full version