Author Topic: Roto2(F3)(bacillus)  (Read 3414 times)

Offline bacillus

  • Bot Overlord
  • ****
  • Posts: 907
    • View Profile
Roto2(F3)(bacillus)
« on: October 20, 2008, 11:56:00 PM »
Code: [Select]
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
« Last Edit: May 13, 2014, 02:30:48 PM by Botsareus »
"They laughed at Columbus, they laughed at Fulton, they laughed at the Wright brothers. But they also laughed at Bozo the Clown."
- Carl Sagan

Offline Moonfisher

  • Bot Overlord
  • ****
  • Posts: 592
    • View Profile
Roto2(F3)(bacillus)
« Reply #1 on: October 22, 2008, 12:10:20 PM »
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)
« Last Edit: October 22, 2008, 12:19:45 PM by Moonfisher »

Offline bacillus

  • Bot Overlord
  • ****
  • Posts: 907
    • View Profile
Roto2(F3)(bacillus)
« Reply #2 on: October 22, 2008, 11:39:59 PM »
Cheers  
"They laughed at Columbus, they laughed at Fulton, they laughed at the Wright brothers. But they also laughed at Bozo the Clown."
- Carl Sagan