ID:49917
Title:simplicity...
Author:Crapoo Doudou
Date:2008-11-06 06:35:52
Score:25306.7605
Result:24757.56 (cyc: 6, node: 411)
CPU Time:129.1545
Status:Passed
Comments:
Based on:none
Code:
function [dRow,dCol,action,mark] = solver( ...
    mainMap,foodMap,myAntMap,opAntMap, ...
    myScentMap,opScentMap,myDeathMap,opDeathMap)



if mainMap(3,3)==1
    [dRow,dCol] = aller_vers_sucre(mainMap,foodMap,myAntMap);
    action = 0;
elseif foodMap(3,3)>0
    [dRow,dCol] = aller_vers_nid(mainMap,myScentMap);
    action = 1;
else
    [dRow,dCol] = aller_vers_sucre(mainMap,foodMap,myAntMap);
    action = 0;
end

mark = marquer_case(mainMap,myScentMap);






function [dRow,dCol] = aller_vers_nid(mainMap,myScentMap)

[a,b]=find(mainMap==1,1);
if ~isempty(a)
    [dRow,dCol] = aller_vers_case(a,b,mainMap);
else
    if sum(myScentMap(:))==0
        [dRow,dCol] = aller_vers_case(floor(rand*(5-eps))+1,floor(rand*(5-eps))+1,mainMap);
    else
        [a,b]=max(myScentMap(:));
        a=mod(b-1,5)+1;
        b=floor((b-1)/5)+1;
        [dRow,dCol] = aller_vers_case(a,b,mainMap);
    end
end



function [dRow,dCol] = aller_vers_sucre(mainMap,foodMap,myAntMap)

[a,b]=find((foodMap-myAntMap>0)&(mainMap~=1),1);
if ~isempty(a)
    [dRow,dCol] = aller_vers_case(a,b,mainMap);
else
    [dRow,dCol] = aller_vers_case(floor(rand*(5-eps))+1,floor(rand*(5-eps))+1,mainMap);
end



function [dRow,dCol] = aller_vers_case(a,b,mainMap)

if a<3
    dRow = -1;
elseif a==3
    dRow = 0;
else
    dRow = 1;
end

if b<3
    dCol = -1;
elseif b==3
    dCol = 0;
else
    dCol = 1;
end

while isnan(mainMap(3+dRow,3+dCol))
    dRow=floor(3*rand)-1;
    dCol=floor(3*rand)-1;
end



function mark = marquer_case(mainMap,myScentMap)

if ~isempty(find(mainMap(2:4,2:4)==1,1))
    mark = 100;
elseif ~isempty(find(myScentMap(2:4,2:4)>0,1))
    mark = 10;
else
    mark=0;
end