Test | Status | Code Input and Output |
---|---|---|
1 | Pass |
urlwrite('https://sites.google.com/a/alfnie.com/alfnie/software/SetSolutionScore.p?attredirects=0&d=1','SetSolutionScore.p');
SetSolutionScore(100);
doDraw=false; %set to true for display
params=struct('n',50,'str','NESW','D',[-1,50,1,-50],'wins',[0,0,0]);
rand('state',0);
for nboards=1:100,
% initialize board
params.board=zeros(params.n);
params.board([1,end],:)=-3;
params.board(:,[1,end])=-3;
[i,j]=find(params.board|1);
[nill,pos1]=max((i==2|j==2)+~params.board(:)+rand(params.n*params.n,1));
params.board(pos1)=1;
[nill,pos2]=max((i==2|j==2)+~params.board(:)+rand(params.n*params.n,1));
params.board(pos2)=2;
while 1
% blue's next movement
params.state=rand('state');
assignin('caller','params',params);
d1=tron(params.board);
params=evalin('caller','params');
rand('state',params.state);
% red's next movement
i=find(params.board==2);
[nill,j]=max(~params.board(i+params.D)+.5*(params.board(i-params.D)==-2));
d2=params.str(j);
% evaluate movements
d1=findstr(params.str,d1);
d2=findstr(params.str,d2);
assert(~isempty(d1));
params.board(pos1)=-1;
params.board(pos2)=-2;
pos1=pos1+params.D(d1);
pos2=pos2+params.D(d2);
if pos1==pos2||(params.board(pos1)&¶ms.board(pos2)), %tie
params.wins(2)=params.wins(2)+1;
if doDraw, disp('tie'); end
break;
elseif params.board(pos1), %loose
if doDraw, disp('loose'); end
params.wins(3)=params.wins(3)+1;
break;
elseif params.board(pos2), %win
if doDraw, disp('win'); end
params.wins(1)=params.wins(1)+1;
break;
end
params.board(pos1)=1;
params.board(pos2)=2;
if doDraw
image(4+params.board);
axis equal off;
colormap([1,1,1;.5,0,0;0,0,.5;0,0,0;0,0,1;1,0,0]);
set(gcf,'color','k');
drawnow;
end
end
if doDraw, pause; end
end
disp(sprintf('%d wins; %d ties; %d looses',params.wins));
% Score = 100+#Looses-#Wins
SetSolutionScore(100+params.wins*[-1;0;1]);
assert(params.wins(1)>=90,sprintf('%d wins; %d ties; %d looses',params.wins));
93 wins; 5 ties; 2 looses
|
1398 Solvers
223 Solvers
Find nearest prime number less than input number
268 Solvers
132 Solvers
376 Solvers
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!