anchor.diff:      Avs = lists:sum(Avoids)/ALen * ?NOF_BLOCKS,
       Capts = lists:sum(Captures)/CLen * ?NOF_BLOCKS,
   %    io:format("~p -- ~p~n", [Avs, Capts]),
  -    ?NOF_BLOCKS + Avs - Capts.
  +    ?NOF_BLOCKS - Avs + Capts.
   
   
   new_block(Ets) ->
  
positive.code: %    io:format("~P~n~n", [ets:match_object(Ets, '_'), 100]),
      nil.
  
  block_run(Ets) ->
      new_block(Ets),
      genetica_utils:repeatedly(?AREA_HEIGHT, fun() -> step(Ets) end),
      sense(Ets),
      Sensed = ets:select(Ets, ?ETS_INTEGERS),
      case ets:lookup(Ets, block) of
          [#block{size=S, y=0, x=_}] ->
              if S >= ?TRACKER_SIZE ->
                      {avoid, lists:sum(Sensed)/?TRACKER_SIZE};
                 S < ?TRACKER_SIZE ->
                      {capture, lists:sum(Sensed)/S}
              end
      end.
  
  simulate_run(G) ->
  %    io:format("whole:~n~p~n~n", [G]),
      Ets = ets:new(x, [set]),
      Firsts = lists:zip([#edge{from=F, to=T} || T <- [a, b],
                                                 F <- [1, 2, 3, 4, 5, a, b]],
                         lists:sublist(G, 2*7)),
  
negative.code:     ets:insert(Ets, {fitness, 0}),
      Res = genetica_utils:repeatedly(?NOF_BLOCKS, fun () -> block_run(Ets) end),
  %    io:format("~p~n", [Res]),
  %    [{delta, Delta}] = ets:lookup(Ets, delta),
  %    io:format("Total movement this run: ~p~n", [Delta]),
      ets:delete(Ets),
      Res.
  
  