Author Topic: BETA(F2)(SB)(d-EVO)23-10-2008  (Read 627 times)

Offline Botsareus

  • Society makes it all backwards - there is a good reason for that
  • Moderator
  • Bot God
  • *****
  • Posts: 4483
    • View Profile
    • DJ Paul Kononov
BETA(F2)(SB)(d-EVO)23-10-2008
« on: May 07, 2014, 01:36:58 PM »
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