Test | Status | Code Input and Output |
---|---|---|
1 | Pass |
% THIS IS A HACK TO GET CODE ON THE PATH
% IGNORE THIS FIRST 'TEST'
%
%
fh=fopen('doug.m','wt');
fprintf(fh, '%s \n', 'function out = doug(histA, histB)');
fprintf(fh, '%s \n', '% A is self');
fprintf(fh, '%s \n', '%-1 steal');
fprintf(fh, '%s \n', '% 0 share');
fprintf(fh, '%s \n', '% 1 catch');
fprintf(fh, '%s \n', '');
fprintf(fh, '%s \n', '%stealVal = 2;');
fprintf(fh, '%s \n', '%catchVal = 2;');
fprintf(fh, '%s \n', '%shareVal = 1;');
fprintf(fh, '%s \n', '');
fprintf(fh, '%s \n', 'memoryThresh = 10;');
fprintf(fh, '%s \n', '');
fprintf(fh, '%s \n', 'histB = [zeros(memoryThresh,1); histB];');
fprintf(fh, '%s \n', '');
fprintf(fh, '%s \n', 'recentB = histB(end-(memoryThresh-1) : end);');
fprintf(fh, '%s \n', '');
fprintf(fh, '%s \n', 'numStealB = nnz(recentB == -1);');
fprintf(fh, '%s \n', 'numShareB = nnz(recentB == 0);');
fprintf(fh, '%s \n', 'numCatchB = nnz(recentB == 1);');
fprintf(fh, '%s \n', '');
fprintf(fh, '%s \n', 'percentStealB = (numStealB/memoryThresh);');
fprintf(fh, '%s \n', 'percentShareB = (numShareB/memoryThresh);');
fprintf(fh, '%s \n', 'percentCatchB = (numCatchB/memoryThresh);');
fprintf(fh, '%s \n', '');
fprintf(fh, '%s \n', 'out = 0; %default to share');
fprintf(fh, '%s \n', '');
fprintf(fh, '%s \n', ' rollDice = rand;');
fprintf(fh, '%s \n', 'percentCatchStealers = 0.9;');
fprintf(fh, '%s \n', 'if (rollDice < percentStealB)');
fprintf(fh, '%s \n', ' rollDice = rand;');
fprintf(fh, '%s \n', ' if (rollDice < percentCatchStealers)');
fprintf(fh, '%s \n', ' out = 1; % catch');
fprintf(fh, '%s \n', ' else');
fprintf(fh, '%s \n', ' out = -1; % steal');
fprintf(fh, '%s \n', ' end');
fprintf(fh, '%s \n', 'end');
fclose(fh);
fh=fopen('runPair.m','wt');
fprintf(fh, '%s \n', 'function [scoreA, scoreB] = runPair(fhA, fhB);');
fprintf(fh, '%s \n', '');
fprintf(fh, '%s \n', 'n = 10000;');
fprintf(fh, '%s \n', '');
fprintf(fh, '%s \n', 'histA = [];');
fprintf(fh, '%s \n', 'histB = [];');
fprintf(fh, '%s \n', '');
fprintf(fh, '%s \n', 'scoreA = 0;');
fprintf(fh, '%s \n', 'scoreB = 0;');
fprintf(fh, '%s \n', '');
fprintf(fh, '%s \n', '%-1 steal');
fprintf(fh, '%s \n', '% 0 share');
fprintf(fh, '%s \n', '% 1 catch');
fprintf(fh, '%s \n', '');
fprintf(fh, '%s \n', 'stealVal = 2;');
fprintf(fh, '%s \n', 'catchVal = 2;');
fprintf(fh, '%s \n', 'shareVal = 1;');
fprintf(fh, '%s \n', '');
fprintf(fh, '%s \n', 'for i = 1: n;');
fprintf(fh, '%s \n', ' histA(end+1,1) = fhA(histA, histB );');
fprintf(fh, '%s \n', ' histB(end+1,1) = fhB(histB, histA(1:end-1)); %modified one not sent!');
fprintf(fh, '%s \n', '');
fprintf(fh, '%s \n', ' switch histA(end)');
fprintf(fh, '%s \n', ' case -1 %a steal');
fprintf(fh, '%s \n', ' switch histB(end)');
fprintf(fh, '%s \n', ' case -1 %b steal');
fprintf(fh, '%s \n', ' scoreA = scoreA;');
fprintf(fh, '%s \n', ' scoreB = scoreB;');
fprintf(fh, '%s \n', ' case 0 %b share');
fprintf(fh, '%s \n', ' scoreA = scoreA + stealVal;');
fprintf(fh, '%s \n', ' scoreB = scoreB;');
fprintf(fh, '%s \n', ' case 1 %b catch');
fprintf(fh, '%s \n', ' scoreA = scoreA;');
fprintf(fh, '%s \n', ' scoreB = scoreB + catchVal;');
fprintf(fh, '%s \n', ' otherwise');
fprintf(fh, '%s \n', ' error(''This can not happen'') ');
fprintf(fh, '%s \n', ' end');
fprintf(fh, '%s \n', ' case 0 %a share');
fprintf(fh, '%s \n', ' switch histB(end)');
fprintf(fh, '%s \n', ' case -1 %b steal');
fprintf(fh, '%s \n', ' scoreA = scoreA;');
fprintf(fh, '%s \n', ' scoreB = scoreB + stealVal;');
fprintf(fh, '%s \n', ' case 0 %b share');
fprintf(fh, '%s \n', ' scoreA = scoreA + shareVal;');
fprintf(fh, '%s \n', ' scoreB = scoreB + shareVal;');
fprintf(fh, '%s \n', ' case 1 %b catch');
fprintf(fh, '%s \n', ' scoreA = scoreA;');
fprintf(fh, '%s \n', ' scoreB = scoreB;');
fprintf(fh, '%s \n', ' otherwise');
fprintf(fh, '%s \n', ' error(''This can not happen'')');
fprintf(fh, '%s \n', ' end');
fprintf(fh, '%s \n', ' case 1 %a catch');
fprintf(fh, '%s \n', ' switch histB(end)');
fprintf(fh, '%s \n', '');
fprintf(fh, '%s \n', ' case -1 %b steal');
fprintf(fh, '%s \n', ' scoreA = scoreA + catchVal;');
fprintf(fh, '%s \n', ' scoreB = scoreB;');
fprintf(fh, '%s \n', ' case 0 %b share');
fprintf(fh, '%s \n', ' scoreA = scoreA;');
fprintf(fh, '%s \n', ' scoreB = scoreB;');
fprintf(fh, '%s \n', ' case 1 %b catch');
fprintf(fh, '%s \n', ' scoreA = scoreA;');
fprintf(fh, '%s \n', ' scoreB = scoreB;');
fprintf(fh, '%s \n', ' otherwise');
fprintf(fh, '%s \n', ' error(''This can not happen'')');
fprintf(fh, '%s \n', ' end');
fprintf(fh, '%s \n', ' otherwise');
fprintf(fh, '%s \n', ' error(''This can not happen'')');
fprintf(fh, '%s \n', ' end');
fprintf(fh, '%s \n', 'end');
fprintf(fh, '%s \n', '');
fprintf(fh, '%s \n', '');
fclose(fh);
fh=fopen('evil.m','wt');
fprintf(fh, '%s \n', 'function out = evil(histA, histB)');
fprintf(fh, '%s \n', '%-1 steal');
fprintf(fh, '%s \n', '% 0 share');
fprintf(fh, '%s \n', '% 1 catch');
fprintf(fh, '%s \n', '');
fprintf(fh, '%s \n', '%stealVal = 2;');
fprintf(fh, '%s \n', '%catchVal = 2;');
fprintf(fh, '%s \n', '%shareVal = 1;');
fprintf(fh, '%s \n', '');
fprintf(fh, '%s \n', 'out = -1;');
fclose(fh);
fh=fopen('good.m','wt');
fprintf(fh, '%s \n', 'function out = good(histA, histB)');
fprintf(fh, '%s \n', '%-1 steal');
fprintf(fh, '%s \n', '% 0 share');
fprintf(fh, '%s \n', '% 1 catch');
fprintf(fh, '%s \n', '');
fprintf(fh, '%s \n', '%stealVal = 2;');
fprintf(fh, '%s \n', '%catchVal = 2;');
fprintf(fh, '%s \n', '%shareVal = 1;');
fprintf(fh, '%s \n', '');
fprintf(fh, '%s \n', 'out = 0;');
fclose(fh);
fh=fopen('chaos.m','wt');
fprintf(fh, '%s \n', 'function out = chaos(histA, histB)');
fprintf(fh, '%s \n', '%-1 steal');
fprintf(fh, '%s \n', '% 0 share');
fprintf(fh, '%s \n', '% 1 catch');
fprintf(fh, '%s \n', '');
fprintf(fh, '%s \n', '%stealVal = 2;');
fprintf(fh, '%s \n', '%catchVal = 2;');
fprintf(fh, '%s \n', '%shareVal = 1;');
fprintf(fh, '%s \n', '');
fprintf(fh, '%s \n', 'out = ceil(rand*3)-2;');
fclose(fh);
rehash path
{Warning: Function
/opt/mlsedu/mdcsserver/latest/m/web_common/shadow/license.m
has the same name as a MATLAB builtin. We suggest you rename
the function to avoid a potential name conflict.}
{> In verifyCode>evaluateCode at 189
In verifyCode at 37
In fevalJSON at 14}
{Warning: Function
/opt/mlsedu/mdcsserver/latest/m/web_common/shadow/graphicsAndGuis/uicontrol.m
has the same name as a MATLAB builtin. We suggest you rename
the function to avoid a potential name conflict.}
{> In verifyCode>evaluateCode at 189
In verifyCode at 37
In fevalJSON at 14}
{Warning: Function
/opt/mlsedu/mdcsserver/latest/m/common/shadow/home.m has the
same name as a MATLAB builtin. We suggest you rename the
function to avoid a potential name conflict.}
{> In verifyCode>evaluateCode at 189
In verifyCode at 37
In fevalJSON at 14}
{Warning: Function
/opt/mlsedu/mdcsserver/latest/m/common/shadow/keyboard.m has
the same name as a MATLAB builtin. We suggest you rename the
function to avoid a potential name conflict.}
{> In verifyCode>evaluateCode at 189
In verifyCode at 37
In fevalJSON at 14}
{Warning: Function
/opt/mlsedu/mdcsserver/latest/m/common/shadow/more.m has the
same name as a MATLAB builtin. We suggest you rename the
function to avoid a potential name conflict.}
{> In verifyCode>evaluateCode at 189
In verifyCode at 37
In fevalJSON at 14}
{Warning: Function
/opt/mlsedu/mdcsserver/latest/m/common/shadow/pause.m has the
same name as a MATLAB builtin. We suggest you rename the
function to avoid a potential name conflict.}
{> In verifyCode>evaluateCode at 189
In verifyCode at 37
In fevalJSON at 14}
|
2 | Pass |
%%
a = runPair(@StealShareCatch, @chaos);
a(end+1) = runPair(@StealShareCatch, @good);
a(end+1) = runPair(@StealShareCatch, @evil);
a(end+1) = runPair(@StealShareCatch, @doug)
yourScore = sum(a)
terribleScore = 0; % works
badScore = 23000; % good strategy scores this
okScore = 26000; % evil strategy scores this
decentScore = 29000; % chaos strategy scores this
greatScore = 42000; % doug strategy scores this
assert(yourScore > terribleScore, 'Score: %d', yourScore)
assert(yourScore > badScore, 'Score: %d', yourScore)
assert(yourScore > okScore, 'Score: %d', yourScore)
assert(yourScore > decentScore, 'Score: %d', yourScore)
assert(yourScore > greatScore, 'Score: %d', yourScore)
a =
6614 20000 19998 9999
yourScore =
56611
|
134 Solvers
753 Solvers
"Low : High - Low : High - Turn around " -- Create a subindices vector
320 Solvers
Matrix indexing with two vectors of indices
485 Solvers
320 Solvers
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!