• ; This routine reminds me of FComm code.
  • ; It's the first thing I did after I started back at AIWars.
  •  
  • ecloaked:  -- explain
  • scan perimeter  -- explain
  • goto #scan  -- explain
  • if value #random = 4 then goto zigzag
  • if bump barrier then goto cloakbarrier
  • generate random  -- explain
  • move forward
  • if value #enemy_x = 0 then if value #inbound = 0 then goto ecloaked  -- explain
  • if value #y_pos = #enemy_y then goto same_y_ #cur_head  -- explain
  • if value #x_pos = #enemy_x then goto same_x_ #cur_head  -- explain
  • if value #inbound <> 0 then goto locked_ #cur_head #inbound  -- explain
  • gosub err_ #cur_head  -- explain
  •  
  • zigzag:  -- explain
  • if value #random = 3 then turn right
  • if value #random = 4 then turn left
  • if value #y_pos = #enemy_y then goto same_y_ #cur_head  -- explain
  • if value #x_pos = #enemy_x then goto same_x_ #cur_head  -- explain
  • if value #inbound <> 0 then goto locked_ #cur_head #inbound  -- explain
  • scan perimeter  -- explain
  • goto #scan  -- explain
  • generate random  -- explain
  • move forward
  • if value #enemy_x = 0 then if value #inbound = 0 then goto ecloaked
  • if value #y_pos = #enemy_y then goto same_y_ #cur_head  -- explain
  • if value #x_pos = #enemy_x then goto same_x_ #cur_head  -- explain
  • if value #inbound <> 0 then goto locked_ #cur_head #inbound  -- explain
  • gosub err_ #cur_head  -- explain
  •  
  • cloakbarrier:  -- explain
  • move backward
  • if value #y_pos = #enemy_y then goto same_y_ #cur_head  -- explain
  • if value #x_pos = #enemy_x then goto same_x_ #cur_head  -- explain
  • scan perimeter  -- explain
  • goto #scan  -- explain
  • generate random  -- explain
  • if value #random >= 3 then assign v1 turn right  -- explain
  • if value #random <= 2 then assign v1 turn left  -- explain
  • ~v1  -- explain
  • if value #enemy_x = 0 then if value #inbound = 0 then goto ecloaked
  • if value #y_pos = #enemy_y then goto same_y_ #cur_head  -- explain
  • if value #x_pos = #enemy_x then goto same_x_ #cur_head  -- explain
  • if value #inbound <> 0 then goto locked_ #cur_head #inbound  -- explain
  • gosub err_ #cur_head  -- explain