Cody

# Problem 3101. Rumis Scorer 3

Solution 601611

Submitted on 24 Mar 2015 by Jon
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

### Test Suite

Test Status Code Input and Output
1   Pass
%% clear board stencil stencil = [ 1 2 3 4 4 4 4 4; 1 2 3 4 4 4 4 4; 1 2 3 4 4 4 4 4; 1 2 3 4 4 4 4 4; 0 0 0 0 3 3 3 3; 0 0 0 0 2 2 2 2; 0 0 0 0 1 1 1 1; ]; board(:,:,1) = ['rrbrrbbr';'rbrrbbrb';'bbrrbbrb';'rbrrbrbr';' brbr';' rrbr';' bbbr']; board(:,:,2) = [' rbrbbrb';' rrbbbbr';' brbbrbr';' brbbrbr';' rbrb';' brbr';' ']; board(:,:,3) = [' brbbrb';' rbbbbr';' rbbrbr';' bbrrrr';' bbbr';' ';' ']; board(:,:,4) = [' rbbrb';' rbbbr';' brrbr';' rbrbr';' ';' ';' ']; %blue wins 23 to 21 assert(isequal(rumis_scorer3(board,stencil),'b'))

2   Pass
%% board shown above with two squares filled in (corners of 2nd and 4th levels) clear board stencil stencil = [ 1 1 1 1 1 1 1 1; 1 2 2 2 2 2 2 1; 1 2 3 3 3 3 2 1; 1 2 3 4 4 3 2 1; 1 2 3 4 4 3 2 1; 1 2 3 3 3 3 2 1; 1 2 2 2 2 2 2 1; 1 1 1 1 1 1 1 1; ]; board(:,:,1) = ['yyyyyyyr';'yyyyyyyr';'yyyyyrrr';'yyyyrrrr';'yyyrrrbb';'yrrrrbbb';'yyrrrgbb';'yrrrgggb']; board(:,:,2) = [' ';' ryyyyb ';' ryyybb ';' rrygrr ';' ryyggr ';' ggygrr ';' ggyggb ';' ']; board(:,:,3) = [' ';' ';' ggyy ';' gbyr ';' ggbr ';' ggrr ';' ';' ']; board(:,:,4) = [' ';' ';' ';' by ';' bb ';' ';' ';' ']; %yellow wins 22 to 18 (r) to 14 (g) to 10 (b) assert(isequal(rumis_scorer3(board,stencil),'y'))

3   Pass
%% clear board stencil stencil = [ 0 0 0 0 1 0 0 0 0; 0 0 0 1 2 1 0 0 0; 0 0 1 2 3 2 1 0 0; 0 1 2 3 4 3 2 1 0; 1 2 3 4 5 4 3 2 1; 0 1 2 3 4 3 2 1 0; 0 0 1 2 3 2 1 0 0; 0 0 0 1 2 1 0 0 0; 0 0 0 0 1 0 0 0 0; ]; board(:,:,1) = [' o ';' oob ';' oobbp ';' oobbppp ';'ooooopppo';' oobbbpp ';' ooooo ';' ooo ';' o ']; board(:,:,2) = [' ';' o ';' bbb ';' oobbp ';' oobbppp ';' oobbp ';' bob ';' o ';' ']; board(:,:,3) = [' ';' ';' b ';' obb ';' oobbp ';' oob ';' o ';' ';' ']; board(:,:,4) = [' ';' ';' ';' b ';' ooo ';' o ';' ';' ';' ']; board(:,:,5) = [' ';' ';' ';' ';' o ';' ';' ';' ';' ']; %orange wins 25 to 9 (b) to 7 (p) assert(isequal(rumis_scorer3(board,stencil),'o'))

4   Pass
%% clear board stencil stencil = [ 2 2 3 3 3 3 2 2; 2 2 4 4 4 4 2 2; 3 4 5 6 6 5 4 3; 3 4 6 7 7 6 4 3; 3 4 6 7 7 6 4 3; 3 4 5 6 6 5 4 3; 2 2 4 4 4 4 2 2; 2 2 3 3 3 3 2 2; ]; board(:,:,1) = ['rryyobpg';'ryyyobpg';'ryyoobbg';'rryoobbg';'ryyybbgg';'yyybbggg';'ybbbbggg';'yyyyyggg']; board(:,:,2) = ['ryyooopp';'rrryyppp';'rryooogg';'rrrroobb';'ryyybggg';'rybbbbbg';'bbyyyggg';'byyggggg']; board(:,:,3) = [' yyoo ';' ryyp ';'rrroobgg';'rrryobbb';'ryyyoppp';'rrrorybg';' yybo ';' oybg ']; board(:,:,4) = [' ';' yybp ';' rgbopp ';' ggbboo ';' boybog ';' rbggpp ';' ybbo ';' ']; board(:,:,5) = [' ';' ';' gboo ';' ggbb ';' oyyy ';' ggpp ';' ';' ']; board(:,:,6) = [' ';' ';' oo ';' ggbb ';' ooyy ';' gp ';' ';' ']; board(:,:,7) = [' ';' ';' ';' go ';' oy ';' ';' ';' ']; %green wins 14 to 11 (o) to 10 (y,b,p) to 9 (r) assert(isequal(rumis_scorer3(board,stencil),'g'))

5   Pass
%% anti-cheating case ind = randi(4); switch ind case 1 clear board stencil stencil = [ 1 2 3 4 4 4 4 4; 1 2 3 4 4 4 4 4; 1 2 3 4 4 4 4 4; 1 2 3 4 4 4 4 4; 0 0 0 0 3 3 3 3; 0 0 0 0 2 2 2 2; 0 0 0 0 1 1 1 1; ]; board(:,:,1) = ['rrbrrbbr';'rbrrbbrb';'bbrrbbrb';'rbrrbrbr';' brbr';' rrbr';' bbbr']; board(:,:,2) = [' rbrbbrb';' rrbbbbr';' brbbrbr';' brbbrbr';' rbrb';' brbr';' ']; board(:,:,3) = [' brbbrb';' rbbbbr';' rbbrbr';' bbrrrr';' bbbr';' ';' ']; board(:,:,4) = [' rbbrb';' rbbbr';' brrbr';' rbrbr';' ';' ';' ']; assert(isequal(rumis_scorer3(board,stencil),'b')) case 2 clear board stencil stencil = [ 1 1 1 1 1 1 1 1; 1 2 2 2 2 2 2 1; 1 2 3 3 3 3 2 1; 1 2 3 4 4 3 2 1; 1 2 3 4 4 3 2 1; 1 2 3 3 3 3 2 1; 1 2 2 2 2 2 2 1; 1 1 1 1 1 1 1 1; ]; board(:,:,1) = ['yyyyyyyr';'yyyyyyyr';'yyyyyrrr';'yyyyrrrr';'yyyrrrbb';'yrrrrbbb';'yyrrrgbb';'yrrrgggb']; board(:,:,2) = [' ';' ryyyyb ';' ryyybb ';' rrygrr ';' ryyggr ';' ggygrr ';' ggyggb ';' ']; board(:,:,3) = [' ';' ';' ggyy ';' gbyr ';' ggbr ';' ggrr ';' ';' ']; board(:,:,4) = [' ';' ';' ';' by ';' bb ';' ';' ';' ']; assert(isequal(rumis_scorer3(board,stencil),'y')) case 3 clear board stencil stencil = [ 0 0 0 0 1 0 0 0 0; 0 0 0 1 2 1 0 0 0; 0 0 1 2 3 2 1 0 0; 0 1 2 3 4 3 2 1 0; 1 2 3 4 5 4 3 2 1; 0 1 2 3 4 3 2 1 0; 0 0 1 2 3 2 1 0 0; 0 0 0 1 2 1 0 0 0; 0 0 0 0 1 0 0 0 0; ]; board(:,:,1) = [' o ';' oob ';' oobbp ';' oobbppp ';'ooooopppo';' oobbbpp ';' ooooo ';' ooo ';' o ']; board(:,:,2) = [' ';' o ';' bbb ';' oobbp ';' oobbppp ';' oobbp ';' bob ';' o ';' ']; board(:,:,3) = [' ';' ';' b ';' obb ';' oobbp ';' oob ';' o ';' ';' ']; board(:,:,4) = [' ';' ';' ';' b ';' ooo ';' o ';' ';' ';' ']; board(:,:,5) = [' ';' ';' ';' ';' o ';' ';' ';' ';' ']; assert(isequal(rumis_scorer3(board,stencil),'o')) case 4 clear board stencil stencil = [ 2 2 3 3 3 3 2 2; 2 2 4 4 4 4 2 2; 3 4 5 6 6 5 4 3; 3 4 6 7 7 6 4 3; 3 4 6 7 7 6 4 3; 3 4 5 6 6 5 4 3; 2 2 4 4 4 4 2 2; 2 2 3 3 3 3 2 2; ]; board(:,:,1) = ['rryyobpg';'ryyyobpg';'ryyoobbg';'rryoobbg';'ryyybbgg';'yyybbggg';'ybbbbggg';'yyyyyggg']; board(:,:,2) = ['ryyooopp';'rrryyppp';'rryooogg';'rrrroobb';'ryyybggg';'rybbbbbg';'bbyyyggg';'byyggggg']; board(:,:,3) = [' yyoo ';' ryyp ';'rrroobgg';'rrryobbb';'ryyyoppp';'rrrorybg';' yybo ';' oybg ']; board(:,:,4) = [' ';' yybp ';' rgbopp ';' ggbboo ';' boybog ';' rbggpp ';' ybbo ';' ']; board(:,:,5) = [' ';' ';' gboo ';' ggbb ';' oyyy ';' ggpp ';' ';' ']; board(:,:,6) = [' ';' ';' oo ';' ggbb ';' ooyy ';' gp ';' ';' ']; board(:,:,7) = [' ';' ';' ';' go ';' oy ';' ';' ';' ']; assert(isequal(rumis_scorer3(board,stencil),'g')) end

6   Pass
%% anti-cheating case ind = randi(4); switch ind case 1 clear board stencil stencil = [ 1 2 3 4 4 4 4 4; 1 2 3 4 4 4 4 4; 1 2 3 4 4 4 4 4; 1 2 3 4 4 4 4 4; 0 0 0 0 3 3 3 3; 0 0 0 0 2 2 2 2; 0 0 0 0 1 1 1 1; ]; board(:,:,1) = ['rrbrrbbr';'rbrrbbrb';'bbrrbbrb';'rbrrbrbr';' brbr';' rrbr';' bbbr']; board(:,:,2) = [' rbrbbrb';' rrbbbbr';' brbbrbr';' brbbrbr';' rbrb';' brbr';' ']; board(:,:,3) = [' brbbrb';' rbbbbr';' rbbrbr';' bbrrrr';' bbbr';' ';' ']; board(:,:,4) = [' rbbrb';' rbbbr';' brrbr';' rbrbr';' ';' ';' ']; assert(isequal(rumis_scorer3(board,stencil),'b')) case 2 clear board stencil stencil = [ 1 1 1 1 1 1 1 1; 1 2 2 2 2 2 2 1; 1 2 3 3 3 3 2 1; 1 2 3 4 4 3 2 1; 1 2 3 4 4 3 2 1; 1 2 3 3 3 3 2 1; 1 2 2 2 2 2 2 1; 1 1 1 1 1 1 1 1; ]; board(:,:,1) = ['yyyyyyyr';'yyyyyyyr';'yyyyyrrr';'yyyyrrrr';'yyyrrrbb';'yrrrrbbb';'yyrrrgbb';'yrrrgggb']; board(:,:,2) = [' ';' ryyyyb ';' ryyybb ';' rrygrr ';' ryyggr ';' ggygrr ';' ggyggb ';' ']; board(:,:,3) = [' ';' ';' ggyy ';' gbyr ';' ggbr ';' ggrr ';' ';' ']; board(:,:,4) = [' ';' ';' ';' by ';' bb ';' ';' ';' ']; assert(isequal(rumis_scorer3(board,stencil),'y')) case 3 clear board stencil stencil = [ 0 0 0 0 1 0 0 0 0; 0 0 0 1 2 1 0 0 0; 0 0 1 2 3 2 1 0 0; 0 1 2 3 4 3 2 1 0; 1 2 3 4 5 4 3 2 1; 0 1 2 3 4 3 2 1 0; 0 0 1 2 3 2 1 0 0; 0 0 0 1 2 1 0 0 0; 0 0 0 0 1 0 0 0 0; ]; board(:,:,1) = [' o ';' oob ';' oobbp ';' oobbppp ';'ooooopppo';' oobbbpp ';' ooooo ';' ooo ';' o ']; board(:,:,2) = [' ';' o ';' bbb ';' oobbp ';' oobbppp ';' oobbp ';' bob ';' o ';' ']; board(:,:,3) = [' ';' ';' b ';' obb ';' oobbp ';' oob ';' o ';' ';' ']; board(:,:,4) = [' ';' ';' ';' b ';' ooo ';' o ';' ';' ';' ']; board(:,:,5) = [' ';' ';' ';' ';' o ';' ';' ';' ';' ']; assert(isequal(rumis_scorer3(board,stencil),'o')) case 4 clear board stencil stencil = [ 2 2 3 3 3 3 2 2; 2 2 4 4 4 4 2 2; 3 4 5 6 6 5 4 3; 3 4 6 7 7 6 4 3; 3 4 6 7 7 6 4 3; 3 4 5 6 6 5 4 3; 2 2 4 4 4 4 2 2; 2 2 3 3 3 3 2 2; ]; board(:,:,1) = ['rryyobpg';'ryyyobpg';'ryyoobbg';'rryoobbg';'ryyybbgg';'yyybbggg';'ybbbbggg';'yyyyyggg']; board(:,:,2) = ['ryyooopp';'rrryyppp';'rryooogg';'rrrroobb';'ryyybggg';'rybbbbbg';'bbyyyggg';'byyggggg']; board(:,:,3) = [' yyoo ';' ryyp ';'rrroobgg';'rrryobbb';'ryyyoppp';'rrrorybg';' yybo ';' oybg ']; board(:,:,4) = [' ';' yybp ';' rgbopp ';' ggbboo ';' boybog ';' rbggpp ';' ybbo ';' ']; board(:,:,5) = [' ';' ';' gboo ';' ggbb ';' oyyy ';' ggpp ';' ';' ']; board(:,:,6) = [' ';' ';' oo ';' ggbb ';' ooyy ';' gp ';' ';' ']; board(:,:,7) = [' ';' ';' ';' go ';' oy ';' ';' ';' ']; assert(isequal(rumis_scorer3(board,stencil),'g')) end

7   Pass
%% anti-cheating case ind = randi(4); switch ind case 1 clear board stencil stencil = [ 1 2 3 4 4 4 4 4; 1 2 3 4 4 4 4 4; 1 2 3 4 4 4 4 4; 1 2 3 4 4 4 4 4; 0 0 0 0 3 3 3 3; 0 0 0 0 2 2 2 2; 0 0 0 0 1 1 1 1; ]; board(:,:,1) = ['rrbrrbbr';'rbrrbbrb';'bbrrbbrb';'rbrrbrbr';' brbr';' rrbr';' bbbr']; board(:,:,2) = [' rbrbbrb';' rrbbbbr';' brbbrbr';' brbbrbr';' rbrb';' brbr';' ']; board(:,:,3) = [' brbbrb';' rbbbbr';' rbbrbr';' bbrrrr';' bbbr';' ';' ']; board(:,:,4) = [' rbbrb';' rbbbr';' brrbr';' rbrbr';' ';' ';' ']; assert(isequal(rumis_scorer3(board,stencil),'b')) case 2 clear board stencil stencil = [ 1 1 1 1 1 1 1 1; 1 2 2 2 2 2 2 1; 1 2 3 3 3 3 2 1; 1 2 3 4 4 3 2 1; 1 2 3 4 4 3 2 1; 1 2 3 3 3 3 2 1; 1 2 2 2 2 2 2 1; 1 1 1 1 1 1 1 1; ]; board(:,:,1) = ['yyyyyyyr';'yyyyyyyr';'yyyyyrrr';'yyyyrrrr';'yyyrrrbb';'yrrrrbbb';'yyrrrgbb';'yrrrgggb']; board(:,:,2) = [' ';' ryyyyb ';' ryyybb ';' rrygrr ';' ryyggr ';' ggygrr ';' ggyggb ';' ']; board(:,:,3) = [' ';' ';' ggyy ';' gbyr ';' ggbr ';' ggrr ';' ';' ']; board(:,:,4) = [' ';' ';' ';' by ';' bb ';' ';' ';' ']; assert(isequal(rumis_scorer3(board,stencil),'y')) case 3 clear board stencil stencil = [ 0 0 0 0 1 0 0 0 0; 0 0 0 1 2 1 0 0 0; 0 0 1 2 3 2 1 0 0; 0 1 2 3 4 3 2 1 0; 1 2 3 4 5 4 3 2 1; 0 1 2 3 4 3 2 1 0; 0 0 1 2 3 2 1 0 0; 0 0 0 1 2 1 0 0 0; 0 0 0 0 1 0 0 0 0; ]; board(:,:,1) = [' o ';' oob ';' oobbp ';' oobbppp ';'ooooopppo';' oobbbpp ';' ooooo ';' ooo ';' o ']; board(:,:,2) = [' ';' o ';' bbb ';' oobbp ';' oobbppp ';' oobbp ';' bob ';' o ';' ']; board(:,:,3) = [' ';' ';' b ';' obb ';' oobbp ';' oob ';' o ';' ';' ']; board(:,:,4) = [' ';' ';' ';' b ';' ooo ';' o ';' ';' ';' ']; board(:,:,5) = [' ';' ';' ';' ';' o ';' ';' ';' ';' ']; assert(isequal(rumis_scorer3(board,stencil),'o')) case 4 clear board stencil stencil = [ 2 2 3 3 3 3 2 2; 2 2 4 4 4 4 2 2; 3 4 5 6 6 5 4 3; 3 4 6 7 7 6 4 3; 3 4 6 7 7 6 4 3; 3 4 5 6 6 5 4 3; 2 2 4 4 4 4 2 2; 2 2 3 3 3 3 2 2; ]; board(:,:,1) = ['rryyobpg';'ryyyobpg';'ryyoobbg';'rryoobbg';'ryyybbgg';'yyybbggg';'ybbbbggg';'yyyyyggg']; board(:,:,2) = ['ryyooopp';'rrryyppp';'rryooogg';'rrrroobb';'ryyybggg';'rybbbbbg';'bbyyyggg';'byyggggg']; board(:,:,3) = [' yyoo ';' ryyp ';'rrroobgg';'rrryobbb';'ryyyoppp';'rrrorybg';' yybo ';' oybg ']; board(:,:,4) = [' ';' yybp ';' rgbopp ';' ggbboo ';' boybog ';' rbggpp ';' ybbo ';' ']; board(:,:,5) = [' ';' ';' gboo ';' ggbb ';' oyyy ';' ggpp ';' ';' ']; board(:,:,6) = [' ';' ';' oo ';' ggbb ';' ooyy ';' gp ';' ';' ']; board(:,:,7) = [' ';' ';' ';' go ';' oy ';' ';' ';' ']; assert(isequal(rumis_scorer3(board,stencil),'g')) end

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!