b=a(end,:,end);
for point = 1:columns;
if 2<point & point<columns-1;
pointleft=(point-1);
pointleftleft=(point-2);
pointrightright=(point+2);
pointright=(point+1);
elseif point==1;
pointleft=columns;
pointleftleft=columns-1;
pointrightright=(point+2);
pointright=(point+1);
elseif point==columns;
pointleft=(point-1);
pointleftleft=(point-2);
pointrightright=2;
pointright=1;
elseif point==2;
pointleft=(point-1);
pointleftleft=columns;
pointrightright=(point+2);
pointright=(point+1);
elseif point==columns-1;
pointleft=(point-1);
pointleftleft=(point-2);
pointrightright=1;
pointright=(point+1);
end;
ruleplacenumber=(a(end,pointleft,end)+a(end,pointleftleft,end)+a(end,point,end)+a(end,pointright,end)+a(end,pointrightright,end))+1;
ruleplacenumber=(possiblestates+1)-ruleplacenumber;
b(end,point)=rulenumberbinary(ruleplacenumber);
end;
a(end,:,end)=b;