Darwinbots Forum
Bots and Simulations => Bestiary => F3 bots => Topic started by: bacillus on October 20, 2008, 11:56:00 PM
-
cond
*.robage 0 =
start
318 .out1 store
-32000 32000 rnd .out2 store
stop
start
40 *.eye5 sub 0 floor 2 mult 5 add *.refvelup 0 floor add *.vel sub
.up store
350 *.body sub dup *.nrg 3 div ceil .strbody store - .fdbody store
-4 *.eye1 *.eye9 sub sgn 0 floor mult *.eye1 *.eye8 sub sgn 0 floor
mult *.eye1 *.eye7 sub sgn 0 floor mult *.eye1 *.eye6 sub sgn 0
floor mult *.eye1 *.eye5 sub sgn 0 floor mult *.eye1 *.eye4 sub sgn 0
floor mult *.eye1 *.eye3 sub sgn 0 floor mult *.eye1 *.eye2 sub sgn 0
floor mult 4 *.eye9 *.eye8 sub sgn 0 floor mult *.eye9 *.eye7 sub
sgn 0 floor mult *.eye9 *.eye6 sub sgn 0 floor mult
*.eye9 *.eye5 sub sgn 0 floor mult *.eye9 *.eye4 sub sgn 0 floor mult
*.eye9 *.eye3 sub sgn 0 floor mult *.eye9 *.eye2 sub sgn 0 floor mult
*.eye9 *.eye1 sub sgn ++ sgn mult add -3 *.eye2 *.eye9 sub sgn ++ sgn
mult *.eye2 *.eye8 sub sgn 0 floor mult *.eye2 *.eye7 sub sgn 0 floor
mult *.eye2 *.eye6 sub sgn 0 floor mult *.eye2 *.eye5 sub sgn 0 floor
mult *.eye2 *.eye4 sub sgn 0 floor mult *.eye2 *.eye3 sub sgn 0
floor mult *.eye2 *.eye1 sub sgn ++ sgn mult add 3 *.eye8 *.eye9 sub
sgn ++ sgn mult *.eye8 *.eye7 sub sgn 0 floor mult *.eye8 *.eye6 sub
sgn 0 floor mult *.eye8 *.eye5 sub sgn 0 floor mult *.eye8 *.eye4 sub
sgn 0 floor mult *.eye8 *.eye3 sub sgn 0 floor mult *.eye8 *.eye2 sub
sgn ++ sgn mult *.eye8 *.eye1 sub sgn ++ sgn mult add -2 *.eye3 *.eye9
sub sgn ++ sgn mult *.eye3 *.eye8 sub sgn ++ sgn mult *.eye3 *.eye7
sub sgn 0 floor mult *.eye3 *.eye6 sub sgn 0 floor mult
*.eye3 *.eye5 sub sgn 0 floor mult *.eye3 *.eye4 sub sgn 0 floor mult
*.eye3 *.eye2 sub sgn ++ sgn mult *.eye3 *.eye1 sub sgn ++ sgn mult
add 2 *.eye7 *.eye9 sub sgn ++ sgn mult *.eye7 *.eye8 sub sgn ++
sgn mult *.eye7 *.eye7 sub sgn 0 floor mult *.eye7 *.eye6 sub sgn 0
floor mult *.eye7 *.eye5 sub sgn 0 floor mult *.eye7 *.eye4 sub sgn ++
sgn mult *.eye7 *.eye2 sub sgn ++ sgn mult *.eye7 *.eye1 sub sgn ++
sgn mult add -1 *.eye4 *.eye9 sub sgn ++ sgn mult *.eye4 *.eye8 sub sgn
++ sgn mult *.eye4 *.eye7 sub sgn ++ sgn mult *.eye4 *.eye6 sub sgn 0
floor mult *.eye4 *.eye5 sub sgn 0 floor mult *.eye4 *.eye3 sub sgn
++ sgn mult *.eye4 *.eye2 sub sgn ++ sgn mult *.eye4 *.eye1 sub sgn
++ sgn mult add 1 *.eye4 *.eye9 sub sgn ++ sgn mult *.eye4 *.eye8 sub
sgn ++ sgn mult *.eye4 *.eye7 sub sgn ++ sgn mult *.eye4 *.eye6 sub
sgn ++ sgn mult *.eye4 *.eye5 sub sgn 0 floor mult
*.eye4 *.eye3 sub sgn ++ sgn mult *.eye4 *.eye2 sub sgn ++ sgn mult
*.eye4 *.eye1 sub sgn ++ sgn mult add 0 *.eye5 *.eye9 sub sgn ++
sgn mult *.eye5 *.eye8 sub sgn ++ sgn mult *.eye5 *.eye7 sub sgn ++
sgn mult *.eye5 *.eye6 sub sgn ++ sgn mult *.eye5 *.eye4 sub sgn ++ sgn
mult *.eye5 *.eye3 sub sgn ++ sgn mult *.eye5 *.eye2 sub sgn ++ sgn
mult *.eye5 *.eye1 sub sgn ++ sgn mult add .focuseye store
stop
cond
*.in1 *.out1 =
*.in2 *.out2 !=
start
*.maxvel .dx store
stop
cond
*.eyef 0 =
*.in1 *.out1 =
*.in2 *.out2 != and or
*.shflav 0 =
start
.shflav store
*.shang .setaim store
stop
cond
*.eyef 0 >
*.in1 *.out1 !=
*.in2 *.out2 = or
start
*.refxpos *.refypos angle *.refveldx sub .setaim store
*.veldx .sx store
stop
cond
*.eye5 40 >
*.in1 *.out1 !=
*.in2 *.out2 = or
start
16 *.nrg 15 div ceil .shootval store
-6 .shoot store
stop
cond
*.nrg 5000 >
*.body 350 >=
start
50 .repro store
628 .aimdx store
stop
stop
-
I hope it's ok that I made a slight tweek when running your bot...
It was just this line :
40 *.eye5 sub 0 floor 2 mult 5 add *.refvelup 0 floor add *.vel sub .up store
When you write
*.refvelup 0 floor add *.vel sub
what you're saying is :
(the oponents speed) - (your own speed)
So you will never accelerate with this part of the code, any attempt to accelerate will result in an increase in velocity bringing you back down to where you started.
So the more you move the less you'll move... basicaly Roto can't kill something that moves, unless it's very slow...
So just removed the *.vel sub part, and now it seems to work stick to it's target rather well...
Seems like your tweeks and general thoughts where right on... it was just that every time you tryed to accelerate you would slow down by the same amount, going nowhere...
Anyway the movement refvars give the speed relative to your own, so
*.refvelup .up store
*.refvelsx .sx store
Will match the oponents movement exactly, regardless of your aim direction or movement.
Anyway hope it's ok I messed with your bot, just couldn't bare to see it loose to Body again, and I want those tutorial bots to line up right, the only reason Body and Aim beat the old Roto is because they never stop moving and roto couldn't kill anything that moved.
Anyway removing *.vel sub was the only thing I did... if it's not ok just say so and I'll change it back (But gotta warn you it didn't clear Body when I ran it before the change)
-
Cheers