| 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
|