Author Topic: RoboAnt (IB)(Martian)-15.08.07  (Read 3374 times)

Offline Martian

  • Bot Neophyte
  • *
  • Posts: 44
    • View Profile
RoboAnt (IB)(Martian)-15.08.07
« on: August 15, 2007, 11:30:56 AM »
' RoboAnt
' By Martian

def foodcounter 50

def foodx 51 'For the location of the last found food,
def foody 52 'or the new nest.

def state 53

def tieid 54

def numworkers 55

def royaljelly 971

def password 972

def queenx 973
def queeny 974

def birthtie -1
def goingfood -2
def hunting -3
def goingqueen -4
def feedqueen -5
def ruling -6
def newnest -7

def mapx 9237
def mapy 6928
def mapborder 250

def foodcycle 20 'The number of cycles the queen goes without food before she deciceds there aren't enough workers.

'The Queens Initialization
cond
 *.royaljelly 0 =
start
 31998 rnd 2 add .password store
 *.thisgene .delgene store
stop

'State switching

cond
 *.state 0 =
start
 -1 .state store
stop

cond
 *.state .birthtie =
 *.robage 6  >
start
 .deltie inc
 .goingfood .state store
stop

cond
 *.state .birthtie =
 *.robage 5 >
start
 .tie inc
stop

cond
 *.state .hunting =
 *.nrg 7500 >
start
  *.refxpos .foodx store
  *.refypos .foody store
  .goingqueen .state 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
 *.eye5 *.eye9 >=
 *.eye5 *.eye8 >=
 *.eye5 *.eye7 >=
 *.eye5 *.eye6 >=
 *.eye5 *.eye4 >=
 *.eye5 *.eye3 >=
 *.eye5 *.eye2 >=
 *.eye5 *.eye1 >=
start
 mult
stop

cond
 *.eye5 0 >
 *.password *.memval =
start
 mult 628 rnd 314 add
stop

cond
 *.state .hunting =
start
 .aimdx store
stop

cond
 *.eye9 0 =
 *.eye8 0 =
 *.eye7 0 =
 *.eye6 0 =
 *.eye5 0 =
 *.eye4 0 =
 *.eye3 0 =
 *.eye2 0 =
 *.eye1 0 =
 *.state .hunting =
start
 20 .up store
stop

cond
 *.eye5 0 >
 *.password *.memval !=
 *.eye5 40 <
 *.refaimdx 0 !=
 *.state .hunting =
start
 *.refveldx .dx store
 *.refvelup 30 add .up store
stop

cond
 *.password *.memval !=
 *.eye5 40 >
 *.refaimdx 0 !=
 *.state .hunting =
 *.refvelup 0 =
start
 *.vel .dn store
stop

cond
 *.state .hunting =
 *.eye5 30 >=
 *.memval *.password !=
 *.refaimdx 0 !=
start
 *.refxpos *.refypos angle .setaim store
 -1 .shoot store
stop

cond
 *.state .goingqueen =
 *.eye5 35 >
 *.in1 1 =
 *.password *.memval =
start
 .feedqueen .state store
stop

cond
 *.state .goingqueen =
start
 *.queenx *.queeny angle .setaim store
 *.xpos *.queenx sub abs *.ypos *.queeny sub abs add 50 div 5 floor 30 ceil .up store
 *.veldx .sx store
stop

cond
 *.state .feedqueen =
 *.nrg 2500 <
start
 .goingfood .state store
 *.tieid .deltie store
stop

cond
 *.state .feedqueen =
 *.numties 0 =
start
 *.velup .dn store
 *.velsx .dx store
 *.refxpos *.refypos angle .setaim store
 *.tieid .tie store
stop

cond
 *.state .feedqueen =
 *.numties 1 =
start
 *.tieid .tienum store
 -1 .tieloc store
 *.nrg 2500 sub 1000 ceil 1 floor .tieval store
stop

'Fixes the Queen
cond
 *.fixed 0 =
 *.state .ruling =
start
 1 .fixpos store
stop

'Makes new workers
cond
 *.nrg 5000 >
 *.state .ruling =
 *.foodcounter 0 =
start
 10 .repro store
 90 314 rnd add .aimdx store
stop

cond
 *.royaljelly 0 =
 *.state .ruling =
start
 .royaljelly inc
stop

'Makes new queens
cond
 *.nrg 14000 >
 *.state .ruling =
 *.foodcounter 0 !=
 *.body 1450 >=
start
 50 .repro store
 0 .royaljelly store
 90 314 rnd add .aimdx store
stop

cond
 *.royaljelly 0 =
 *.state .ruling !=
start
 .newnest .state store
 .royaljelly inc
 1 .out1 store
 .mapx .mapborder 2 mult sub rnd .mapborder add .foodx store
 .mapy .mapborder 2 mult sub rnd .mapborder add .foody store
stop

cond
 *.state .newnest =
 *.xpos *.foodx sub abs 100 >
 *.ypos *.foody sub abs 100 > or
start
 *.foodx *.foody angle .setaim store
 *.xpos *.foodx sub abs *.ypos *.foody sub abs add 10 div 1 floor 30 ceil .up store
 *.veldx .sx store
stop

cond
 *.state .newnest =
 *.xpos *.foodx sub abs 100 <=
 *.ypos *.foody sub abs 100 <=
start
 .ruling .state store
 1 .fixpos store
 *.xpos .queenx store
 *.ypos .queeny store
stop


cond
 *.state .goingfood =
 *.xpos *.foodx sub abs 500 >
 *.ypos *.foody sub abs 500 > or
start
 *.foodx *.foody angle .setaim store
 *.xpos *.foodx sub abs *.ypos *.foody sub abs add 10 div 1 floor 30 ceil .up store
 *.veldx .sx store
stop

cond
 *.state .goingfood =
 *.foodx 0 =
 *.foody 0 =
start
 .hunting .state store
stop

cond
 *.state .goingfood =
 *.xpos *.foodx sub abs 500 <=
 *.ypos *.foody sub abs 500 <=
start
 .hunting .state store
stop

'Initialization

'Each queens workers have a different password
cond
 *.robage 0 =
start
 .password .memloc store
 31998 rnd 2 add .tieid store
stop

cond
 *.fixed 0 !=
 *.state .ruling !=
start
 0 .fixpos store
stop

'Body handling routines
cond
 *.body 1450 <
 *.pleas 0 >
 *.state .ruling =
start
 *.pleas 2 div 100 ceil 1450 *.body sub 10 mult ceil .strbody store
stop

cond
 *.body 1550 >
 *.nrg 5000 < or
 *.state .ruling =
start
 *.body 1550 sub 10 mult 100 ceil .fdbody store
stop

cond
 *.body 150 >
 *.nrg 1000 < or
 *.state .ruling !=
start
 *.body 150 sub 10 mult 100 ceil .fdbody store
stop

cond
 *.body 50 <
 *.pleas 0 >
 *.state .ruling !=
start
 *.pleas 2 div 100 ceil 50 *.body sub 10 mult ceil .strbody store
stop

cond
 *.state .ruling !=
 *.tiepres 0 >
 *.tiepres *.tieid !=
start
 *.tiepres .deltie store
stop

cond
 *.state .ruling =
 *.tiepres 0 >
start
  .foodcycle .foodcounter store
 stop

cond
 *.foodcounter 0 !=
start
 .foodcounter dec
stop

cond
 *.shflav 0 !=
 *.shflav -2 !=
start
 *.shang .aimshoot store
 64 .shootval store
 -1 .shoot store
 0 .shflav store
stop