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 - d-EVO

Pages: [1] 2
1
The Gene depository / Tuning gene
« on: December 18, 2008, 03:12:56 PM »
No more trouble choosing constants
because YOU DONT HAVE TO !!!  

this gene can "tune" any constant you want.
some examples are:
turning constants, shootval, up, repro (not recomended), and baisicaly any other constant.

This gene works by storing a value in ratial memory (the constant to be tuned),
Any child that the bot has will randomly inc or dec the constant,
the more successful child will have the most children and pass the more successful constant on (baisicaly, very controlled evolution)
Capable of producing realy finly tuned bots.

Here is the code (actualy consits of 2 genes)

first you can define the constant to a memory location,
it is nt nessicary but will make it more readable,
a RACTIAL memory location MUST be used ( 971 -990 )

Code: [Select]
def iset 972           'this is so the bot knows if it has already set an initial value, only the first bot will initiate the primary constant
def constant 971    'the "constant" can be replaced with anything you want, eg. shootvalue, aimright, moveup (note: must not be the same name as an existing memory name

Now you need to initiate the constant,
the first constant can be totaly random or a specific value

Code: [Select]
'initial random setup
cond
 *.robage 0 =
 *.iset 0 =
start
 .iset inc
 100 rnd .constant store
stop

Code: [Select]
'initial specified setup
cond
 *.robage 0 =
 *.iset 0 =
start
 .iset inc
 50 .constant store
stop

now the constant is inced or deced
note: this gene will only inc or dec the constant 50% of the time, this can be changed of course

Code: [Select]
'evo constant
cond
 *.robage 0 =
start
 'evo
 1 rnd 970 add dup
 1 rnd 0 =
 inc
 not
 dec
 dropbool
stop

And what you do now is instead of puting the actuale constant were you want it, you put the memory location of were it is stored
example:

instead of writing

20 .shootval store

you write

*.constant .shootval store

to see what the constant is, you simply view the bots memory location to which the constant is stored

The following is a mod af animal_minimalus
It changes shootval to find its optimum value in its location
once you found the optimum value, you can replace the constant in the bot you are developing with the one that the *.constant memory location holds

The following are to bots I developed,
First is a mod of Animal_minimalis that develops its shootval, the optimal constant I found for shootval was 32
The second is totaly original and capable of developing interesting swarming capabilities, note: this bot develops multiple constants

Code: [Select]
'evoless evo
'Animal_Adaptis

'seting vars
def iset 972
def shootvalue 971

'initial random setup
cond
 *.robage 0 =
 *.iset 0 =
start
 .iset inc
 100 rnd .shootvalue store
stop

'setup / evo
cond
 *.robage 0 =
start
 'evo
 1 rnd 970 add dup
 1 rnd 0 =
 inc
 not
 dec
 dropbool
stop

' Food Finder
cond
 *.eye5 0 >
 *.refeye *.myeye !=
start
 *.refveldx .dx store
 *.refvelup 30 add .up store
stop

' Eat Food
cond
 *.robage 0 !=
 *.eye5 50 >
 *.refeye *.myeye !=
start
*.shootvalue .shootval store
-1 .shoot store
 *.refvelup .up store
stop

' Avoiding Family
cond
 *.eye5 0 =
 *.refeye *.myeye = or
start
 314 rnd .aimdx store
stop

' Reproduce
cond
 *.nrg 20000 >
start
 30 .repro store
stop

' Body
cond
 *.body 1000 <
 *.nrg 500 >
start
 100 .strbody store
stop

end

Code: [Select]
'evoless evo
'Adaptive_preditor

'seting vars
def iset 971
def mconup 972
def mconsx 973
def mcondx 974
def scondi 975

'initial random setup
cond
 *.robage 0 =
 *.iset 0 =
start
 .iset inc
 100 rnd .mconup store
 100 rnd .mconsx store
 100 rnd .mcondx store
 100 rnd .scondi store
stop

'setup / evo
cond
 *.robage 0 =
start
 'setting eyes
 40 .eye5width store
 60 .eye1width store
 60 .eye9width store
 'evo
 5 rnd 970 add dup
 1 rnd 0 =
 inc
 not
 dec
 dropbool
stop

'chasing food / feeding

cond
 *.robage 0 >
 *.eye5 0 >
 *.refeye *.myeye !=
start
 *.eye5 *.scondi >
 -1 .shoot store
 not
 *.mconup .up store
 dropbool
stop

'finding food

cond
 *.eye1 *.eye9 add 0 =
 *.eye5 0 =
 *.refeye *.myeye = or and
 *.robage 0 >
start
 rnd *.mcondx *.mcondx add .aimdx store
stop

cond
 *.eye1 *.eye9 >
 *.eye5 0 =
 *.refeye *.myeye = or and
 *.robage 0 >
start
 *.mconsx .aimsx store
 *.mconup .up store
stop

cond
 *.eye9 *.eye1 >
 *.eye5 0 =
 *.refeye *.myeye = or and
 *.robage 0 >
start
 *.mcondx .aimdx store
 *.mconup .up store
stop

cond
 *.scondi *.eyef <
 *.refeye *.myeye =
 *.robage 0 >
start
 *.mconup .dn store
 0 .up store
stop

'reprodicing

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


2
Formula 3 / Make sure rules are ok
« on: December 10, 2008, 02:12:34 PM »
any queries on the F3 league rules go here.

I dont think there will be many but I got one.

Is .mrepro alowd?
If not, maby you should put it in the rules

3
Interesting behaviour bots / gatling gun
« on: December 02, 2008, 04:30:51 PM »
This bot has an uber long rang. and is super accurate!
no shootval was used (except for waste expulsion)
how far it can shoot is not limited by the shot range, but by the longest possable eye distance that can be achieved !
Think it will be interesting to see how it evolves.
The timing was a mission to get right.

Code: [Select]
'gatling gun

def cock 50

cond
*.robage 0 =
start
-34 .eye5width store
stop

cond
*.eye5 0 =
*.refeye *.myeye = or
start
10 .aimdx store
stop

cond
*.eye5 0 >
*.refeye *.myeye !=
start
*.refxpos *.refypos angle .setaim store
*.cock 1 = *.velup 0 <
0 .cock store
1 .fixpos store
dropbool
*.cock 1 = *.velup 0 = and
0 .fixpos store
*.maxvel .dn store
dropbool
*.velup 0 >
*.cock inc
1 .fixpos store
dropbool
*.velup 0 = *.cock 0 = and
0 .fixpos store
*.maxvel .up store
*.nrg 20000 >
40 .repro store
not and
-1 .shoot store
1 .cock store
dropbool
dropbool
stop

cond
*.body 1000 <
start
100 .strbody store
stop

cond
*.waste 40 >
start
.backshot inc
-4 .shoot store
*.waste .shootval store
stop

end

4
F2 bots / BETA-AA-(F2)(30-11-2008)
« on: November 30, 2008, 10:20:37 AM »
Just upgraded the aiming and tuned it a bit
Uses no anti-virus protection or tie feeding or slime, but gets all the way to ThisnThat in F2 and beats every F1 bot !!!
feel free to comment

Code: [Select]
'NAME         :BETA-AA
'LEAGUE        :F2, SB
'CREATOR    :d-EVO

'BEHAVIOR
'    If this bot sees a frienly that is tracking an enemy, The bot will aim at that enemy
'    Unfoolable recognition system (well almost, cant think of a way to beat it(well I have but it wont be easy))
'    It will reproduce out the back while feeding, offspring will help the mother if no enemys are behind

'FACTS
'    3 genes with 2 states (setting the bot, attacking and finding something to attack)
'    most of the actions are controled through ratios. some of them are listed below
'                    poison /shell is retio between body size and the current amount of poison /shell
'                    How close it must be to feed from a target is determined by refveldx

cond
  *.robage 0 =
start
  -436 .eye9dir store
  -327 .eye8dir store
  -218 .eye7dir store
  -109 .eye6dir store
  109 .eye4dir store
  218 .eye3dir store
  327 .eye2dir store
  436 .eye1dir store
  109 .eye1width store
  109 .eye2width store
  109 .eye3width store
  109 .eye4width store
  109 .eye5width store
  109 .eye6width store
  109 .eye7width store
  109 .eye8width store
  109 .eye9width store
  .shoot .ploc store
  .tie inc
  0 .timer store
  0 .out1 store
  100 rnd dup .out8 store 10 add .out9 store
stop

cond
 *.eyef 0 =
 *.eyef 0 >
 *.in8 *.in9 10 sub =
 *.in8 *.out8 != and and or
start
  100 rnd dup .out8 store 10 add .out9 store
  0 .out1 store
  *.maxvel .up store
  -4 *.eye1 sgn mult *.eye2 sgn -- abs mult *.eye3 sgn -- abs mult *.eye4 sgn -- abs mult *.eye5 sgn -- abs mult
  *.eye6 sgn -- abs mult *.eye7 sgn -- abs mult *.eye8 sgn -- abs mult *.eye9 sgn -- abs mult 4 *.eye9 sgn mult *.eye2 sgn
  -- abs mult *.eye3 sgn -- abs mult *.eye4 sgn -- abs mult *.eye5 sgn -- abs mult *.eye6 sgn -- abs mult *.eye7 sgn --
  abs mult *.eye8 sgn -- abs mult add -3 *.eye2 sgn mult *.eye3 sgn -- abs mult *.eye4 sgn -- abs mult *.eye5 sgn -- abs
  mult *.eye6 sgn -- abs mult *.eye7 sgn -- abs mult *.eye8 sgn -- abs mult add 3 *.eye8 sgn mult *.eye3 sgn -- abs mult
  *.eye4 sgn -- abs mult *.eye5 sgn -- abs mult *.eye6 sgn -- abs mult *.eye7 sgn -- abs mult add -2 *.eye3 sgn mult
  *.eye4 sgn -- abs mult *.eye5 sgn -- abs mult *.eye6 sgn -- abs mult *.eye7 sgn -- abs mult add 2 *.eye7 sgn mult
  *.eye4 sgn -- abs mult *.eye5 sgn -- abs mult *.eye6 sgn -- abs mult add -1 *.eye4 sgn mult *.eye5 sgn -- abs mult
  *.eye6 sgn -- abs mult add 1 *.eye6 sgn mult *.eye5 sgn -- abs mult add 0 *.eye5 sgn mult add .focuseye store
 *.eye5 0 > *.in1 0 = and *.timer 1001 = and
  20 .dx store
  dropbool
 *.eye5 0 > *.in1 1 = and
  *.in2 *.in3 angle .setaim store
  *.maxvel .up store
  1000 .timer store
  dropbool
 *.nrg 2 mult *.body  >
  *.nrg 10 div 10 sub 99 ceil .strbody store
  dropbool
 *.nrg 2 mult *.body <
  99 .fdbody store
  dropbool
 *.body 900 >
  628 .aimdx store
  40 .repro store
  0 .timer store
  dropbool
 *.timer 1 =
  628 .aimdx store
  dropbool
 *.shell 6 mult *.body <
  100 .mkshell store
  dropbool
 *.poison 8 mult *.body <
  100 .strpoison store
  dropbool
 *.waste 100 >
  .backshoot inc
 *.waste .shootval store
  -4 .shoot store
  dropbool
 *.robage 1 =
  .deltie inc
  dropbool
 *.poisoned 0 != *.paralyzed  0 != or
  99 .repro store
  dropbool
stop

cond
  *.eyef 0 >
  *.in9 10 sub *.in8 !=
  *.in8 *.out8 = or and
start
  0 .focuseye store
  100 rnd dup .out8 store 10 add .out9 store
  1 .out1 store
  *.refxpos .out2 store
  *.refypos .out3 store
  *.refxpos *.refypos angle .setaim store
  0 .focuseye store
  *.refveldx .dx store
  32 .shootval store
 *.eye5 *.refveldx abs 10 add <
  *.refvelup 40 .up store
  dropbool
 *.eye5 *.refveldx abs 10 add >
  *.refvelup 10 sub .up store
  dropbool
 *.refpoison *.refshell => and *.eye5 7 > and
  -6 .shoot store
  dropbool
 *.refpoison *.refshell < *.eye5 7 > and
  -1 .shoot store
  dropbool
 *.nrg 2 mult *.body  >
  *.nrg 10 div 10 sub 99 ceil .strbody store
  dropbool
 *.nrg 3 mult *.body 2 mult <
  100 .fdbody store
  dropbool
 *.body 900 >
  628 .aimdx store
  40 .repro store
  0 .timer store
  dropbool
 *.timer 1 =
  628 .aimdx store
  dropbool
  *.shell 3 mult *.body <
  100 .mkshell store
  dropbool
 *.poison 4 mult *.body <
  100 .strpoison store
  dropbool
 *.waste 100 >
  .backshoot inc
  *.waste .shootval store
  -4 .shoot store
  dropbool
 *.robage 1 =
  .deltie inc
  dropbool
 *.poisoned 0 != *.paralyzed  0 != or
  99 .repro store
  dropbool
stop

end

5
Interesting behaviour bots / SexBot
« on: November 24, 2008, 03:40:05 PM »
This is my first sex repo bot.

tell me what you think

Code: [Select]
'NAME        : SexBot
'BY        : d-EVO
'CLASS        : IB

'Males compete for females
'Females run away from males so only the strongest males can mate
'Unmutated they will not inbreed
'Dont handle mutations well
'Make sure you start of with at least two females and 1 male,
'Females will grow bigger than males
'Males don't feed


def x 50
def y 51
def mom 971

'Universal comandes

cond
 *.eye5 0 =
start
 *.eye1 *eye2 add *.eye3 add *.eye4 add *.eye6 *.eye7 add *.eye8 add *.eye9 add sub sgn 40 mult .aimsx store
 *.vel 20 <
 10 .up store
 dropbool
stop

cond
 *.mom 0 =
start
 1000 rnd .mom store
stop

cond
 *.x 0 =
start
 1 rnd 1 add .x store
stop

start
 *.x .out1 store
 *.mom .out2 store
stop

'FEMALE

cond
 *.x 2 =
 *.body 3000 <
 *.nrg 3000 >
start
 100 .strbody store
stop

cond
 *.x 2 =
 *.fertilized 9 =
start
 10 .sexrepro store
stop

cond
 *.x 2 =
 *.eye5 0 >
 *.in1 0 !=
start
 *.maxvel .dn store
 624 .aimdx store
stop

cond
 *.x 2 =
 *.eye5 0 >
 *.in1 0 =
start
 *.refveldx .dx store
 *.eye5 50 =>
 *.refvelup .up store
 -6 .shoot store
 dropbool
 *.eye5 50 <
 *.refvelup 30 add .up store
 dropbool
stop

cond
 *.x 2 =
 *.eye5 0 >
 *.in1 2 =
start
 300 rnd .aimdx store
stop
 
'MALE

cond
 *.x 1 =
start
 *.body 1000 >
 100 .fdbody store
 dropbool
 *.nrg 32000 =
 16000 .shootval store
stop

cond
 *.x 1 =
 *.eye5 0 >
 *.in1 1 =
start
 *.refveldx .dx store
 *.eye5 50 =>
 *.refvelup .up store
 -6 .shoot store
 dropbool
 *.eye5 50 <
 *.refvelup 30 add .up store
 dropbool
stop

cond
 *.x 1 =
 *.eye5 0 >
 *.in1 2 =
 *.mom *.in2 !=
 *.refbody 3000 >
start
 *.refveldx .dx store
 *.eye5 50 =>
 *.refvelup .up store
 -8 .shoot store
 dropbool
 *.eye5 50 <
 *.refvelup 30 add .up store
 dropbool
stop

cond
 *.x 1 =
 *.eye5 0 >
 *.in1 0 =
 *.in1 2 =
 *.mom *.in2 = and
 *.refbody 3000 > and or and and
start
 300 rnd 600 add .aimdx store
stop

cond
*.waste 100 >
start
.backshot inc
-4 .shoot store
*.waste .shootval store
stop

6
Interesting behaviour bots / Incrumus
« on: November 21, 2008, 04:15:53 PM »
This bot does everything using only incramentation!!!!
It beats purpal flama. It does use tie feeding but that aint bad for a inc only bot

Code: [Select]
'NAME        : Incrumus
'CLASS        : 0 store, 0 dec
'BY        : d-EVO

cond
*.numties 0 =
*.eye5 0 =
*.myeye *.refeye = or
start
.aimdx inc
.aimdx inc
.aimdx inc
.aimdx inc
.aimdx inc
.aimdx inc
.aimdx inc
.aimdx inc
.aimdx inc
.aimdx inc
.aimdx inc
.aimdx inc
.aimdx inc
.aimdx inc
.aimdx inc
.aimdx inc
.aimdx inc
.aimdx inc
.aimdx inc
.aimdx inc
.aimdx inc
.aimdx inc
.aimdx inc
.aimdx inc
.aimdx inc
.aimdx inc
.aimdx inc
.aimdx inc
stop

cond
*.eye5 0 >
*.eye5 40 <
*.myeye *.refeye !=
*.numties 0 =
start
.up inc
.up inc
.up inc
stop

cond
*.robage 1 >
*.eye5 40 >
*.myeye *.refeye !=
*.numties 0 =
start
.tie inc
.tienum inc
stop

cond
*.trefeye *.myeye =
start
.deltie inc
stop

cond
*.multi 1 =
start
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharenrg inc
.sharewaste inc
stop

cond
*.body 200 <
*.nrg 300 >
start
.strbody inc
.strbody inc
.strbody inc
.strbody inc
.strbody inc
.strbody inc
.strbody inc
.strbody inc
.strbody inc
.strbody inc
*.shell 100 <
.mkshell inc
.mkshell inc
.mkshell inc
.mkshell inc
.mkshell inc
.mkshell inc
.mkshell inc
.mkshell inc
dropbool
stop



cond
*.body 100 >
*.nrg 500 >
start
.repro inc
.repro inc
.repro inc
.repro inc
.repro inc
.repro inc
.repro inc
.repro inc
.repro inc
.repro inc
.repro inc
.repro inc
.repro inc
.repro inc
.repro inc
.repro inc
.repro inc
.repro inc
.repro inc
.repro inc
stop

end

7
Interesting behaviour bots / Needle parasite (IB)(d-EVO)
« on: November 19, 2008, 06:12:30 PM »
Code: [Select]
'Name         :Needle paraste
'bye        :d-EVO
'type        :IB

'a parisite that feeds of its host untill enough energy is gained to reproduce many more needle parasite
'looks like acupuncture needles in vegies
'not very good at combat

cond
*.robage 0 =
start
628 .eye5width store
628 .aimdx store
*.maxvel .up store
1 .timer store
.tie inc
stop

cond
*.robage 1 =
start
.deltie inc
*.maxvel rnd 10 add .up store
stop

cond
*.vel 5 <
*.refeye *.myeye = and
*.eye5 0 = or
*.numties 0 = and
start
*.maxvel .up store
stop

cond
*.numties 0 >
start
1 .tienum store
200 .fixlen store
100 .stifftie store
*.trefeye *.myeye =
1 .deltie store
dropbool
*.trefeye 0 =
99 .sharenrg store
.sharewaste inc
dropbool
*.trefeye 0 > *.trefnrg 90 mult *.nrg > and
99 .sharenrg store
dropbool
*.trefeye 0 > *.trefnrg 90 mult *.nrg < and
-1 .tieloc store
-1000 .tieval store
dropbool
stop

cond
*.body 100 >
*.timer 0 >
start
*.body 2 div 100 ceil .fdbody store
stop

cond
*.nrg 5000 >
*.timer 0 >
start
100 .strbody store
-100 .timer store
stop

cond
*.timer 0 <
*.nrg 20 >
start
100 .strbody store
20 .repro store
230 .aimdx store
stop

cond
*.robage 1 !=
*.refeye *.myeye !=
*.eye5 50 >
*.numties 1 <
start
*.refxpos *.refypos angle .setaim store
1 .tie store
1 .readtie store
stop

end

8
Untagged bots / vegie seeder
« on: November 19, 2008, 03:27:53 PM »
My first veg

Code: [Select]
'Name         :vegie Seeder
'bye        :d-EVO
'type        :vegie

'average body size of 50 units
'average life span of 50 cycls
'looks relly cool in a large environment and high max amount of vegies
'kills itself after repro so it is difficuld to feed from

cond
*.robage 0 =
start
628 .aimdx store
*.maxvel .up store
1 .timer store
.tie inc
stop

cond
*.robage 1 =
start
.deltie inc
*.maxvel rnd 10 add .up store
stop

cond
*.body 10 >
*.timer 0 >
start
*.body 2 div 100 ceil .fdbody store
stop

cond
*.nrg 3000 >
*.timer 0 >
start
-30 .timer store
*.maxvel .up store
stop

cond
*.timer 0 <
start
100 .strbody
1 .repro store
245 .aimdx store
*.timer -1 = *.timer -2 = or *.timer -3 = or
32000 .shootval store
-1 .shoot store
dropbool
stop

end

9
F2 bots / BETA(F2)(SB)(d-EVO)23-10-2008
« on: November 18, 2008, 05:55:05 PM »
I finaly have a brand new bot that I built from scratch

I have spent the last few days working on this bot
It doesnt look like much ( only 3 genes ) but it works realy well, gets all the way to excalaber without 1 loss.
Tell me what you think

Code: [Select]
'NAME         :BETA
'LEAGUE        :F2, SB, IB
'CREATOR    :d-EVO

'BEHAVIOR
'    If this bot sees a frienly that is tracking an enemy, The bot will aim at that enemy
'    Unfoolable recognition system (well almost, cant think of a way to beat it(well I have but it wont be easy))
'    It will reproduce out the back while feeding, offspring will help the mother if no enemys are behind

'FACTS
'    3 genes with 2 states (setting the bot, attacking and finding something to attack)
'    most of the actions are controled through ratios. some of them are listed below
'                    repo is the ratio between body and totamyspecies
'                    poison /shell is retio between body and the current amount of poison /shell
'                    shootval is the ratio between body size and distance
'                    How close it must be to feed from a target is determined by refveldx
'    A tough bot once it gets started

cond
  *.robage 0 =
start
  -436 .eye9dir store
  -327 .eye8dir store
  -218 .eye7dir store
  -109 .eye6dir store
  109 .eye4dir store
  218 .eye3dir store
  327 .eye2dir store
  436 .eye1dir store
  109 .eye1width store
  109 .eye2width store
  109 .eye3width store
  109 .eye4width store
  109 .eye5width store
  109 .eye6width store
  109 .eye7width store
  109 .eye8width store
  109 .eye9width store
  .shoot .ploc store
  .tie inc
  0 .timer store
  0 .out1 store
  100 rnd dup .out8 store 10 add .out9 store
stop

cond
 *.eye5 0 =
 *.eye5 0 >
 *.in8 *.in9 10 sub =
 *.in8 *.out8 != and and or
start
  100 rnd dup .out8 store 10 add .out9 store
  0 .out1 store
 *.eye5 0 =
  *.maxvel .up store
  *.eye1 *eye2 add *.eye3 add *.eye4 add *.eye6 *.eye7 add *.eye8 add *.eye9 add sub sgn *.eye5width mult .aimsx store
  dropbool
 *.eye5 0 > *.in1 0 = and *.timer 1001 = or
  830 .aimdx store
  *.maxvel .up store
  dropbool
 *.eye5 0 > *.in1 1 = and
  *.in2 *.in3 angle .setaim store
  *.maxvel .up store
  1000 .timer store
  dropbool
 *.nrg 2 mult *.body >
  100 .strbody store
  dropbool
 *.nrg 2 mult *.body <
  99 .fdbody store
  dropbool
 *.body *.totalmyspecies 20 add 50 mult >
  628 .aimdx store
  50 .repro store
  0 .timer store
  dropbool
 *.timer 1 =
  628 .aimdx store
  dropbool
 *.shell 6 mult *.body <
  100 .mkshell store
  dropbool
 *.poison 8 mult *.body <
  100 .strpoison store
  dropbool
 *.waste 100 >
  .backshoot inc
  *.waste .shootval store
  -4 .shoot store
  dropbool
stop

cond
  *.eye5 0 >
  *.in9 10 sub *.in8 !=
  *.in8 *.out8 = or and
start
  100 rnd dup .out8 store 10 add .out9 store
  1 .out1 store
  *.refxpos .out2 store
  *.refypos .out3 store
  *.refxpos *.refypos angle .setaim store
  *.refveldx .dx store
  1000 *.body div -1 mult .shootval store
 *.eye5 *.refveldx 8 add <
  *.refvelup 40 .up store
  dropbool
 *.eye5 *.refveldx 8 add >
  *.refvelup 10 sub .up store
  dropbool
 *.refpoison *.refshell => and *.eye5 7 > and
  -6 .shoot store
  dropbool
 *.refpoison *.refshell < *.eye5 7 > and
  -1 .shoot store
  dropbool
 *.nrg 2 mult *.body >
  100 .strbody store
  dropbool
 *.nrg 2 mult *.body <
  99 .fdbody store
  dropbool
 *.body *.totalmyspecies 20 add 50 mult >
  628 .aimdx store
  40 .repro store
  0 .timer store
  dropbool
 *.timer 1 =
  628 .aimdx store
  dropbool
  *.shell 2 mult *.body <
  100 .mkshell store
  dropbool
 *.poison 4 mult *.body <
  100 .strpoison store
  dropbool
  *.waste 100 >
  .backshoot inc
  *.waste .shootval store
  -4 .shoot store
  dropbool
stop

end

10
Bot Tavern / Probably the most unpredictable bot ever
« on: November 05, 2008, 07:23:44 PM »
This bot will do something different in the exact same situation every time. no rnd functions were used
I am developing my first multi bot and it was working quite predictably. I  edited a few things and the next thing I  know theres are chunks of bots flying around the screen.
It is suposed to asume a hexagonal shape. which it does. right before reproducing itself to death.
enjoy

Code: [Select]
'Ameoba

*.construction

cond
 *.multi 0 =
 *.robage 30 <
start
 0 .timer store
stop

cond
 *.robage 0 =
 *.timer 5 <
start
 83 *.timer 1 add 3 mult sub .repro store
stop

cond
 *.robage 0 =
 *.timer 6 <
start
  425 .aimsx store
stop

cond
 *.robage 1 =
 *.timer 7 <
start
  1 .tie store
stop

cond
 *.multi 1 =
start
 1 .tienum store
 50 .stifftie store
 100 .fixlen store
 50 .sharenrg store
stop

cond
 *.multi 1 =
 *.timer 35 <
start
 -1 .fixang store
 20 .up store
stop

cond
 *.timer 28 =
start
 *.tieang .fixang store
 30 .fixlen store
stop

end

11
Newbie / are trig finctions available on the current DB ?
« on: November 02, 2008, 04:41:00 PM »
are trig finctions available on the current DB ?
I read somewere that sin and atan will be suported on v3 bt are they available now.
 and how do you get cos. Is it simething like cos = sine(Pi/2 - theta)
It would be much easier if tan and cos were suported as well and Equations would be simpler.

and is the function used like this
10 60 sin to find oposit side

working on a gene that aims ahead using trig
this is it

Code: [Select]
cond
start
 *.refxpos *.refypos angle .setaim store
 1000
 1000
 *.refvel 40 mult *.refaim 10 mult 35 div sin mult
 *.refvel 40 mult 16 10 *.refaim sub 10 div sin 2 pow
 *.refvel 40 add 2 pow add
 2
 *.refvel 40 mult 16 10 *.refaim sub 10 div sin mult
 *.refvel 40 mult
 16 10 *.refaim sub 10 div sin mult
 sqrt
 sin
 mult
 .aimshoot store
 -6 .shoot store
stop

end

used the 1000 instead of 1 to get higher degree of accuracy.
am I on the right track?
   trig gives me headach so explain how to get it in simple terms

12
F3 bots / Alpha2.7 WidVis(F3)(d-EVO)23-10-2008
« on: October 30, 2008, 09:04:45 PM »
Probably tired of my posts by now but this one is good
finishes of most bots so quick my doesn't have time to reproduce. And when it does all hell breaks lose

Code: [Select]
'My DNA code for an F3 Bot
'name : Alpha 2.7
'created by : d-EV0
'class : F3

cond
 *.121 1 !=
start

 15 .eye4width store
 10 .eye4dir store

 15 .eye6width store
 -10 .eye6dir store

 60 .eye3width store
 50 .eye3dir store


 60 .eye7width store
 -50 .eye7dir store

 115 .eye2width store
 140 .eye2dir store

 115 .eye8width store
 -140 .eye8dir store

 200 .eye1width store
 300 .eye1dir store

 200 .eye9width store
 -300 .eye9dir store

 *.121 1 =
stop

cond
 *.nrg 3500 >
start
 100 .strbody store
 *.body 10000  >
 10 .repro store
stop


' TARGETTING ENEMY

cond
 *.eye6 *.eye2 >=
 *.eye6 *.eye3 >=
 *.eye6 *.eye4 >=
 *.eye6 *.eye5 >=
 *.eye6 *.eye1 >=
 *.eye6 *.eye7 >=
 *.eye6 *.eye8 >=
 *.eye6 *.eye9 >=
 *.eye6 0 >
start
 35
 .aimdx
 store
stop

cond
 *.eye7 *.eye2 >=
 *.eye7 *.eye3 >=
 *.eye7 *.eye4 >=
 *.eye7 *.eye5 >=
 *.eye7 *.eye6 >=
 *.eye7 *.eye1 >=
 *.eye7 *.eye8 >=
 *.eye7 *.eye9 >=
 *.eye7 0 >
start
 70
 .aimdx
 store
stop

cond
 *.eye8 *.eye2 >=
 *.eye8 *.eye3 >=
 *.eye8 *.eye4 >=
 *.eye8 *.eye5 >=
 *.eye8 *.eye6 >=
 *.eye8 *.eye7 >=
 *.eye8 *.eye1 >=
 *.eye8 *.eye9 >=
 *.eye8 0 >
start
 105
 .aimdx
 store
stop

cond
 *.eye9 *.eye2 >=
 *.eye9 *.eye3 >=
 *.eye9 *.eye4 >=
 *.eye9 *.eye5 >=
 *.eye9 *.eye6 >=
 *.eye9 *.eye7 >=
 *.eye9 *.eye8 >=
 *.eye9 *.eye1 >=
 *.eye9 0 >
start
 140
 .aimdx
 store

cond
 *.eye1 *.eye2 >=
 *.eye1 *.eye3 >=
 *.eye1 *.eye4 >=
 *.eye1 *.eye5 >=
 *.eye1 *.eye6 >=
 *.eye1 *.eye7 >=
 *.eye1 *.eye8 >=
 *.eye1 *.eye9 >=
 *.eye1 0 >
start
 140
 .aimsx
 store
stop

cond
 *.eye2 *.eye1 >=
 *.eye2 *.eye3 >=
 *.eye2 *.eye4 >=
 *.eye2 *.eye5 >=
 *.eye2 *.eye6 >=
 *.eye2 *.eye7 >=
 *.eye2 *.eye8 >=
 *.eye2 *.eye9 >=
 *.eye2 0 >
start
 105
 .aimsx
 store
stop

cond
 *.eye3 *.eye2 >=
 *.eye3 *.eye1 >=
 *.eye3 *.eye4 >=
 *.eye3 *.eye5 >=
 *.eye3 *.eye6 >=
 *.eye3 *.eye7 >=
 *.eye3 *.eye8 >=
 *.eye3 *.eye9 >=
 *.eye3 0 >
start
 70
 .aimsx
 store
stop

cond
 *.eye4 *.eye2 >=
 *.eye4 *.eye3 >=
 *.eye4 *.eye1 >=
 *.eye4 *.eye5 >=
 *.eye4 *.eye6 >=
 *.eye4 *.eye7 >=
 *.eye4 *.eye8 >=
 *.eye4 *.eye9 >=
 *.eye4 0 >
start
 35
 .aimsx
 store
stop

cond
 *.refeye *.myeye !=
 *.eye5 *.eye1 >=
 *.eye5 *.eye2 >=
 *.eye5 *.eye3 >=
 *.eye5 *.eye4 >=
 *.eye5 *.eye6 >=
 *.eye5 *.eye7 >=
 *.eye5 *.eye8 >=
 *.eye5 *.eye9 >=
 *.eye5 0 >
start
 *.refveldx .dx store
 *.refvelup 40 add .up store
stop

cond
 *.refeye *.myeye !=
 *.eye5 7 >
start
 *.refxpos *.refypos angle .setaim store
 *.refxpos *.refypos angle *.refaim *.refvel mult 40 *.refxpos *.xpos sub 2 pow *.refypos *.ypos sub 2 pow add sqr div mult 60 *.focuseye mult mult .aimdx store
 *.refxpos *.refypos angle `(*.refaim *.aim sub abs mult) .aimshoot store
 -8 .shootval store
 *.refshell sgn -1 add 5 mult -1 add .shoot store
 *.refvelup .up store
stop

cond
 *.eye5 0 =
start
 30
 .up
 store
stop

cond
 *.refeye *.myeye =
start
 140
 .aimdx
 store
stop

end

13
Newbie / an awsome gene that needs fixing
« on: October 28, 2008, 06:47:07 PM »
Ok.
I read the reply about the focal eye and revised my options. Came up with a great eyedea,  
I thought, why not alternate focal eye every cycle and use focal eye value as a variable (values -4 to +4) calculate which way the bot should turn.
I came up with this solution, but I have probably made a mistake with the logic but am to lazy to check. Ok it is totaly wrong but it is an interesting idea. will try to fix before any one else does
this gene should turn towards the nearest not friendly bot
pleeze tel my how to fix and what you think.

Code: [Select]
cond
start
*.timer .focuseye store
*.refeye *.myeye sub sgn abs
*.eyef *.eye1 1 add sub sgn 0 floor multi
*.eyef *.eye2 1 add sub sgn 0 floor multi
*.eyef *.eye3 1 add sub sgn 0 floor multi
*.eyef *.eye4 1 add sub sgn 0 floor multi
*.eyef *.eye5 1 add sub sgn 0 floor multi
*.eyef *.eye6 1 add sub sgn 0 floor multi
*.eyef *.eye7 1 add sub sgn 0 floor multi
*.eyef *.eye8 1 add sub sgn 0 floor multi
*.eyef *.eye9 1 add sub sgn 0 floor multi
*.focuseye 35 multi multi .aimdx store
stop

plenty of possabilities manipulating focal eye like this
ooh, just had idea on how to fix. wat the heck. will post anyway

14
F3 bots / Alpha2.4(F3)(d-EVO)27-10-2008
« on: October 27, 2008, 05:14:50 PM »
Code: [Select]
'My DNA code for an F3 Bot
'name : Alpha 2.4
'created by : d-EV0
'class : F3

cond
 *.nrg 5000 >
start
 100 .strbody store
 *.body 2500 >
 30 .repro store
stop


' TARGETTING ENEMY

cond
 *.eye6 *.eye2 >=
 *.eye6 *.eye3 >=
 *.eye6 *.eye4 >=
 *.eye6 *.eye5 >=
 *.eye6 *.eye1 >=
 *.eye6 *.eye7 >=
 *.eye6 *.eye8 >=
 *.eye6 *.eye9 >=
 *.eye6 0 >
start
 35
 .aimdx
 store
stop

cond
 *.eye7 *.eye2 >=
 *.eye7 *.eye3 >=
 *.eye7 *.eye4 >=
 *.eye7 *.eye5 >=
 *.eye7 *.eye6 >=
 *.eye7 *.eye1 >=
 *.eye7 *.eye8 >=
 *.eye7 *.eye9 >=
 *.eye7 0 >
start
 70
 .aimdx
 store
stop

cond
 *.eye8 *.eye2 >=
 *.eye8 *.eye3 >=
 *.eye8 *.eye4 >=
 *.eye8 *.eye5 >=
 *.eye8 *.eye6 >=
 *.eye8 *.eye7 >=
 *.eye8 *.eye1 >=
 *.eye8 *.eye9 >=
 *.eye8 0 >
start
 105
 .aimdx
 store
stop

cond
 *.eye9 *.eye2 >=
 *.eye9 *.eye3 >=
 *.eye9 *.eye4 >=
 *.eye9 *.eye5 >=
 *.eye9 *.eye6 >=
 *.eye9 *.eye7 >=
 *.eye9 *.eye8 >=
 *.eye9 *.eye1 >=
 *.eye9 0 >
start
 140
 .aimdx
 store

cond
 *.eye1 *.eye2 >=
 *.eye1 *.eye3 >=
 *.eye1 *.eye4 >=
 *.eye1 *.eye5 >=
 *.eye1 *.eye6 >=
 *.eye1 *.eye7 >=
 *.eye1 *.eye8 >=
 *.eye1 *.eye9 >=
 *.eye1 0 >
start
 140
 .aimsx
 store
stop

cond
 *.eye2 *.eye1 >=
 *.eye2 *.eye3 >=
 *.eye2 *.eye4 >=
 *.eye2 *.eye5 >=
 *.eye2 *.eye6 >=
 *.eye2 *.eye7 >=
 *.eye2 *.eye8 >=
 *.eye2 *.eye9 >=
 *.eye2 0 >
start
 105
 .aimsx
 store
stop

cond
 *.eye3 *.eye2 >=
 *.eye3 *.eye1 >=
 *.eye3 *.eye4 >=
 *.eye3 *.eye5 >=
 *.eye3 *.eye6 >=
 *.eye3 *.eye7 >=
 *.eye3 *.eye8 >=
 *.eye3 *.eye9 >=
 *.eye3 0 >
start
 70
 .aimsx
 store
stop

cond
 *.eye4 *.eye2 >=
 *.eye4 *.eye3 >=
 *.eye4 *.eye1 >=
 *.eye4 *.eye5 >=
 *.eye4 *.eye6 >=
 *.eye4 *.eye7 >=
 *.eye4 *.eye8 >=
 *.eye4 *.eye9 >=
 *.eye4 0 >
start
 35
 .aimsx
 store
stop

cond
 *.refeye *.myeye !=
 *.eye5 *.eye1 >=
 *.eye5 *.eye2 >=
 *.eye5 *.eye3 >=
 *.eye5 *.eye4 >=
 *.eye5 *.eye6 >=
 *.eye5 *.eye7 >=
 *.eye5 *.eye8 >=
 *.eye5 *.eye9 >=
 *.eye5 0 >
start
 *.refveldx .dx store
 *.refvelup 40 add .up store
stop

cond
 0 .eyefocus store
 *.refeye *.myeye !=
 *.eye5 6 >
start
 *.refxpos *.refypos angle .setaim store
 *.refxpos *.refypos angle *.refaim *.refvel mult 40 *.refxpos *.xpos sub 2 pow *.refypos *.ypos sub 2 pow add sqr div mult 60 *.focuseye mult mult .aimdx store
 *.refxpos *.refypos angle `(*.refaim *.aim sub abs mult) .aimshot store
 -8 .shootval store
 *.refshell sgn -1 add 5 mult -1 add .shoot store
 *.refvelup .up store
stop

cond
 *.eye5 0 =
start
 30
 .up
 store
stop

cond
 *.refeye *.myeye =
start
 140
 .aimdx
 store
stop

end

15
The Gene depository / my little insert
« on: October 27, 2008, 10:51:24 AM »
this is a gene insert I just cooked up.
This proves I am getting better.
 guess what it does

Code: [Select]
1 *.refshell sgn -5 multi sub .shoot
If it doesnt work it is because I havnt tested it, should work in theory

Pages: [1] 2