ID:50254
Title:Patient 3
Author:Nick Howe
Date:2008-11-07 11:08:45
Score:37123.9385
Result:36727.06 (cyc: 75, node: 1245)
CPU Time:121.5540
Status:Passed
Comments:
Based on:none
Code:
function [dRow,dCol,action,mark] = patient3(mainMap,foodMap,myAntMap,opAntMap, ...
    myScentMap,opScentMap,myDeathMap,opDeathMap)

if (opAntMap(7)||opAntMap(8)||opAntMap(9)||opAntMap(12)||opAntMap(13)||opAntMap(14)||opAntMap(17)||opAntMap(18)||opAntMap(19))
    mark = 2;
    action = -1;
    if (myScentMap(13)<=3)||(opAntMap(13))
        dRow = 0;
        dCol = 0;
    elseif opAntMap(7)
        dRow   = -1;
        dCol   = -1;
    elseif opAntMap(19)
        dRow   = 1;
        dCol   = 1;
    elseif opAntMap(8)
        dRow   = 0;
        dCol   = -1;
    elseif opAntMap(18)
        dRow   = 0;
        dCol   = 1;
    elseif opAntMap(9)
        dRow   = 1;
        dCol   = -1;
    elseif opAntMap(17)
        dRow   = -1;
        dCol   = 1;
    elseif opAntMap(14)
        dRow   = 1;
        dCol   = 0;
    elseif opAntMap(12)
        dRow   = -1;
        dCol   = 0;
    end;
    return;
end;
if opAntMap(1)
    mark = 0;
    action = -1;
    dRow = -1;
    dCol = -1;
    if ~isnan(mainMap(3+dRow,3+dCol))
        return;
    end;
elseif opAntMap(2)
    mark = 0;
    action = -1;
    dRow = -1;
    dCol = -1;
    if ~isnan(mainMap(3+dRow,3+dCol))
        return;
    end;
elseif opAntMap(3)
    mark = 0;
    action = -1;
    dRow = 0;
    dCol = -1;
    if ~isnan(mainMap(3+dRow,3+dCol))
        return;
    end;
elseif opAntMap(4)
    mark = 0;
    action = -1;
    dRow = 1;
    dCol = -1;
    if ~isnan(mainMap(3+dRow,3+dCol))
        return;
    end;
elseif opAntMap(5)
    mark = 0;
    action = -1;
    dRow = 1;
    dCol = -1;
    if ~isnan(mainMap(3+dRow,3+dCol))
        return;
    end;
elseif opAntMap(10)
    mark = 0;
    action = -1;
    dRow = 1;
    dCol = -1;
    if ~isnan(mainMap(3+dRow,3+dCol))
        return;
    end;
elseif opAntMap(15)
    mark = 0;
    action = -1;
    dRow = 1;
    dCol = 0;
    if ~isnan(mainMap(3+dRow,3+dCol))
        return;
    end;
elseif opAntMap(20)
    mark = 0;
    action = -1;
    dRow = 1;
    dCol = 1;
    if ~isnan(mainMap(3+dRow,3+dCol))
        return;
    end;
elseif opAntMap(25)
    mark = 0;
    action = -1;
    dRow = 1;
    dCol = 1;
    if ~isnan(mainMap(3+dRow,3+dCol))
        return;
    end;
elseif opAntMap(24)
    mark = 0;
    action = -1;
    dRow = 1;
    dCol = 1;
    if ~isnan(mainMap(3+dRow,3+dCol))
        return;
    end;
elseif opAntMap(23)
    mark = 0;
    action = -1;
    dRow = 0;
    dCol = 1;
    if ~isnan(mainMap(3+dRow,3+dCol))
        return;
    end;
elseif opAntMap(22)
    mark = 0;
    action = -1;
    dRow = -1;
    dCol = 1;
    if ~isnan(mainMap(3+dRow,3+dCol))
        return;
    end;
elseif opAntMap(21)
    mark = 0;
    action = -1;
    dRow = -1;
    dCol = 1;
    if ~isnan(mainMap(3+dRow,3+dCol))
        return;
    end;
elseif opAntMap(16)
    mark = 0;
    action = -1;
    dRow = -1;
    dCol = 1;
    if ~isnan(mainMap(3+dRow,3+dCol))
        return;
    end;
elseif opAntMap(11)
    mark = 0;
    action = -1;
    dRow = -1;
    dCol = 0;
    if ~isnan(mainMap(3+dRow,3+dCol))
        return;
    end;
elseif opAntMap(6)
    mark = 0;
    action = -1;
    dRow = -1;
    dCol = -1;
    if ~isnan(mainMap(3+dRow,3+dCol))
        return;
    end;
end;
if (myAntMap(13)>1)
    mark = 0;
    action = 1;
    if (rand>.5)
        dRow = ceil(3*rand)-2;
        dCol = (ceil(2*rand)-1.5)*2;
    else
        dRow = (ceil(2*rand)-1.5)*2;
        dCol = ceil(3*rand)-2;
    end;
    return;
end;
mark = 2;
action = 1;
if (rand > 0.5)
    if myScentMap(7)
        dRow   = 1;
        dCol   = 1;
    elseif myScentMap(19)
        dRow   = -1;
        dCol   = -1;
    elseif myScentMap(8)
        dRow   = 0;
        dCol   = 1;
    elseif myScentMap(18)
        dRow   = 0;
        dCol   = -1;
    elseif myScentMap(9)
        dRow   = -1;
        dCol   = 1;
    elseif myScentMap(17)
        dRow   = 1;
        dCol   = -1;
    elseif myScentMap(14)
        dRow   = -1;
        dCol   = 0;
    elseif myScentMap(12)
        dRow   = 1;
        dCol   = 0;
    else
        dRow   = ceil(rand*3) - 2;
        dCol   = ceil(rand*3) - 2;
    end;
    if isnan(mainMap(3+dRow,3+dCol))
        dRow   = ceil(rand*3) - 2;
        dCol   = ceil(rand*3) - 2;
    end;
else
    if myScentMap(12)
        dRow   = 1;
        dCol   = 0;
    elseif myScentMap(14)
        dRow   = -1;
        dCol   = 0;
    elseif myScentMap(17)
        dRow   = 1;
        dCol   = -1;
    elseif myScentMap(9)
        dRow   = -1;
        dCol   = 1;
    elseif myScentMap(18)
        dRow   = 0;
        dCol   = -1;
    elseif myScentMap(8)
        dRow   = 0;
        dCol   = 1;
    elseif myScentMap(19)
        dRow   = -1;
        dCol   = -1;
    elseif myScentMap(7)
        dRow   = 1;
        dCol   = 1;
    else
        if (rand>.5)
            dRow = ceil(3*rand)-2;
            dCol = (ceil(2*rand)-1.5)*2;
        else
            dRow = (ceil(2*rand)-1.5)*2;
            dCol = ceil(3*rand)-2;
        end;
    end;
    if isnan(mainMap(3+dRow,3+dCol))
        if (rand>.5)
            dRow = ceil(3*rand)-2;
            dCol = (ceil(2*rand)-1.5)*2;
        else
            dRow = (ceil(2*rand)-1.5)*2;
            dCol = ceil(3*rand)-2;
        end;
    end;
end;
end