ID:50200
Title:wall follower ant
Author:jorge artieda
Date:2008-11-07 08:49:47
Score:41879.2791
Result:38373.53 (cyc: 38, node: 604)
CPU Time:156.8483
Status:Passed
Comments:
Based on:none
Code:
function [dRow,dCol,action,mark] = solver(mainMap,foodMap,myAntMap,opAntMap, ...
                                          myScentMap,opScentMap,myDeathMap,opDeathMap)

action = 0;

if opAntMap(3,3)>0
    action = -1; %-1 attack, 1 carry
end

if foodMap(3,3)>0
    action = 1;
end

if mainMap(3,3)==1
    action = 0;
end

dRow=0;
dCol=0;
GreatScentj=-1;
 GreatScenti=-1;
 LessScentj=-1;
 LessScenti=-1;
 MyHormigueroj=-1;
 MyHormigueroi=-1;
 nearFoodi=-1;
 nearFoodj=-1;
 distFood= 100;
 GreatScent=-1;
 LessScent=10000;
 for i = 1:5
        for j = 1:5
            if i~=j
                if myScentMap(i,j) > GreatScent
                        GreatScent=myScentMap(i,j);
                        GreatScentj=j;
                        GreatScenti=i;
                end
                if myScentMap(i,j) < LessScent
                    LessScent=myScentMap(i,j);
                    LessScentj=j;
                    LessScenti=i;
                end
                if mainMap(i,j)==1
                        MyHormigueroj=j;
                        MyHormigueroi=i;
                end
                if foodMap(i,j)>1
                    if (MyHormigueroj~=j) && (MyHormigueroi~=i )
                        if sqrt((i-3)*(i-3)+(j-3)*(j-3))<distFood
                            distFood=sqrt((nearFoodi-3)*(nearFoodi-3)+(nearFoodj-3)*(nearFoodj-3));
                            nearFoodi=i;
                            nearFoodj=j;
                        end
                    end
                end
            end
        end
 end     
 
 if action > -1
    if action == 1
       if MyHormigueroi~=-1
           oi=MyHormigueroi;
           oj=MyHormigueroj;
       else
           oi=GreatScenti;
           oj=GreatScentj;
       end
    else
       if nearFoodi~=-1
           oi=nearFoodi;
           oj=nearFoodj;
       else
           oi=round(rand*2) - 1;
           oj=round(rand*2) - 1;
           %oi=LessScenti;
           %oj=LessScentj;
       end
    end 
    oj=oj-3;
    oi=oi-3;
    oj=sign(oj);
    oi=sign(oi);
    dRow   = oi;
    dCol   = oj;
    if isnan(mainMap(3+oi,3+oj))
        oi   = round(rand*2) - 1;
        oj   = round(rand*2) - 1;
    end
    while  (isnan(mainMap(3+oi,3+oj)))
        if (oi==0) && (oj==1) 
            oi=1;
            oj=1;
        elseif (oi==1) && (oj==1) 
            oi=1;
            oj=0;
        elseif (oi==1) && (oj==0) 
            oi=1;
            oj=-1;
        elseif (oi==1) && (oj==-1) 
            oi=0;
            oj=-1;
        elseif (oi==0) && (oj==-1) 
            oi=-1;
            oj=-1;
        elseif (oi==-1) && (oj==-1) 
            oi=-1;
            oj=0;
        elseif (oi==-1) && (oj==0) 
            oi=-1;
            oj=1;
        elseif (oi==-1) && (oj==1) 
            oi=0;
            oj=1;
        end
        
        if (oi==dRow) && (oj==dCol)
            break;
        end
    end
    dRow   = oi;
    dCol   = oj;
 end 

 mark=5;
   
   
end