first appearance - first appearance in lead - line
==========================================================================================================================================
                         - Timothy Alderson (21324) - function [dy,dx,mark,carry]=solver(main,food,ants,scent)
Timothy Alderson (22415) - Timothy Alderson (22416) - %18372.39 or 18293.70
      Jan Langer (21453) -       Jan Langer (21467) - rand(1,5);
      Colin Ross (21944) -       Colin Ross (21945) - i35=3:5;
      Colin Ross (21944) -       Colin Ross (21945) - i24=2:4;
Timothy Alderson (21962) - Timothy Alderson (21970) - i02=0:2;
   Jack Snoeyink (22403) -    Jack Snoeyink (22404) - dirx = [-1,2,2,2,-1; 2,-1,-1,-1,2; 2,0,0,0,2; 2,1,1,1,2; 1,2,2,2,1];
   Jack Snoeyink (22403) -    Jack Snoeyink (22404) - diry = [-1,-1,0,1,1; -1,-1,0,1,1; -1,-1,0,1,1; -1,-1,0,1,1; -1,-1,0,1,1];
                         - Timothy Alderson (21626) - % find reachable regions
Timothy Alderson (21984) - Timothy Alderson (22072) - BAD=main<0;
   Jack Snoeyink (21906) -    Jack Snoeyink (21965) - if BAD(7)||BAD(9)||BAD(17)||BAD(19)
    Niilo Sirola (21708) -     Niilo Sirola (21709) -     if BAD(7)
    Stijn Helsen (21805) - Timothy Alderson (21812) -         BAD(1)=1;
                         - Timothy Alderson (21713) -         BAD(2)=BAD(2)||BAD(8);
    Niilo Sirola (21708) -     Niilo Sirola (21709) -         BAD(3)=BAD(3)||(BAD(8)&&BAD(9));
                         - Timothy Alderson (21713) -         BAD(6)=BAD(6)||BAD(12);
    Niilo Sirola (21708) -     Niilo Sirola (21709) -         BAD(11)=BAD(11)||(BAD(12)&&BAD(17));
                         -                          -     end
    Niilo Sirola (21708) -     Niilo Sirola (21709) -     if BAD(9)
                         - Timothy Alderson (21713) -         BAD(4)=BAD(4)||BAD(8);
    Stijn Helsen (21805) - Timothy Alderson (21812) -         BAD(5)=1;
                         - Timothy Alderson (21713) -         BAD(10)=BAD(10)||BAD(14);
                         -                          -     end
    Niilo Sirola (21708) -     Niilo Sirola (21709) -     if BAD(17)
                         - Timothy Alderson (21713) -         BAD(16)=BAD(16)||BAD(12);
    Stijn Helsen (21805) - Timothy Alderson (21812) -         BAD(21)=1;
                         - Timothy Alderson (21713) -         BAD(22)=BAD(22)||BAD(18);
                         -                          -     end
    Niilo Sirola (21708) -     Niilo Sirola (21709) -     if BAD(19)
                         - Timothy Alderson (21713) -         BAD(15)=BAD(15)||(BAD(9)&&BAD(14));
    Niilo Sirola (21708) -     Niilo Sirola (21709) -         BAD(20)=BAD(20)||(BAD(14));
                         - Timothy Alderson (21713) -         BAD(23)=BAD(23)||(BAD(17)&&BAD(18));
    Niilo Sirola (21708) -     Niilo Sirola (21709) -         BAD(24)=BAD(24)||(BAD(18));
    Stijn Helsen (21805) - Timothy Alderson (21812) -         BAD(25)=1;
                         -                          -     end
                         - Timothy Alderson (21626) -     % modify current board based on reachable regions
                         - Timothy Alderson (21626) -     main(BAD)=-1;
                         - Timothy Alderson (21626) -     food(BAD)=0;
                         - Timothy Alderson (21626) -     scent(BAD)=0;
                         -                          - end
Timothy Alderson (21980) - Timothy Alderson (22072) - BAD(13)=1;
                         - Timothy Alderson (21626) - % setup game stats
Hannes Naudé & Cobus Pot - Hannes Naudé & Cobus Pot - scents=scent(scent>0);
Hannes Naudé & Cobus Pot - Hannes Naudé & Cobus Pot - maxscent=max(scents(:));
      Jan Langer (21447) -       Jan Langer (21466) - % mark this field
                         - Timothy Alderson (22411) - if (max(main(:)))
                         - Timothy Alderson (21626) -     mark=400-scent(13);
       HungryMan (22049) - Timothy Alderson (22072) -     scent(13)=400;
                         - Timothy Alderson (21626) -     init=0;
Timothy Alderson (21786) - Timothy Alderson (21794) -     hills=find(main>0);
                         - Timothy Alderson (21626) -     scent(hills)=1e7;
    Stijn Helsen (21483) - Timothy Alderson (21626) -     food(hills)=0;
Timothy Alderson (21749) - Timothy Alderson (21772) -     if isempty(scents);maxscent=mark;end
    Niilo Sirola (21711) -     Niilo Sirola (21716) - elseif (maxscent==min(scents(:))) % init phase
                         - Timothy Alderson (21626) -     mark=maxscent-scent(13);
       HungryMan (22049) - Timothy Alderson (22072) -     scent(13)=maxscent;
                         - Timothy Alderson (21626) -     init=1;
       HungryMan (21581) - Timothy Alderson (22072) - elseif isempty(scents) % nothing is marked
Hannes Naudé & Cobus Pot - Hannes Naudé & Cobus Pot -     mark=98;
       HungryMan (22049) - Timothy Alderson (22072) -     scent(13)=scent(13)+98;
                         - Timothy Alderson (21626) -     maxscent=mark;
                         - Timothy Alderson (21626) -     init=1;
                         -                          - else
                         - Timothy Alderson (21626) -     mark=maxscent-1-scent(13);
       HungryMan (22049) - Timothy Alderson (22072) -     scent(13)=maxscent-1;
                         - Timothy Alderson (21626) -     init=0;
                         -                          - end
      Jan Langer (21447) -       Jan Langer (21466) - % look around for food
                         -     Niilo Sirola (21697) - if max(food(:))<1 ||init % nothing found or no way home, search
   Jack Snoeyink (22403) -    Jack Snoeyink (22404) -     target=maxscent-scent;target(BAD)=-1;
    Niilo Sirola (21556) - Timothy Alderson (21970) -     [y,x]=find(target==max(target(:)));
                         - Timothy Alderson (21626) -     if (numel(y)>1)
                         - Timothy Alderson (21794) -         r=ceil(rand*numel(y));
                         - Timothy Alderson (21626) -         y=y(r);
                         - Timothy Alderson (21626) -         x=x(r);
                         -                          -     end
                         - Timothy Alderson (21626) -     carry=food(13)>0;
   Jack Snoeyink (22403) -    Jack Snoeyink (22404) -     dx = dirx(x,y);
   Jack Snoeyink (22403) -    Jack Snoeyink (22404) -     if dx<2
   Jack Snoeyink (22403) -    Jack Snoeyink (22404) -         dy = diry(x,y);
                         -                          -         return;
                         -                          -     end;
                         - Timothy Alderson (21574) -     m(7,7)=0;
     Alan Brooks (21820) - Timothy Alderson (21970) -     m(y+i02,x+i02)=1;
      Colin Ross (21771) - Timothy Alderson (21794) -     m=m(i35,i35);
      Colin Ross (21771) - Timothy Alderson (21794) -     t=target(i24,i24).*m+m;
     the cyclist (21835) - Timothy Alderson (21970) -     [dy,dx]=find(t==max(t(:)));
      Colin Ross (21790) - Timothy Alderson (21794) -     r=ceil(rand*numel(dy));
                         - Timothy Alderson (21626) -     dy=dy(r)-2;
                         - Timothy Alderson (21626) -     dx=dx(r)-2;
                         -                          -     return;
                         -                          - end;
       Tom Lemke (21651) -     Niilo Sirola (21697) - if (food(13)>1)&&rand<.95 % sit on a lot of food, go home
                         - Timothy Alderson (21970) -     target=scent;target(BAD)=-1;
    Niilo Sirola (21556) - Timothy Alderson (21970) -     [y,x]=find(target==max(target(:)));
                         - Timothy Alderson (21626) -     if (numel(y)>1)
                         -           JohanH (22553) -         y=y(1);
                         -           JohanH (22553) -         x=x(1);
                         -                          -     end
                         -     Ofer Saphier (20666) -     carry=1;
   Jack Snoeyink (22403) -    Jack Snoeyink (22404) -     dx = dirx(x,y);
   Jack Snoeyink (22403) -    Jack Snoeyink (22404) -     if dx<2
   Jack Snoeyink (22403) -    Jack Snoeyink (22404) -         dy = diry(x,y);
                         -                          -         return;
                         -                          -     end;
                         - Timothy Alderson (21574) -     m(7,7)=0;
     Alan Brooks (21820) - Timothy Alderson (21970) -     m(y+i02,x+i02)=1;
      Colin Ross (21771) - Timothy Alderson (21794) -     m=m(i35,i35);
      Colin Ross (21771) - Timothy Alderson (21794) -     t=target(i24,i24).*m+m;
     the cyclist (21835) - Timothy Alderson (21970) -     [dy,dx]=find(t==max(t(:)));
      Colin Ross (21790) - Timothy Alderson (21794) -     r=ceil(rand*numel(dy));
                         - Timothy Alderson (21626) -     dy=dy(r)-2;
                         - Timothy Alderson (21626) -     dx=dx(r)-2;
                         -                          -     return;
                         -                          - end;
       Tom Lemke (21490) - Timothy Alderson (21568) - if (food(13) >= 1) % sit on one food, build track
                         - Timothy Alderson (21970) -     target=scent;target(BAD)=-1;
    Niilo Sirola (21552) - Timothy Alderson (21970) -     [yhome,xhome]=find(target==max(target(:)));
                         - Timothy Alderson (22411) -     lowfood=food;lowfood(scent>=scent(13))=0;
                         -     Ofer Saphier (20666) -     carry=1;
                         - Timothy Alderson (21626) -     dhere=max(max(abs(yhome-3),abs(xhome-3)));
                         - Timothy Alderson (22411) -     runs=numel(lowfood(lowfood(:)>0));
                         - Timothy Alderson (22411) -     lowfood(i24,i24)=lowfood(i24,i24)*1e8;
                         - Timothy Alderson (22411) -     target=lowfood;target(BAD)=-1;
Timothy Alderson (21770) - Timothy Alderson (21772) -     while runs % fetch food behind
    Niilo Sirola (21556) - Timothy Alderson (21970) -         [y,x]=find(target==max(target(:)));
                         - Timothy Alderson (21626) -         if (numel(y)>1)
                         - Timothy Alderson (21794) -             r=ceil(rand*numel(y));
                         - Timothy Alderson (21626) -             y=y(r);
                         - Timothy Alderson (21626) -             x=x(r);
                         -                          -         end
   Jack Snoeyink (22403) -    Jack Snoeyink (22404) -         dx = dirx(x,y);
   Jack Snoeyink (22403) -    Jack Snoeyink (22404) -         if dx<2
   Jack Snoeyink (22403) -    Jack Snoeyink (22404) -             dy = diry(x,y);
                         -                          -         else
                         - Timothy Alderson (21574) -             m(7,7)=0;
     Alan Brooks (21820) - Timothy Alderson (21970) -             m(y+i02,x+i02)=1;
      Colin Ross (21771) - Timothy Alderson (21794) -             m=m(i35,i35);
      Colin Ross (21771) - Timothy Alderson (21794) -             t=target(i24,i24).*m+m;
     the cyclist (21835) - Timothy Alderson (21970) -             [dy,dx]=find(t==max(t(:)));
      Colin Ross (21790) - Timothy Alderson (21794) -             r=ceil(rand*numel(dy));
                         - Timothy Alderson (21626) -             dy=dy(r)-2;
                         - Timothy Alderson (21626) -             dx=dx(r)-2;
                         -                          -         end
  Corbin Holland (22380) -   Corbin Holland (22385) -         if ( min(max(abs(yhome-y),abs(xhome-x))) > dhere )
                         -     Ofer Saphier (20666) -             carry=0;
                         -                          -             return;
                         -                          -         end
Timothy Alderson (21962) - Timothy Alderson (21970) -         target(y,x)=0;runs=runs-1;
                         -                          -     end
      Jan Langer (21447) -       Jan Langer (21466) -     if (carry) % go home
                         - Timothy Alderson (21970) -         target=scent;target(BAD)=-1;
    Niilo Sirola (21556) - Timothy Alderson (21970) -         [y,x]=find(target==max(target(:)));
                         - Timothy Alderson (21626) -         if (numel(y)>1)
                         - Timothy Alderson (21794) -             r=ceil(rand*numel(y));
                         - Timothy Alderson (21626) -             y=y(r);
                         - Timothy Alderson (21626) -             x=x(r);
                         -                          -         end
   Jack Snoeyink (22403) -    Jack Snoeyink (22404) -         dx = dirx(x,y);
   Jack Snoeyink (22403) -    Jack Snoeyink (22404) -         if dx<2
   Jack Snoeyink (22403) -    Jack Snoeyink (22404) -             dy = diry(x,y);
                         -                          -             return;
                         -                          -         end;
                         - Timothy Alderson (21574) -         m(7,7)=0;
     Alan Brooks (21820) - Timothy Alderson (21970) -         m(y+i02,x+i02)=1;
      Colin Ross (21771) - Timothy Alderson (21794) -         m=m(i35,i35);
      Colin Ross (21771) - Timothy Alderson (21794) -         t=target(i24,i24).*m+m;
     the cyclist (21835) - Timothy Alderson (21970) -         [dy,dx]=find(t==max(t(:)));
      Colin Ross (21790) - Timothy Alderson (21794) -         r=ceil(rand*numel(dy));
                         - Timothy Alderson (21626) -         dy=dy(r)-2;
                         - Timothy Alderson (21626) -         dx=dx(r)-2;
                         -                          -         return;
                         -                          -     end
                         -                          -     return;
                         -                          - end;
                         -    Jack Snoeyink (22404) - target=max(food-ants,0);target(BAD)=-1000;
    Niilo Sirola (21556) - Timothy Alderson (21970) - [y,x]=find(target==max(target(:)));
                         - Timothy Alderson (21626) - if (numel(y)>1)
                         - Timothy Alderson (21794) -     r=ceil(rand*numel(y));
                         - Timothy Alderson (21626) -     y=y(r);
                         - Timothy Alderson (21626) -     x=x(r);
                         -                          - end
                         -     Ofer Saphier (20666) - carry=0;
   Jack Snoeyink (22403) -    Jack Snoeyink (22404) - dx = dirx(x,y);
   Jack Snoeyink (22403) -    Jack Snoeyink (22404) - if dx<2
   Jack Snoeyink (22403) -    Jack Snoeyink (22404) -     dy = diry(x,y);
                         -                          -     return;
                         -                          - end;
                         - Timothy Alderson (21574) - m(7,7)=0;
     Alan Brooks (21820) - Timothy Alderson (21970) - m(y+i02,x+i02)=1;
      Colin Ross (21771) - Timothy Alderson (21794) - m=m(i35,i35);
      Colin Ross (21771) - Timothy Alderson (21794) - t=target(i24,i24).*m+m;
     the cyclist (21835) - Timothy Alderson (21970) - [dy,dx]=find(t==max(t(:)));
      Colin Ross (21790) - Timothy Alderson (21794) - r=ceil(rand*numel(dy));
                         - Timothy Alderson (21626) - dy=dy(r)-2;
                         - Timothy Alderson (21626) - dx=dx(r)-2;