{"group":{"id":1,"name":"Community","lockable":false,"created_at":"2012-01-18T18:02:15.000Z","updated_at":"2025-12-14T01:33:56.000Z","description":"Problems submitted by members of the MATLAB Central community.","is_default":true,"created_by":161519,"badge_id":null,"featured":false,"trending":false,"solution_count_in_trending_period":0,"trending_last_calculated":"2025-12-14T00:00:00.000Z","image_id":null,"published":true,"community_created":false,"status_id":2,"is_default_group_for_player":false,"deleted_by":null,"deleted_at":null,"restored_by":null,"restored_at":null,"description_opc":null,"description_html":null,"published_at":null},"problems":[{"id":3100,"title":"Rumis Scorer 2","description":"\u003chttp://en.wikipedia.org/wiki/Rumis Rumis\u003e is a multiplayer 3D block board game where the goal is to have the most squares visible, when viewed from above, after pieces have been played till there are no moves remaining. The picture below shows a completed 4-player round. There are a variety of board stencils and permissible heights possible in this game.\r\n\r\nFor this problem, you will be provided a completed rectangular board where there are anywhere from two to six players. The players' colors will be selected from the following options, though not necessarily in this order: red (r), orange (o), yellow (y), green (g), blue (b), and purple (p). The board will be from two to six levels high and completely filled. It will also be a character array wherein the players' squares are represented by a single character per square. In line with the game's rules, all players' colors will be represented on the first level. See the test suite for examples.\r\n\r\nWrite a function to count the squares visible when viewed from above to determine who won each round.\r\n\r\n\u003c\u003chttp://www.exodusbooks.com/Samples/Games/RumisCoricanchaBig.jpg\u003e\u003e","description_html":"\u003cp\u003e\u003ca href = \"http://en.wikipedia.org/wiki/Rumis\"\u003eRumis\u003c/a\u003e is a multiplayer 3D block board game where the goal is to have the most squares visible, when viewed from above, after pieces have been played till there are no moves remaining. The picture below shows a completed 4-player round. There are a variety of board stencils and permissible heights possible in this game.\u003c/p\u003e\u003cp\u003eFor this problem, you will be provided a completed rectangular board where there are anywhere from two to six players. The players' colors will be selected from the following options, though not necessarily in this order: red (r), orange (o), yellow (y), green (g), blue (b), and purple (p). The board will be from two to six levels high and completely filled. It will also be a character array wherein the players' squares are represented by a single character per square. In line with the game's rules, all players' colors will be represented on the first level. See the test suite for examples.\u003c/p\u003e\u003cp\u003eWrite a function to count the squares visible when viewed from above to determine who won each round.\u003c/p\u003e\u003cimg src = \"http://www.exodusbooks.com/Samples/Games/RumisCoricanchaBig.jpg\"\u003e","function_template":"function [winner] = rumis_scorer2(board)\r\n\r\nwinner = 'r';\r\n\r\nend\r\n","test_suite":"%%\r\nclear board\r\nboard(:,:,1) = ['rrbrbbr';'rbrbbrb';'bbrbbrb';'rbrrrbr';'bbrbbbr';'bbbrrbr'];\r\nboard(:,:,2) = ['brbbbrb';'rrrbbbr';'bbrbrbr';'brbrbrr';'rbrrrbr';'brbbbbr'];\r\n%blue wins 22 to 20\r\nassert(isequal(rumis_scorer2(board),'b'))\r\n\r\n%%\r\nclear board\r\nboard(:,:,1) = ['ppbrpbr';'rbrpbrb';'bbrbbrb';'rbrrppr';'bbrpbbr';'bbprrbr'];\r\nboard(:,:,2) = ['brbpbrb';'rrpbbpr';'pprbrbr';'brprbrr';'rbrrpbr';'brppbbr'];\r\n%red wins 18 to 15 (b) to 9 (p)\r\nassert(isequal(rumis_scorer2(board),'r'))\r\n\r\n%%\r\nclear board\r\nboard(:,:,1) = ['brbrb';'rrrbb';'bggob';'ggoro';'bbrbr'];\r\nboard(:,:,2) = ['bobrb';'roggr';'bogor';'bgoor';'rgrrr'];\r\nboard(:,:,3) = ['bobrg';'rrbgr';'rooor';'brbrg';'rgrrr'];\r\nboard(:,:,4) = ['borbg';'rrbbr';'bbrbr';'bboog';'rgrog'];\r\nboard(:,:,5) = ['robbr';'bbror';'borbr';'rrobb';'boobg'];\r\n%blue wins 10 to 8 (r) to 6 (o) to 1 (g)\r\nassert(isequal(rumis_scorer2(board),'b'))\r\n\r\n%%\r\nclear board\r\nboard(:,:,1) = ['rrbrryr';'rbrrryb';'brrrbyb';'rbrbyyr';'rbrbryr';'brrrybr'];\r\nboard(:,:,2) = ['brbybrb';'rbybbbr';'bbrbrbr';'brbryrr';'rbrrbbr';'brbbybr'];\r\nboard(:,:,3) = ['byyybry';'ybbbyyr';'bbrbyyr';'brbyyrr';'rbyyybr';'brybybr'];\r\n%yellow wins 16 to 15 (b) to 11 (r)\r\nassert(isequal(rumis_scorer2(board),'y'))\r\n\r\n%%\r\nclear board\r\nboard(:,:,1) = ['prbrby';'pprbby';'bggoyb';'gpyoro';'bppbyr'];\r\nboard(:,:,2) = ['pobrby';'rogygr';'bogoyr';'bgyoor';'rgyyyr'];\r\nboard(:,:,3) = ['ppbrgy';'rpybgr';'roooyr';'brybrg';'rgryrr'];\r\nboard(:,:,4) = ['borbgy';'rpbybr';'bbrbry';'bbyoog';'rgrpog'];\r\nboard(:,:,5) = ['robbry';'bprory';'borbry';'rroybb';'booybg'];\r\nboard(:,:,6) = ['oobyry';'bpryor';'bopbyr';'rooppb';'boobyg'];\r\n%orange wins 8 to 7 (b) to 5 (r,y) to 4 (p) to 1 (g)\r\nassert(isequal(rumis_scorer2(board),'o'))\r\n\r\n%% anti-cheating case\r\nind = randi(5);\r\nswitch ind\r\n\tcase 1\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['rrbrbbr';'rbrbbrb';'bbrbbrb';'rbrrrbr';'bbrbbbr';'bbbrrbr'];\r\n\t\tboard(:,:,2) = ['brbbbrb';'rrrbbbr';'bbrbrbr';'brbrbrr';'rbrrrbr';'brbbbbr'];\r\n\t\tassert(isequal(rumis_scorer2(board),'b'))\r\n\tcase 2\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['ppbrpbr';'rbrpbrb';'bbrbbrb';'rbrrppr';'bbrpbbr';'bbprrbr'];\r\n\t\tboard(:,:,2) = ['brbpbrb';'rrpbbpr';'pprbrbr';'brprbrr';'rbrrpbr';'brppbbr'];\r\n\t\tassert(isequal(rumis_scorer2(board),'r'))\r\n\tcase 3\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['brbrb';'rrrbb';'bggob';'ggoro';'bbrbr'];\r\n\t\tboard(:,:,2) = ['bobrb';'roggr';'bogor';'bgoor';'rgrrr'];\r\n\t\tboard(:,:,3) = ['bobrg';'rrbgr';'rooor';'brbrg';'rgrrr'];\r\n\t\tboard(:,:,4) = ['borbg';'rrbbr';'bbrbr';'bboog';'rgrog'];\r\n\t\tboard(:,:,5) = ['robbr';'bbror';'borbr';'rrobb';'boobg'];\r\n\t\tassert(isequal(rumis_scorer2(board),'b'))\r\n\tcase 4\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['rrbrryr';'rbrrryb';'brrrbyb';'rbrbyyr';'rbrbryr';'brrrybr'];\r\n\t\tboard(:,:,2) = ['brbybrb';'rbybbbr';'bbrbrbr';'brbryrr';'rbrrbbr';'brbbybr'];\r\n\t\tboard(:,:,3) = ['byyybry';'ybbbyyr';'bbrbyyr';'brbyyrr';'rbyyybr';'brybybr'];\r\n\t\tassert(isequal(rumis_scorer2(board),'y'))\r\n\tcase 5\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['prbrby';'pprbby';'bggoyb';'gpyoro';'bppbyr'];\r\n\t\tboard(:,:,2) = ['pobrby';'rogygr';'bogoyr';'bgyoor';'rgyyyr'];\r\n\t\tboard(:,:,3) = ['ppbrgy';'rpybgr';'roooyr';'brybrg';'rgryrr'];\r\n\t\tboard(:,:,4) = ['borbgy';'rpbybr';'bbrbry';'bbyoog';'rgrpog'];\r\n\t\tboard(:,:,5) = ['robbry';'bprory';'borbry';'rroybb';'booybg'];\r\n\t\tboard(:,:,6) = ['oobyry';'bpryor';'bopbyr';'rooppb';'boobyg'];\r\n\t\tassert(isequal(rumis_scorer2(board),'o'))\r\nend\r\n\r\n%% anti-cheating case\r\nind = randi(5);\r\nswitch ind\r\n\tcase 1\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['rrbrbbr';'rbrbbrb';'bbrbbrb';'rbrrrbr';'bbrbbbr';'bbbrrbr'];\r\n\t\tboard(:,:,2) = ['brbbbrb';'rrrbbbr';'bbrbrbr';'brbrbrr';'rbrrrbr';'brbbbbr'];\r\n\t\tassert(isequal(rumis_scorer2(board),'b'))\r\n\tcase 2\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['ppbrpbr';'rbrpbrb';'bbrbbrb';'rbrrppr';'bbrpbbr';'bbprrbr'];\r\n\t\tboard(:,:,2) = ['brbpbrb';'rrpbbpr';'pprbrbr';'brprbrr';'rbrrpbr';'brppbbr'];\r\n\t\tassert(isequal(rumis_scorer2(board),'r'))\r\n\tcase 3\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['brbrb';'rrrbb';'bggob';'ggoro';'bbrbr'];\r\n\t\tboard(:,:,2) = ['bobrb';'roggr';'bogor';'bgoor';'rgrrr'];\r\n\t\tboard(:,:,3) = ['bobrg';'rrbgr';'rooor';'brbrg';'rgrrr'];\r\n\t\tboard(:,:,4) = ['borbg';'rrbbr';'bbrbr';'bboog';'rgrog'];\r\n\t\tboard(:,:,5) = ['robbr';'bbror';'borbr';'rrobb';'boobg'];\r\n\t\tassert(isequal(rumis_scorer2(board),'b'))\r\n\tcase 4\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['rrbrryr';'rbrrryb';'brrrbyb';'rbrbyyr';'rbrbryr';'brrrybr'];\r\n\t\tboard(:,:,2) = ['brbybrb';'rbybbbr';'bbrbrbr';'brbryrr';'rbrrbbr';'brbbybr'];\r\n\t\tboard(:,:,3) = ['byyybry';'ybbbyyr';'bbrbyyr';'brbyyrr';'rbyyybr';'brybybr'];\r\n\t\tassert(isequal(rumis_scorer2(board),'y'))\r\n\tcase 5\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['prbrby';'pprbby';'bggoyb';'gpyoro';'bppbyr'];\r\n\t\tboard(:,:,2) = ['pobrby';'rogygr';'bogoyr';'bgyoor';'rgyyyr'];\r\n\t\tboard(:,:,3) = ['ppbrgy';'rpybgr';'roooyr';'brybrg';'rgryrr'];\r\n\t\tboard(:,:,4) = ['borbgy';'rpbybr';'bbrbry';'bbyoog';'rgrpog'];\r\n\t\tboard(:,:,5) = ['robbry';'bprory';'borbry';'rroybb';'booybg'];\r\n\t\tboard(:,:,6) = ['oobyry';'bpryor';'bopbyr';'rooppb';'boobyg'];\r\n\t\tassert(isequal(rumis_scorer2(board),'o'))\r\nend\r\n\r\n%% anti-cheating case\r\nind = randi(5);\r\nswitch ind\r\n\tcase 1\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['rrbrbbr';'rbrbbrb';'bbrbbrb';'rbrrrbr';'bbrbbbr';'bbbrrbr'];\r\n\t\tboard(:,:,2) = ['brbbbrb';'rrrbbbr';'bbrbrbr';'brbrbrr';'rbrrrbr';'brbbbbr'];\r\n\t\tassert(isequal(rumis_scorer2(board),'b'))\r\n\tcase 2\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['ppbrpbr';'rbrpbrb';'bbrbbrb';'rbrrppr';'bbrpbbr';'bbprrbr'];\r\n\t\tboard(:,:,2) = ['brbpbrb';'rrpbbpr';'pprbrbr';'brprbrr';'rbrrpbr';'brppbbr'];\r\n\t\tassert(isequal(rumis_scorer2(board),'r'))\r\n\tcase 3\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['brbrb';'rrrbb';'bggob';'ggoro';'bbrbr'];\r\n\t\tboard(:,:,2) = ['bobrb';'roggr';'bogor';'bgoor';'rgrrr'];\r\n\t\tboard(:,:,3) = ['bobrg';'rrbgr';'rooor';'brbrg';'rgrrr'];\r\n\t\tboard(:,:,4) = ['borbg';'rrbbr';'bbrbr';'bboog';'rgrog'];\r\n\t\tboard(:,:,5) = ['robbr';'bbror';'borbr';'rrobb';'boobg'];\r\n\t\tassert(isequal(rumis_scorer2(board),'b'))\r\n\tcase 4\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['rrbrryr';'rbrrryb';'brrrbyb';'rbrbyyr';'rbrbryr';'brrrybr'];\r\n\t\tboard(:,:,2) = ['brbybrb';'rbybbbr';'bbrbrbr';'brbryrr';'rbrrbbr';'brbbybr'];\r\n\t\tboard(:,:,3) = ['byyybry';'ybbbyyr';'bbrbyyr';'brbyyrr';'rbyyybr';'brybybr'];\r\n\t\tassert(isequal(rumis_scorer2(board),'y'))\r\n\tcase 5\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['prbrby';'pprbby';'bggoyb';'gpyoro';'bppbyr'];\r\n\t\tboard(:,:,2) = ['pobrby';'rogygr';'bogoyr';'bgyoor';'rgyyyr'];\r\n\t\tboard(:,:,3) = ['ppbrgy';'rpybgr';'roooyr';'brybrg';'rgryrr'];\r\n\t\tboard(:,:,4) = ['borbgy';'rpbybr';'bbrbry';'bbyoog';'rgrpog'];\r\n\t\tboard(:,:,5) = ['robbry';'bprory';'borbry';'rroybb';'booybg'];\r\n\t\tboard(:,:,6) = ['oobyry';'bpryor';'bopbyr';'rooppb';'boobyg'];\r\n\t\tassert(isequal(rumis_scorer2(board),'o'))\r\nend","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":36,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2015-03-21T01:22:06.000Z","updated_at":"2026-03-24T06:57:20.000Z","published_at":"2015-03-21T01:22:06.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/media/image1.JPEG\"}],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Rumis\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eRumis\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e is a multiplayer 3D block board game where the goal is to have the most squares visible, when viewed from above, after pieces have been played till there are no moves remaining. The picture below shows a completed 4-player round. There are a variety of board stencils and permissible heights possible in this game.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor this problem, you will be provided a completed rectangular board where there are anywhere from two to six players. The players' colors will be selected from the following options, though not necessarily in this order: red (r), orange (o), yellow (y), green (g), blue (b), and purple (p). The board will be from two to six levels high and completely filled. It will also be a character array wherein the players' squares are represented by a single character per square. In line with the game's rules, all players' colors will be represented on the first level. See the test suite for examples.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite a function to count the squares visible when viewed from above to determine who won each round.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"},{\"partUri\":\"/media/image1.JPEG\",\"contentType\":\"image/JPEG\",\"content\":\"data:image/JPEG;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAGuAosDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKCQOtABSEhRknArO1HW7PTYmeaVRgdzXlHiv4uRx74dPO9uRuzwPxpNpAepal4isNNUmaZBj1NVNN8Y6VqbYhuY29wwNfKWs+Lr/Vp2aedpOfu5+UVQstev9OnE0UrIc5ytGvYVz7cSRJFBVgQadXzx4Q+MMsTJBqByP74r2nRfFWn6xArwzodw7Gi4zeopFYMMg5FLTAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoqvc3sFqhaVwoHqa888VfFLT9JV4oZA8vZVOTQB397qdtYxl5pVXHqa8x8WfFq0sQ8Nm3myjjCnpXkXiP4i3+syOpnZEJ4RD/WuPklnumyScUld7CbOg8QeOdS1mZvOnOw/wKeK5zzJ7p8Mx+lbui+ErvVXTy0wjdWau6s/C+kaTCBNiS4HUnpQ2ouy1Y1BvVnDaP4QvNSIcp5Uf95u9aGp+DpbeBngPm7RyMV2kepxROF24jHpVhb2CRvlX5TXPVqYijK842Rd6KW54pJbz202NpRhWvo3im+0acNFK64PY8V6FqPh621UNsjAb+8OtcVq/hObT0ZwvmgddvatYVadVdmS4NarVHq/hH4wRybIL9tp/vZ4r1zTNdstTiV4ZlOfQ18VCKWBt8eVx2roNA8b6los6lJ2CDqpPFW01uTc+yQQRkUV5F4R+LlnfhILxxHL0+Y9a9QstTtr6MPDKrA+hpjLtFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUySVIlLOwA965TxF480zRIWLzruHbNAHUzXEUCFpHAA9a4fxP8SdM0SJh5ymTsoOSa8i8VfFe71AvHay+VH655NeYXOoXF9OztIzs3VmOTSTvsK53Pir4p6nq8jxwOYYT6H5j/hXCPPc3rkncSeSSasadol3qU6pBGzlu+OK7zSvA62IV7+RW4yYwaUpRh8W41FyOO0vw9dX8qpFCSSeWPSv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PIvIxl7aQYZT/Ue9eQ6roV5pVwySxNhT1xX1rr3g63vyLi2zDcpykicEGuC1nTI52+yeILdY3+6l6owp/wB4dvr0+lTrH0Jt2Pnu0u5IJSwYqCO1E10WBAOSe9dj4q8C3GmTNJAN8R5Vl5BFUfD/AIMuNQPnXIMcCnknitFNWA5/TdJu9TuFjhjJBPJ9K9K0fw1Y6GqPcr510w+WMDLE+wrb0bSvmFnodsHPR7gr8o+nrXpfhrwHb2BFzd5muW5Z35NS25DscroXgu+1t1m1IeVa5ytuvTHv616lpmjWumQLHDEq4HYVfjiSJAqKABT6aVhhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVR1DSrbUYWjmjVgR3FXqKAPMtR8J32msyWYFxZtnNvJyF/3T2rO0/wRqGpThLwCCzB/1Mf8X1NeukA9QDQFUdABS5Ve4GXpOhWelQLHDEq4HYVq0UUwCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//Z\"}]}"},{"id":3099,"title":"Rumis Scorer 1","description":"\u003chttp://en.wikipedia.org/wiki/Rumis Rumis\u003e is a multiplayer 3D block board game where the goal is to have the most squares visible, when viewed from above, after pieces have been played till there are no moves remaining. The picture below shows a completed 4-player round. There are a variety of board stencils and permissible heights possible in this game.\r\n\r\nFor this problem, you will be provided a completed 2-player rectangular board where the two players' colors are red and blue. The board will be two levels high and completely filled. It will also be a character array wherein the two players' squares are represented by 'r' or 'b'. See the test suite for examples.\r\n\r\nWrite a function to count the squares visible when viewed from above to determine who won each round.\r\n\r\n\u003c\u003chttp://www.exodusbooks.com/Samples/Games/RumisCoricanchaBig.jpg\u003e\u003e","description_html":"\u003cp\u003e\u003ca href = \"http://en.wikipedia.org/wiki/Rumis\"\u003eRumis\u003c/a\u003e is a multiplayer 3D block board game where the goal is to have the most squares visible, when viewed from above, after pieces have been played till there are no moves remaining. The picture below shows a completed 4-player round. There are a variety of board stencils and permissible heights possible in this game.\u003c/p\u003e\u003cp\u003eFor this problem, you will be provided a completed 2-player rectangular board where the two players' colors are red and blue. The board will be two levels high and completely filled. It will also be a character array wherein the two players' squares are represented by 'r' or 'b'. See the test suite for examples.\u003c/p\u003e\u003cp\u003eWrite a function to count the squares visible when viewed from above to determine who won each round.\u003c/p\u003e\u003cimg src = \"http://www.exodusbooks.com/Samples/Games/RumisCoricanchaBig.jpg\"\u003e","function_template":"function [winner] = rumis_scorer1(board)\r\n\r\nwinner = 'r';\r\n\r\nend\r\n","test_suite":"%%\r\nclear board\r\nboard(:,:,1) = ['rrbrbbr';'rbrbbrb';'bbrbbrb';'rbrrrbr';'bbrbbbr';'bbbrrbr'];\r\nboard(:,:,2) = ['brbbbrb';'rrrbbbr';'bbrbrbr';'brbrbrr';'rbrrrbr';'brbbbbr'];\r\n%blue wins 22 to 20\r\nassert(isequal(rumis_scorer1(board),'b'))\r\n\r\n%%\r\nclear board\r\nboard(:,:,1) = ['brbrb';'rrrbb';'bbrbb';'bbrrb';'bbrbr'];\r\nboard(:,:,2) = ['brbrb';'rrbbr';'bbrbr';'brbrr';'rbrrr'];\r\n%red wins 14 to 11\r\nassert(isequal(rumis_scorer1(board),'r'))\r\n\r\n%%\r\nclear board\r\nboard(:,:,1) = ['brb';'rrr';'bbb';'brb';'bbr'];\r\nboard(:,:,2) = ['brb';'rbr';'rbr';'brr';'rrr'];\r\n%red wins 10 to 5\r\nassert(isequal(rumis_scorer1(board),'r'))\r\n\r\n%%\r\nclear board\r\nboard(:,:,1) = ['rrbrrbr';'rbrrrrb';'brrrbrb';'rbrbrrr';'rbrbrbr';'brrrrbr'];\r\nboard(:,:,2) = ['brbbbrb';'rbbbbbr';'bbrbrbr';'brbrbrr';'rbrrbbr';'brbbbbr'];\r\n%blue wins 25 to 17\r\nassert(isequal(rumis_scorer1(board),'b'))\r\n\r\n%% anti-cheating case\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['rrbrbbr';'rbrbbrb';'bbrbbrb';'rbrrrbr';'bbrbbbr';'bbbrrbr'];\r\n\t\tboard(:,:,2) = ['brbbbrb';'rrrbbbr';'bbrbrbr';'brbrbrr';'rbrrrbr';'brbbbbr'];\r\n\t\tassert(isequal(rumis_scorer1(board),'b'))\r\n\tcase 2\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['brbrb';'rrrbb';'bbrbb';'bbrrb';'bbrbr'];\r\n\t\tboard(:,:,2) = ['brbrb';'rrbbr';'bbrbr';'brbrr';'rbrrr'];\r\n\t\tassert(isequal(rumis_scorer1(board),'r'))\r\n\tcase 3\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['brb';'rrr';'bbb';'brb';'bbr'];\r\n\t\tboard(:,:,2) = ['brb';'rbr';'rbr';'brr';'rrr'];\r\n\t\tassert(isequal(rumis_scorer1(board),'r'))\r\n\tcase 4\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['rrbrrbr';'rbrrrrb';'brrrbrb';'rbrbrrr';'rbrbrbr';'brrrrbr'];\r\n\t\tboard(:,:,2) = ['brbbbrb';'rbbbbbr';'bbrbrbr';'brbrbrr';'rbrrbbr';'brbbbbr'];\r\n\t\tassert(isequal(rumis_scorer1(board),'b'))\r\nend\r\n\r\n%% anti-cheating case\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['rrbrbbr';'rbrbbrb';'bbrbbrb';'rbrrrbr';'bbrbbbr';'bbbrrbr'];\r\n\t\tboard(:,:,2) = ['brbbbrb';'rrrbbbr';'bbrbrbr';'brbrbrr';'rbrrrbr';'brbbbbr'];\r\n\t\tassert(isequal(rumis_scorer1(board),'b'))\r\n\tcase 2\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['brbrb';'rrrbb';'bbrbb';'bbrrb';'bbrbr'];\r\n\t\tboard(:,:,2) = ['brbrb';'rrbbr';'bbrbr';'brbrr';'rbrrr'];\r\n\t\tassert(isequal(rumis_scorer1(board),'r'))\r\n\tcase 3\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['brb';'rrr';'bbb';'brb';'bbr'];\r\n\t\tboard(:,:,2) = ['brb';'rbr';'rbr';'brr';'rrr'];\r\n\t\tassert(isequal(rumis_scorer1(board),'r'))\r\n\tcase 4\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['rrbrrbr';'rbrrrrb';'brrrbrb';'rbrbrrr';'rbrbrbr';'brrrrbr'];\r\n\t\tboard(:,:,2) = ['brbbbrb';'rbbbbbr';'bbrbrbr';'brbrbrr';'rbrrbbr';'brbbbbr'];\r\n\t\tassert(isequal(rumis_scorer1(board),'b'))\r\nend\r\n\r\n%% anti-cheating case\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['rrbrbbr';'rbrbbrb';'bbrbbrb';'rbrrrbr';'bbrbbbr';'bbbrrbr'];\r\n\t\tboard(:,:,2) = ['brbbbrb';'rrrbbbr';'bbrbrbr';'brbrbrr';'rbrrrbr';'brbbbbr'];\r\n\t\tassert(isequal(rumis_scorer1(board),'b'))\r\n\tcase 2\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['brbrb';'rrrbb';'bbrbb';'bbrrb';'bbrbr'];\r\n\t\tboard(:,:,2) = ['brbrb';'rrbbr';'bbrbr';'brbrr';'rbrrr'];\r\n\t\tassert(isequal(rumis_scorer1(board),'r'))\r\n\tcase 3\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['brb';'rrr';'bbb';'brb';'bbr'];\r\n\t\tboard(:,:,2) = ['brb';'rbr';'rbr';'brr';'rrr'];\r\n\t\tassert(isequal(rumis_scorer1(board),'r'))\r\n\tcase 4\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['rrbrrbr';'rbrrrrb';'brrrbrb';'rbrbrrr';'rbrbrbr';'brrrrbr'];\r\n\t\tboard(:,:,2) = ['brbbbrb';'rbbbbbr';'bbrbrbr';'brbrbrr';'rbrrbbr';'brbbbbr'];\r\n\t\tassert(isequal(rumis_scorer1(board),'b'))\r\nend\r\n","published":true,"deleted":false,"likes_count":3,"comments_count":0,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":44,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2015-03-20T02:49:07.000Z","updated_at":"2026-03-04T14:57:42.000Z","published_at":"2015-03-20T02:49:07.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/media/image1.JPEG\"}],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Rumis\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eRumis\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e is a multiplayer 3D block board game where the goal is to have the most squares visible, when viewed from above, after pieces have been played till there are no moves remaining. The picture below shows a completed 4-player round. There are a variety of board stencils and permissible heights possible in this game.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor this problem, you will be provided a completed 2-player rectangular board where the two players' colors are red and blue. The board will be two levels high and completely filled. It will also be a character array wherein the two players' squares are represented by 'r' or 'b'. See the test suite for examples.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite a function to count the squares visible when viewed from above to determine who won each round.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"},{\"partUri\":\"/media/image1.JPEG\",\"contentType\":\"image/JPEG\",\"content\":\"data:image/JPEG;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAGuAosDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKCQOtABSEhRknArO1HW7PTYmeaVRgdzXlHiv4uRx74dPO9uRuzwPxpNpAepal4isNNUmaZBj1NVNN8Y6VqbYhuY29wwNfKWs+Lr/Vp2aedpOfu5+UVQstev9OnE0UrIc5ytGvYVz7cSRJFBVgQadXzx4Q+MMsTJBqByP74r2nRfFWn6xArwzodw7Gi4zeopFYMMg5FLTAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoqvc3sFqhaVwoHqa888VfFLT9JV4oZA8vZVOTQB397qdtYxl5pVXHqa8x8WfFq0sQ8Nm3myjjCnpXkXiP4i3+syOpnZEJ4RD/WuPklnumyScUld7CbOg8QeOdS1mZvOnOw/wKeK5zzJ7p8Mx+lbui+ErvVXTy0wjdWau6s/C+kaTCBNiS4HUnpQ2ouy1Y1BvVnDaP4QvNSIcp5Uf95u9aGp+DpbeBngPm7RyMV2kepxROF24jHpVhb2CRvlX5TXPVqYijK842Rd6KW54pJbz202NpRhWvo3im+0acNFK64PY8V6FqPh621UNsjAb+8OtcVq/hObT0ZwvmgddvatYVadVdmS4NarVHq/hH4wRybIL9tp/vZ4r1zTNdstTiV4ZlOfQ18VCKWBt8eVx2roNA8b6los6lJ2CDqpPFW01uTc+yQQRkUV5F4R+LlnfhILxxHL0+Y9a9QstTtr6MPDKrA+hpjLtFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUySVIlLOwA965TxF480zRIWLzruHbNAHUzXEUCFpHAA9a4fxP8SdM0SJh5ymTsoOSa8i8VfFe71AvHay+VH655NeYXOoXF9OztIzs3VmOTSTvsK53Pir4p6nq8jxwOYYT6H5j/hXCPPc3rkncSeSSasadol3qU6pBGzlu+OK7zSvA62IV7+RW4yYwaUpRh8W41FyOO0vw9dX8qpFCSSeWPSv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PIvIxl7aQYZT/Ue9eQ6roV5pVwySxNhT1xX1rr3g63vyLi2zDcpykicEGuC1nTI52+yeILdY3+6l6owp/wB4dvr0+lTrH0Jt2Pnu0u5IJSwYqCO1E10WBAOSe9dj4q8C3GmTNJAN8R5Vl5BFUfD/AIMuNQPnXIMcCnknitFNWA5/TdJu9TuFjhjJBPJ9K9K0fw1Y6GqPcr510w+WMDLE+wrb0bSvmFnodsHPR7gr8o+nrXpfhrwHb2BFzd5muW5Z35NS25DscroXgu+1t1m1IeVa5ytuvTHv616lpmjWumQLHDEq4HYVfjiSJAqKABT6aVhhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVR1DSrbUYWjmjVgR3FXqKAPMtR8J32msyWYFxZtnNvJyF/3T2rO0/wRqGpThLwCCzB/1Mf8X1NeukA9QDQFUdABS5Ve4GXpOhWelQLHDEq4HYVq0UUwCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//Z\"}]}"},{"id":3101,"title":"Rumis Scorer 3","description":"\u003chttp://en.wikipedia.org/wiki/Rumis Rumis\u003e is a multiplayer 3D block board game where the goal is to have the most squares visible, when viewed from above, after pieces have been played till there are no moves remaining. The picture below shows a completed 4-player round. There are a variety of board stencils and permissible heights possible in this game.\r\n\r\nFor this problem, you will be provided a completed board of varying shapes with anywhere from two to six players, inclusive. The players' colors will be selected from the following options, though not necessarily in this order: red (r), orange (o), yellow (y), green (g), blue (b), and purple (p). The character-array board will contain various stencils and maximum heights for each square. As an example, the following board represents an L with maximum heights varying from one to four depending upon location (zeros represent non-playable area):\r\n\r\n  1 2 3 4 4 4 4 4\r\n  1 2 3 4 4 4 4 4\r\n  1 2 3 4 4 4 4 4\r\n  1 2 3 4 4 4 4 4\r\n  0 0 0 0 3 3 3 3\r\n  0 0 0 0 2 2 2 2\r\n  0 0 0 0 1 1 1 1\r\n\r\nFor this problem, the board will be completely filled in, and, in line with the game's rules, all players' colors will be represented on the first level. Write a function to count the squares visible when viewed from above to determine who won each round. See the test suite for additional examples (including test case 2, which represents the completed board shown below).\r\n\r\n\u003c\u003chttp://www.exodusbooks.com/Samples/Games/RumisCoricanchaBig.jpg\u003e\u003e","description_html":"\u003cp\u003e\u003ca href = \"http://en.wikipedia.org/wiki/Rumis\"\u003eRumis\u003c/a\u003e is a multiplayer 3D block board game where the goal is to have the most squares visible, when viewed from above, after pieces have been played till there are no moves remaining. The picture below shows a completed 4-player round. There are a variety of board stencils and permissible heights possible in this game.\u003c/p\u003e\u003cp\u003eFor this problem, you will be provided a completed board of varying shapes with anywhere from two to six players, inclusive. The players' colors will be selected from the following options, though not necessarily in this order: red (r), orange (o), yellow (y), green (g), blue (b), and purple (p). The character-array board will contain various stencils and maximum heights for each square. As an example, the following board represents an L with maximum heights varying from one to four depending upon location (zeros represent non-playable area):\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e1 2 3 4 4 4 4 4\r\n1 2 3 4 4 4 4 4\r\n1 2 3 4 4 4 4 4\r\n1 2 3 4 4 4 4 4\r\n0 0 0 0 3 3 3 3\r\n0 0 0 0 2 2 2 2\r\n0 0 0 0 1 1 1 1\r\n\u003c/pre\u003e\u003cp\u003eFor this problem, the board will be completely filled in, and, in line with the game's rules, all players' colors will be represented on the first level. Write a function to count the squares visible when viewed from above to determine who won each round. See the test suite for additional examples (including test case 2, which represents the completed board shown below).\u003c/p\u003e\u003cimg src = \"http://www.exodusbooks.com/Samples/Games/RumisCoricanchaBig.jpg\"\u003e","function_template":"function [winner] = rumis_scorer3(board,stencil)\r\n\r\nwinner = '';\r\n\r\nend\r\n","test_suite":"%%\r\nclear board stencil\r\nstencil = [\r\n\t1 2 3 4 4 4 4 4;\r\n\t1 2 3 4 4 4 4 4;\r\n\t1 2 3 4 4 4 4 4;\r\n\t1 2 3 4 4 4 4 4;\r\n\t0 0 0 0 3 3 3 3;\r\n\t0 0 0 0 2 2 2 2;\r\n\t0 0 0 0 1 1 1 1;\r\n\t];\r\nboard(:,:,1) = ['rrbrrbbr';'rbrrbbrb';'bbrrbbrb';'rbrrbrbr';'    brbr';'    rrbr';'    bbbr'];\r\nboard(:,:,2) = [' rbrbbrb';' rrbbbbr';' brbbrbr';' brbbrbr';'    rbrb';'    brbr';'        '];\r\nboard(:,:,3) = ['  brbbrb';'  rbbbbr';'  rbbrbr';'  bbrrrr';'    bbbr';'        ';'        '];\r\nboard(:,:,4) = ['   rbbrb';'   rbbbr';'   brrbr';'   rbrbr';'        ';'        ';'        '];\r\n%blue wins 23 to 21\r\nassert(isequal(rumis_scorer3(board,stencil),'b'))\r\n\r\n%% board shown above with two squares filled in (corners of 2nd and 4th levels)\r\nclear board stencil\r\nstencil = [\r\n\t1 1 1 1 1 1 1 1;\r\n\t1 2 2 2 2 2 2 1;\r\n\t1 2 3 3 3 3 2 1;\r\n\t1 2 3 4 4 3 2 1;\r\n\t1 2 3 4 4 3 2 1;\r\n\t1 2 3 3 3 3 2 1;\r\n\t1 2 2 2 2 2 2 1;\r\n\t1 1 1 1 1 1 1 1;\r\n\t];\r\nboard(:,:,1) = ['yyyyyyyr';'yyyyyyyr';'yyyyyrrr';'yyyyrrrr';'yyyrrrbb';'yrrrrbbb';'yyrrrgbb';'yrrrgggb'];\r\nboard(:,:,2) = ['        ';' ryyyyb ';' ryyybb ';' rrygrr ';' ryyggr ';' ggygrr ';' ggyggb ';'        '];\r\nboard(:,:,3) = ['        ';'        ';'  ggyy  ';'  gbyr  ';'  ggbr  ';'  ggrr  ';'        ';'        '];\r\nboard(:,:,4) = ['        ';'        ';'        ';'   by   ';'   bb   ';'        ';'        ';'        '];\r\n%yellow wins 22 to 18 (r) to 14 (g) to 10 (b)\r\nassert(isequal(rumis_scorer3(board,stencil),'y'))\r\n\r\n%%\r\nclear board stencil\r\nstencil = [\r\n\t0 0 0 0 1 0 0 0 0;\r\n\t0 0 0 1 2 1 0 0 0;\r\n\t0 0 1 2 3 2 1 0 0;\r\n\t0 1 2 3 4 3 2 1 0;\r\n\t1 2 3 4 5 4 3 2 1;\r\n\t0 1 2 3 4 3 2 1 0;\r\n\t0 0 1 2 3 2 1 0 0;\r\n\t0 0 0 1 2 1 0 0 0;\r\n\t0 0 0 0 1 0 0 0 0;\r\n\t];\r\nboard(:,:,1) = ['    o    ';'   oob   ';'  oobbp  ';' oobbppp ';'ooooopppo';' oobbbpp ';'  ooooo  ';'   ooo   ';'    o    '];\r\nboard(:,:,2) = ['         ';'    o    ';'   bbb   ';'  oobbp  ';' oobbppp ';'  oobbp  ';'   bob   ';'    o    ';'         '];\r\nboard(:,:,3) = ['         ';'         ';'    b    ';'   obb   ';'  oobbp  ';'   oob   ';'    o    ';'         ';'         '];\r\nboard(:,:,4) = ['         ';'         ';'         ';'    b    ';'   ooo   ';'    o    ';'         ';'         ';'         '];\r\nboard(:,:,5) = ['         ';'         ';'         ';'         ';'    o    ';'         ';'         ';'         ';'         '];\r\n%orange wins 25 to 9 (b) to 7 (p)\r\nassert(isequal(rumis_scorer3(board,stencil),'o'))\r\n\r\n%%\r\nclear board stencil\r\nstencil = [\r\n\t2 2 3 3 3 3 2 2;\r\n\t2 2 4 4 4 4 2 2;\r\n\t3 4 5 6 6 5 4 3;\r\n\t3 4 6 7 7 6 4 3;\r\n\t3 4 6 7 7 6 4 3;\r\n\t3 4 5 6 6 5 4 3;\r\n\t2 2 4 4 4 4 2 2;\r\n\t2 2 3 3 3 3 2 2;\r\n\t];\r\nboard(:,:,1) = ['rryyobpg';'ryyyobpg';'ryyoobbg';'rryoobbg';'ryyybbgg';'yyybbggg';'ybbbbggg';'yyyyyggg'];\r\nboard(:,:,2) = ['ryyooopp';'rrryyppp';'rryooogg';'rrrroobb';'ryyybggg';'rybbbbbg';'bbyyyggg';'byyggggg'];\r\nboard(:,:,3) = ['  yyoo  ';'  ryyp  ';'rrroobgg';'rrryobbb';'ryyyoppp';'rrrorybg';'  yybo  ';'  oybg  '];\r\nboard(:,:,4) = ['        ';'  yybp  ';' rgbopp ';' ggbboo ';' boybog ';' rbggpp ';'  ybbo  ';'        '];\r\nboard(:,:,5) = ['        ';'        ';'  gboo  ';'  ggbb  ';'  oyyy  ';'  ggpp  ';'        ';'        '];\r\nboard(:,:,6) = ['        ';'        ';'   oo   ';'  ggbb  ';'  ooyy  ';'   gp   ';'        ';'        '];\r\nboard(:,:,7) = ['        ';'        ';'        ';'   go   ';'   oy   ';'        ';'        ';'        '];\r\n%green wins 14 to 11 (o) to 10 (y,b,p) to 9 (r)\r\nassert(isequal(rumis_scorer3(board,stencil),'g'))\r\n\r\n%% anti-cheating case\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t0 0 0 0 3 3 3 3;\r\n\t\t\t0 0 0 0 2 2 2 2;\r\n\t\t\t0 0 0 0 1 1 1 1;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['rrbrrbbr';'rbrrbbrb';'bbrrbbrb';'rbrrbrbr';'    brbr';'    rrbr';'    bbbr'];\r\n\t\tboard(:,:,2) = [' rbrbbrb';' rrbbbbr';' brbbrbr';' brbbrbr';'    rbrb';'    brbr';'        '];\r\n\t\tboard(:,:,3) = ['  brbbrb';'  rbbbbr';'  rbbrbr';'  bbrrrr';'    bbbr';'        ';'        '];\r\n\t\tboard(:,:,4) = ['   rbbrb';'   rbbbr';'   brrbr';'   rbrbr';'        ';'        ';'        '];\r\n\t\tassert(isequal(rumis_scorer3(board,stencil),'b'))\r\n\tcase 2\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t1 1 1 1 1 1 1 1;\r\n\t\t\t1 2 2 2 2 2 2 1;\r\n\t\t\t1 2 3 3 3 3 2 1;\r\n\t\t\t1 2 3 4 4 3 2 1;\r\n\t\t\t1 2 3 4 4 3 2 1;\r\n\t\t\t1 2 3 3 3 3 2 1;\r\n\t\t\t1 2 2 2 2 2 2 1;\r\n\t\t\t1 1 1 1 1 1 1 1;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['yyyyyyyr';'yyyyyyyr';'yyyyyrrr';'yyyyrrrr';'yyyrrrbb';'yrrrrbbb';'yyrrrgbb';'yrrrgggb'];\r\n\t\tboard(:,:,2) = ['        ';' ryyyyb ';' ryyybb ';' rrygrr ';' ryyggr ';' ggygrr ';' ggyggb ';'        '];\r\n\t\tboard(:,:,3) = ['        ';'        ';'  ggyy  ';'  gbyr  ';'  ggbr  ';'  ggrr  ';'        ';'        '];\r\n\t\tboard(:,:,4) = ['        ';'        ';'        ';'   by   ';'   bb   ';'        ';'        ';'        '];\r\n\t\tassert(isequal(rumis_scorer3(board,stencil),'y'))\r\n\tcase 3\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t0 0 0 0 1 0 0 0 0;\r\n\t\t\t0 0 0 1 2 1 0 0 0;\r\n\t\t\t0 0 1 2 3 2 1 0 0;\r\n\t\t\t0 1 2 3 4 3 2 1 0;\r\n\t\t\t1 2 3 4 5 4 3 2 1;\r\n\t\t\t0 1 2 3 4 3 2 1 0;\r\n\t\t\t0 0 1 2 3 2 1 0 0;\r\n\t\t\t0 0 0 1 2 1 0 0 0;\r\n\t\t\t0 0 0 0 1 0 0 0 0;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['    o    ';'   oob   ';'  oobbp  ';' oobbppp ';'ooooopppo';' oobbbpp ';'  ooooo  ';'   ooo   ';'    o    '];\r\n\t\tboard(:,:,2) = ['         ';'    o    ';'   bbb   ';'  oobbp  ';' oobbppp ';'  oobbp  ';'   bob   ';'    o    ';'         '];\r\n\t\tboard(:,:,3) = ['         ';'         ';'    b    ';'   obb   ';'  oobbp  ';'   oob   ';'    o    ';'         ';'         '];\r\n\t\tboard(:,:,4) = ['         ';'         ';'         ';'    b    ';'   ooo   ';'    o    ';'         ';'         ';'         '];\r\n\t\tboard(:,:,5) = ['         ';'         ';'         ';'         ';'    o    ';'         ';'         ';'         ';'         '];\r\n\t\tassert(isequal(rumis_scorer3(board,stencil),'o'))\r\n\tcase 4\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t2 2 3 3 3 3 2 2;\r\n\t\t\t2 2 4 4 4 4 2 2;\r\n\t\t\t3 4 5 6 6 5 4 3;\r\n\t\t\t3 4 6 7 7 6 4 3;\r\n\t\t\t3 4 6 7 7 6 4 3;\r\n\t\t\t3 4 5 6 6 5 4 3;\r\n\t\t\t2 2 4 4 4 4 2 2;\r\n\t\t\t2 2 3 3 3 3 2 2;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['rryyobpg';'ryyyobpg';'ryyoobbg';'rryoobbg';'ryyybbgg';'yyybbggg';'ybbbbggg';'yyyyyggg'];\r\n\t\tboard(:,:,2) = ['ryyooopp';'rrryyppp';'rryooogg';'rrrroobb';'ryyybggg';'rybbbbbg';'bbyyyggg';'byyggggg'];\r\n\t\tboard(:,:,3) = ['  yyoo  ';'  ryyp  ';'rrroobgg';'rrryobbb';'ryyyoppp';'rrrorybg';'  yybo  ';'  oybg  '];\r\n\t\tboard(:,:,4) = ['        ';'  yybp  ';' rgbopp ';' ggbboo ';' boybog ';' rbggpp ';'  ybbo  ';'        '];\r\n\t\tboard(:,:,5) = ['        ';'        ';'  gboo  ';'  ggbb  ';'  oyyy  ';'  ggpp  ';'        ';'        '];\r\n\t\tboard(:,:,6) = ['        ';'        ';'   oo   ';'  ggbb  ';'  ooyy  ';'   gp   ';'        ';'        '];\r\n\t\tboard(:,:,7) = ['        ';'        ';'        ';'   go   ';'   oy   ';'        ';'        ';'        '];\r\n\t\tassert(isequal(rumis_scorer3(board,stencil),'g'))\r\nend\r\n\r\n%% anti-cheating case\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t0 0 0 0 3 3 3 3;\r\n\t\t\t0 0 0 0 2 2 2 2;\r\n\t\t\t0 0 0 0 1 1 1 1;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['rrbrrbbr';'rbrrbbrb';'bbrrbbrb';'rbrrbrbr';'    brbr';'    rrbr';'    bbbr'];\r\n\t\tboard(:,:,2) = [' rbrbbrb';' rrbbbbr';' brbbrbr';' brbbrbr';'    rbrb';'    brbr';'        '];\r\n\t\tboard(:,:,3) = ['  brbbrb';'  rbbbbr';'  rbbrbr';'  bbrrrr';'    bbbr';'        ';'        '];\r\n\t\tboard(:,:,4) = ['   rbbrb';'   rbbbr';'   brrbr';'   rbrbr';'        ';'        ';'        '];\r\n\t\tassert(isequal(rumis_scorer3(board,stencil),'b'))\r\n\tcase 2\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t1 1 1 1 1 1 1 1;\r\n\t\t\t1 2 2 2 2 2 2 1;\r\n\t\t\t1 2 3 3 3 3 2 1;\r\n\t\t\t1 2 3 4 4 3 2 1;\r\n\t\t\t1 2 3 4 4 3 2 1;\r\n\t\t\t1 2 3 3 3 3 2 1;\r\n\t\t\t1 2 2 2 2 2 2 1;\r\n\t\t\t1 1 1 1 1 1 1 1;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['yyyyyyyr';'yyyyyyyr';'yyyyyrrr';'yyyyrrrr';'yyyrrrbb';'yrrrrbbb';'yyrrrgbb';'yrrrgggb'];\r\n\t\tboard(:,:,2) = ['        ';' ryyyyb ';' ryyybb ';' rrygrr ';' ryyggr ';' ggygrr ';' ggyggb ';'        '];\r\n\t\tboard(:,:,3) = ['        ';'        ';'  ggyy  ';'  gbyr  ';'  ggbr  ';'  ggrr  ';'        ';'        '];\r\n\t\tboard(:,:,4) = ['        ';'        ';'        ';'   by   ';'   bb   ';'        ';'        ';'        '];\r\n\t\tassert(isequal(rumis_scorer3(board,stencil),'y'))\r\n\tcase 3\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t0 0 0 0 1 0 0 0 0;\r\n\t\t\t0 0 0 1 2 1 0 0 0;\r\n\t\t\t0 0 1 2 3 2 1 0 0;\r\n\t\t\t0 1 2 3 4 3 2 1 0;\r\n\t\t\t1 2 3 4 5 4 3 2 1;\r\n\t\t\t0 1 2 3 4 3 2 1 0;\r\n\t\t\t0 0 1 2 3 2 1 0 0;\r\n\t\t\t0 0 0 1 2 1 0 0 0;\r\n\t\t\t0 0 0 0 1 0 0 0 0;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['    o    ';'   oob   ';'  oobbp  ';' oobbppp ';'ooooopppo';' oobbbpp ';'  ooooo  ';'   ooo   ';'    o    '];\r\n\t\tboard(:,:,2) = ['         ';'    o    ';'   bbb   ';'  oobbp  ';' oobbppp ';'  oobbp  ';'   bob   ';'    o    ';'         '];\r\n\t\tboard(:,:,3) = ['         ';'         ';'    b    ';'   obb   ';'  oobbp  ';'   oob   ';'    o    ';'         ';'         '];\r\n\t\tboard(:,:,4) = ['         ';'         ';'         ';'    b    ';'   ooo   ';'    o    ';'         ';'         ';'         '];\r\n\t\tboard(:,:,5) = ['         ';'         ';'         ';'         ';'    o    ';'         ';'         ';'         ';'         '];\r\n\t\tassert(isequal(rumis_scorer3(board,stencil),'o'))\r\n\tcase 4\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t2 2 3 3 3 3 2 2;\r\n\t\t\t2 2 4 4 4 4 2 2;\r\n\t\t\t3 4 5 6 6 5 4 3;\r\n\t\t\t3 4 6 7 7 6 4 3;\r\n\t\t\t3 4 6 7 7 6 4 3;\r\n\t\t\t3 4 5 6 6 5 4 3;\r\n\t\t\t2 2 4 4 4 4 2 2;\r\n\t\t\t2 2 3 3 3 3 2 2;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['rryyobpg';'ryyyobpg';'ryyoobbg';'rryoobbg';'ryyybbgg';'yyybbggg';'ybbbbggg';'yyyyyggg'];\r\n\t\tboard(:,:,2) = ['ryyooopp';'rrryyppp';'rryooogg';'rrrroobb';'ryyybggg';'rybbbbbg';'bbyyyggg';'byyggggg'];\r\n\t\tboard(:,:,3) = ['  yyoo  ';'  ryyp  ';'rrroobgg';'rrryobbb';'ryyyoppp';'rrrorybg';'  yybo  ';'  oybg  '];\r\n\t\tboard(:,:,4) = ['        ';'  yybp  ';' rgbopp ';' ggbboo ';' boybog ';' rbggpp ';'  ybbo  ';'        '];\r\n\t\tboard(:,:,5) = ['        ';'        ';'  gboo  ';'  ggbb  ';'  oyyy  ';'  ggpp  ';'        ';'        '];\r\n\t\tboard(:,:,6) = ['        ';'        ';'   oo   ';'  ggbb  ';'  ooyy  ';'   gp   ';'        ';'        '];\r\n\t\tboard(:,:,7) = ['        ';'        ';'        ';'   go   ';'   oy   ';'        ';'        ';'        '];\r\n\t\tassert(isequal(rumis_scorer3(board,stencil),'g'))\r\nend\r\n\r\n%% anti-cheating case\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t0 0 0 0 3 3 3 3;\r\n\t\t\t0 0 0 0 2 2 2 2;\r\n\t\t\t0 0 0 0 1 1 1 1;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['rrbrrbbr';'rbrrbbrb';'bbrrbbrb';'rbrrbrbr';'    brbr';'    rrbr';'    bbbr'];\r\n\t\tboard(:,:,2) = [' rbrbbrb';' rrbbbbr';' brbbrbr';' brbbrbr';'    rbrb';'    brbr';'        '];\r\n\t\tboard(:,:,3) = ['  brbbrb';'  rbbbbr';'  rbbrbr';'  bbrrrr';'    bbbr';'        ';'        '];\r\n\t\tboard(:,:,4) = ['   rbbrb';'   rbbbr';'   brrbr';'   rbrbr';'        ';'        ';'        '];\r\n\t\tassert(isequal(rumis_scorer3(board,stencil),'b'))\r\n\tcase 2\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t1 1 1 1 1 1 1 1;\r\n\t\t\t1 2 2 2 2 2 2 1;\r\n\t\t\t1 2 3 3 3 3 2 1;\r\n\t\t\t1 2 3 4 4 3 2 1;\r\n\t\t\t1 2 3 4 4 3 2 1;\r\n\t\t\t1 2 3 3 3 3 2 1;\r\n\t\t\t1 2 2 2 2 2 2 1;\r\n\t\t\t1 1 1 1 1 1 1 1;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['yyyyyyyr';'yyyyyyyr';'yyyyyrrr';'yyyyrrrr';'yyyrrrbb';'yrrrrbbb';'yyrrrgbb';'yrrrgggb'];\r\n\t\tboard(:,:,2) = ['        ';' ryyyyb ';' ryyybb ';' rrygrr ';' ryyggr ';' ggygrr ';' ggyggb ';'        '];\r\n\t\tboard(:,:,3) = ['        ';'        ';'  ggyy  ';'  gbyr  ';'  ggbr  ';'  ggrr  ';'        ';'        '];\r\n\t\tboard(:,:,4) = ['        ';'        ';'        ';'   by   ';'   bb   ';'        ';'        ';'        '];\r\n\t\tassert(isequal(rumis_scorer3(board,stencil),'y'))\r\n\tcase 3\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t0 0 0 0 1 0 0 0 0;\r\n\t\t\t0 0 0 1 2 1 0 0 0;\r\n\t\t\t0 0 1 2 3 2 1 0 0;\r\n\t\t\t0 1 2 3 4 3 2 1 0;\r\n\t\t\t1 2 3 4 5 4 3 2 1;\r\n\t\t\t0 1 2 3 4 3 2 1 0;\r\n\t\t\t0 0 1 2 3 2 1 0 0;\r\n\t\t\t0 0 0 1 2 1 0 0 0;\r\n\t\t\t0 0 0 0 1 0 0 0 0;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['    o    ';'   oob   ';'  oobbp  ';' oobbppp ';'ooooopppo';' oobbbpp ';'  ooooo  ';'   ooo   ';'    o    '];\r\n\t\tboard(:,:,2) = ['         ';'    o    ';'   bbb   ';'  oobbp  ';' oobbppp ';'  oobbp  ';'   bob   ';'    o    ';'         '];\r\n\t\tboard(:,:,3) = ['         ';'         ';'    b    ';'   obb   ';'  oobbp  ';'   oob   ';'    o    ';'         ';'         '];\r\n\t\tboard(:,:,4) = ['         ';'         ';'         ';'    b    ';'   ooo   ';'    o    ';'         ';'         ';'         '];\r\n\t\tboard(:,:,5) = ['         ';'         ';'         ';'         ';'    o    ';'         ';'         ';'         ';'         '];\r\n\t\tassert(isequal(rumis_scorer3(board,stencil),'o'))\r\n\tcase 4\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t2 2 3 3 3 3 2 2;\r\n\t\t\t2 2 4 4 4 4 2 2;\r\n\t\t\t3 4 5 6 6 5 4 3;\r\n\t\t\t3 4 6 7 7 6 4 3;\r\n\t\t\t3 4 6 7 7 6 4 3;\r\n\t\t\t3 4 5 6 6 5 4 3;\r\n\t\t\t2 2 4 4 4 4 2 2;\r\n\t\t\t2 2 3 3 3 3 2 2;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['rryyobpg';'ryyyobpg';'ryyoobbg';'rryoobbg';'ryyybbgg';'yyybbggg';'ybbbbggg';'yyyyyggg'];\r\n\t\tboard(:,:,2) = ['ryyooopp';'rrryyppp';'rryooogg';'rrrroobb';'ryyybggg';'rybbbbbg';'bbyyyggg';'byyggggg'];\r\n\t\tboard(:,:,3) = ['  yyoo  ';'  ryyp  ';'rrroobgg';'rrryobbb';'ryyyoppp';'rrrorybg';'  yybo  ';'  oybg  '];\r\n\t\tboard(:,:,4) = ['        ';'  yybp  ';' rgbopp ';' ggbboo ';' boybog ';' rbggpp ';'  ybbo  ';'        '];\r\n\t\tboard(:,:,5) = ['        ';'        ';'  gboo  ';'  ggbb  ';'  oyyy  ';'  ggpp  ';'        ';'        '];\r\n\t\tboard(:,:,6) = ['        ';'        ';'   oo   ';'  ggbb  ';'  ooyy  ';'   gp   ';'        ';'        '];\r\n\t\tboard(:,:,7) = ['        ';'        ';'        ';'   go   ';'   oy   ';'        ';'        ';'        '];\r\n\t\tassert(isequal(rumis_scorer3(board,stencil),'g'))\r\nend\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":30,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2015-03-21T02:22:09.000Z","updated_at":"2025-12-08T02:51:40.000Z","published_at":"2015-03-21T02:22:09.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/media/image1.JPEG\"}],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Rumis\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eRumis\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e is a multiplayer 3D block board game where the goal is to have the most squares visible, when viewed from above, after pieces have been played till there are no moves remaining. The picture below shows a completed 4-player round. There are a variety of board stencils and permissible heights possible in this game.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor this problem, you will be provided a completed board of varying shapes with anywhere from two to six players, inclusive. The players' colors will be selected from the following options, though not necessarily in this order: red (r), orange (o), yellow (y), green (g), blue (b), and purple (p). The character-array board will contain various stencils and maximum heights for each square. As an example, the following board represents an L with maximum heights varying from one to four depending upon location (zeros represent non-playable area):\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[1 2 3 4 4 4 4 4\\n1 2 3 4 4 4 4 4\\n1 2 3 4 4 4 4 4\\n1 2 3 4 4 4 4 4\\n0 0 0 0 3 3 3 3\\n0 0 0 0 2 2 2 2\\n0 0 0 0 1 1 1 1]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor this problem, the board will be completely filled in, and, in line with the game's rules, all players' colors will be represented on the first level. Write a function to count the squares visible when viewed from above to determine who won each round. See the test suite for additional examples (including test case 2, which represents the completed board shown below).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"},{\"partUri\":\"/media/image1.JPEG\",\"contentType\":\"image/JPEG\",\"content\":\"data:image/JPEG;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAGuAosDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKCQOtABSEhRknArO1HW7PTYmeaVRgdzXlHiv4uRx74dPO9uRuzwPxpNpAepal4isNNUmaZBj1NVNN8Y6VqbYhuY29wwNfKWs+Lr/Vp2aedpOfu5+UVQstev9OnE0UrIc5ytGvYVz7cSRJFBVgQadXzx4Q+MMsTJBqByP74r2nRfFWn6xArwzodw7Gi4zeopFYMMg5FLTAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoqvc3sFqhaVwoHqa888VfFLT9JV4oZA8vZVOTQB397qdtYxl5pVXHqa8x8WfFq0sQ8Nm3myjjCnpXkXiP4i3+syOpnZEJ4RD/WuPklnumyScUld7CbOg8QeOdS1mZvOnOw/wKeK5zzJ7p8Mx+lbui+ErvVXTy0wjdWau6s/C+kaTCBNiS4HUnpQ2ouy1Y1BvVnDaP4QvNSIcp5Uf95u9aGp+DpbeBngPm7RyMV2kepxROF24jHpVhb2CRvlX5TXPVqYijK842Rd6KW54pJbz202NpRhWvo3im+0acNFK64PY8V6FqPh621UNsjAb+8OtcVq/hObT0ZwvmgddvatYVadVdmS4NarVHq/hH4wRybIL9tp/vZ4r1zTNdstTiV4ZlOfQ18VCKWBt8eVx2roNA8b6los6lJ2CDqpPFW01uTc+yQQRkUV5F4R+LlnfhILxxHL0+Y9a9QstTtr6MPDKrA+hpjLtFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUySVIlLOwA965TxF480zRIWLzruHbNAHUzXEUCFpHAA9a4fxP8SdM0SJh5ymTsoOSa8i8VfFe71AvHay+VH655NeYXOoXF9OztIzs3VmOTSTvsK53Pir4p6nq8jxwOYYT6H5j/hXCPPc3rkncSeSSasadol3qU6pBGzlu+OK7zSvA62IV7+RW4yYwaUpRh8W41FyOO0vw9dX8qpFCSSeWPSv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PIvIxl7aQYZT/Ue9eQ6roV5pVwySxNhT1xX1rr3g63vyLi2zDcpykicEGuC1nTI52+yeILdY3+6l6owp/wB4dvr0+lTrH0Jt2Pnu0u5IJSwYqCO1E10WBAOSe9dj4q8C3GmTNJAN8R5Vl5BFUfD/AIMuNQPnXIMcCnknitFNWA5/TdJu9TuFjhjJBPJ9K9K0fw1Y6GqPcr510w+WMDLE+wrb0bSvmFnodsHPR7gr8o+nrXpfhrwHb2BFzd5muW5Z35NS25DscroXgu+1t1m1IeVa5ytuvTHv616lpmjWumQLHDEq4HYVfjiSJAqKABT6aVhhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVR1DSrbUYWjmjVgR3FXqKAPMtR8J32msyWYFxZtnNvJyF/3T2rO0/wRqGpThLwCCzB/1Mf8X1NeukA9QDQFUdABS5Ve4GXpOhWelQLHDEq4HYVq0UUwCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//Z\"}]}"},{"id":3047,"title":"Scrabble Scores - 2","description":"An \u003chttps://www.mathworks.com/matlabcentral/cody/problems/56-scrabble-scores introductory Cody problem\u003e asks the user to score a Scrabble word. This problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine.\r\n\r\nScrabble is a word board game wherein each letter tile is scored roughly according to its frequency (or lack thereof) in words. More common letters, such as vowels, are worth fewer points while difficult letters, such as Q, Z, J, and X are worth more points. The point distribution is provided \u003chttp://en.wikipedia.org/wiki/Scrabble_letter_distributions#English here\u003e. (Use the English points distribution.)\r\n\r\nFor this problem, you will be provided with a cell array of words (e.g., all the words from one player in a game). Write a function to calculate the total score for the set of words.\r\n\r\nRelated problems:\r\n\r\nPrevious problem: 1 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/56-scrabble-scores Single-word scoring\u003e. Next problem: 3 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3048-scrabble-scores-3 Single-word multiplier scoring\u003e.\r\n","description_html":"\u003cp\u003eAn \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/56-scrabble-scores\"\u003eintroductory Cody problem\u003c/a\u003e asks the user to score a Scrabble word. This problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine.\u003c/p\u003e\u003cp\u003eScrabble is a word board game wherein each letter tile is scored roughly according to its frequency (or lack thereof) in words. More common letters, such as vowels, are worth fewer points while difficult letters, such as Q, Z, J, and X are worth more points. The point distribution is provided \u003ca href = \"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\"\u003ehere\u003c/a\u003e. (Use the English points distribution.)\u003c/p\u003e\u003cp\u003eFor this problem, you will be provided with a cell array of words (e.g., all the words from one player in a game). Write a function to calculate the total score for the set of words.\u003c/p\u003e\u003cp\u003eRelated problems:\u003c/p\u003e\u003cp\u003ePrevious problem: 1 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/56-scrabble-scores\"\u003eSingle-word scoring\u003c/a\u003e. Next problem: 3 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3048-scrabble-scores-3\"\u003eSingle-word multiplier scoring\u003c/a\u003e.\u003c/p\u003e","function_template":"function [score] = scrabble_scores_2(words)\r\n\r\nscore = 0;\r\n\r\nend\r\n","test_suite":"%%\r\nwords = {'hello','there','fellow','matlab','users'};\r\nscore = 43;\r\nassert(isequal(scrabble_scores_2(words),score))\r\n\r\n%%\r\nwords = {'what','do','you','think','of','this','problem'};\r\nscore = 56;\r\nassert(isequal(scrabble_scores_2(words),score))\r\n\r\n%%\r\nwords = {'if','you','like','it','please','give','it','a','like'};\r\nscore = 48;\r\nassert(isequal(scrabble_scores_2(words),score))\r\n\r\n%%\r\nwords = {'zither','quandry','flummox','wealthy','amalgam'};\r\nscore = 87;\r\nassert(isequal(scrabble_scores_2(words),score))\r\n\r\n%%\r\nwords = {'one','two','three','four','five'};\r\nscore = 34;\r\nassert(isequal(scrabble_scores_2(words),score))\r\n\r\n%%\r\nwords = {'heterogeneous','homogenously','concatenate','thusly','hi'};\r\nscore = [17 21 15 12 5];\r\nind = randi(5);\r\nassert(isequal(scrabble_scores_2(words(ind)),score(ind)))\r\n\r\n%%\r\nwords = {'perspicacious','yes','zero','quizzical','no'};\r\nscore = [21 6 13 38 2];\r\nind = randi(5);\r\nassert(isequal(scrabble_scores_2(words(ind)),score(ind)))\r\n\r\n%% pangram test (one string) to help ensure letters scores are correctly assigned\r\nwords = {'the quick brown fox jumps over a lazy dog'};\r\nscore = 94;\r\nassert(isequal(scrabble_scores_2(words),score))\r\n\r\n%% pangram test (multiple words) to help ensure letters scores are correctly assigned\r\nwords = {'the','quick','brown','fox','jumps','over','a','lazy','dog'};\r\nscore = 94;\r\nassert(isequal(scrabble_scores_2(words),score))","published":true,"deleted":false,"likes_count":2,"comments_count":7,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":66,"test_suite_updated_at":"2015-02-28T02:22:30.000Z","rescore_all_solutions":false,"group_id":40,"created_at":"2015-02-26T04:07:25.000Z","updated_at":"2026-04-02T20:07:44.000Z","published_at":"2015-02-26T04:07:24.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAn\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/56-scrabble-scores\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eintroductory Cody problem\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e asks the user to score a Scrabble word. This problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eScrabble is a word board game wherein each letter tile is scored roughly according to its frequency (or lack thereof) in words. More common letters, such as vowels, are worth fewer points while difficult letters, such as Q, Z, J, and X are worth more points. The point distribution is provided\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehere\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. (Use the English points distribution.)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor this problem, you will be provided with a cell array of words (e.g., all the words from one player in a game). Write a function to calculate the total score for the set of words.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRelated problems:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePrevious problem: 1 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/56-scrabble-scores\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eSingle-word scoring\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Next problem: 3 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3048-scrabble-scores-3\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eSingle-word multiplier scoring\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":3051,"title":"Scrabble Scores - 6","description":"This problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided \u003chttp://en.wikipedia.org/wiki/Scrabble_letter_distributions#English here\u003e. (Use the English points distribution.)\r\n\r\nFor this problem, you will be provided with a character matrix representing a completed game of Scrabble. Write a function to calculate and return the total score for the entire board. Don't worry about double counting of letters or words due to tile placement—that will come in a subsequent problem. As an example, suppose you are given the following board (this is test case 1):\r\n\r\n   cat  \r\n i  p   \r\n t  poet\r\n c  l   \r\nthere   \r\n\r\nthe word cat scores 3+1+1 = 5, poet scores 3+1+1+1 = 6, there scores 1+4+1+1+1 = 8. The remaining letters (itc, p, and l) score 1+1+3, 3, and 1 which total 9 all together (since we're not double counting letters yet). The sum total is 5+6+8+9 = 28.\r\n\r\n\r\nRelated problems:\r\n\r\nPrevious problem: 5 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3050-scrabble-scores-5 Multiplayer word-set scoring\u003e. Next problem: 7 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3052-scrabble-scores-7 Multiplayer board scoring\u003e.","description_html":"\u003cp\u003eThis problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided \u003ca href = \"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\"\u003ehere\u003c/a\u003e. (Use the English points distribution.)\u003c/p\u003e\u003cp\u003eFor this problem, you will be provided with a character matrix representing a completed game of Scrabble. Write a function to calculate and return the total score for the entire board. Don't worry about double counting of letters or words due to tile placement—that will come in a subsequent problem. As an example, suppose you are given the following board (this is test case 1):\u003c/p\u003e\u003cpre\u003e   cat  \r\n i  p   \r\n t  poet\r\n c  l   \r\nthere   \u003c/pre\u003e\u003cp\u003ethe word cat scores 3+1+1 = 5, poet scores 3+1+1+1 = 6, there scores 1+4+1+1+1 = 8. The remaining letters (itc, p, and l) score 1+1+3, 3, and 1 which total 9 all together (since we're not double counting letters yet). The sum total is 5+6+8+9 = 28.\u003c/p\u003e\u003cp\u003eRelated problems:\u003c/p\u003e\u003cp\u003ePrevious problem: 5 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3050-scrabble-scores-5\"\u003eMultiplayer word-set scoring\u003c/a\u003e. Next problem: 7 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3052-scrabble-scores-7\"\u003eMultiplayer board scoring\u003c/a\u003e.\u003c/p\u003e","function_template":"function [score] = scrabble_scores_6(board)\r\n\r\nscore = 0;\r\n\r\nend\r\n","test_suite":"%%\r\nboard = [\r\n\r\n'   cat  ';\r\n' i  p   ';\r\n' t  poet';\r\n' c  l   ';\r\n'there   ';\r\n];\r\nscore = 28;\r\nassert(isequal(scrabble_scores_6(board),score))\r\n\r\n%%\r\nboard = [\r\n\r\n'stratagems';\r\n' h      a ';\r\n'hello   t ';\r\n' r      l ';\r\n'fellow  a ';\r\n'    a   b ';\r\n' users    ';\r\n];\r\nscore = 51;\r\nassert(isequal(scrabble_scores_6(board),score))\r\n\r\n%%\r\nboard = [\r\n\r\n' what   y ';\r\n'    h  do ';\r\n'  this  um';\r\n' l  n    a';\r\n' of keen t';\r\n' o   e   l';\r\n' problem a';\r\n'      noob';\r\n];\r\nscore = 72;\r\nassert(isequal(scrabble_scores_6(board),score))\r\n\r\n%%\r\nboard = [\r\n\r\n' if  you  ';\r\n'  i  u    ';\r\n'  like    ';\r\n' met  g   ';\r\n' e    it l';\r\n' e    v  i';\r\n' please  k';\r\n'      node';\r\n];\r\nscore = 56;\r\nassert(isequal(scrabble_scores_6(board),score))\r\n\r\n%%\r\nboard = [\r\n\r\n'c    flummoxes zither';\r\n'al    o      e e    e';\r\n'ba  hunting  eerie  b';\r\n'ab  a g   e    o    e';\r\n'lo  n     m g       l';\r\n' r  g      responses ';\r\n'random      n    u u ';\r\n' t  v   c  below p r ';\r\n'convention  r    e f ';\r\n' r  r   n   a   areas';\r\n' y      v c t    i c ';\r\n'   o  philosophy o em';\r\n'travel  n n r    r  e';\r\n'   e    c t         e';\r\n' word   i a    writer';\r\n'   t    n c    o    l';\r\n'p fortnight   rock  y';\r\n'i  n            h    ';\r\n'novelty m concatenate';\r\n'c e  o  a    a  s   g';\r\n'heterogeneousness   g';\r\n];\r\nscore = 364;\r\nassert(isequal(scrabble_scores_6(board),score))\r\n\r\n%% anti-cheating test case\r\nind = randi(4);\r\nswitch ind\r\ncase 1\r\nboard = [\r\n'   cat  ';\r\n' i  p   ';\r\n' t  poet';\r\n' c  l   ';\r\n'there   '];\r\nscore = 28;\r\ncase 2\r\nboard = [\r\n'stratagems';\r\n' h      a ';\r\n'hello   t ';\r\n' r      l ';\r\n'fellow  a ';\r\n'    a   b ';\r\n' users    '];\r\nscore = 51;\r\ncase 3\r\nboard = [\r\n' what   y ';\r\n'  e h  do ';\r\n'  this  um';\r\n' of n    a';\r\n'    keen t';\r\n'     e   l';\r\n' problem a';\r\n'      noob'];\r\nscore = 71;\r\ncase 4\r\nboard = [\r\n' if  you  ';\r\n'  i  u    ';\r\n'  like    ';\r\n' met  g   ';\r\n'      it l';\r\n'      v  i';\r\n' please  k';\r\n'      node'];\r\nscore = 54;\r\nend\r\nassert(isequal(scrabble_scores_6(board),score))\r\n\r\n%% anti-cheating test case (again)\r\nind = randi(4);\r\nswitch ind\r\ncase 1\r\nboard = [\r\n'   cat  ';\r\n' i  p   ';\r\n' t  poet';\r\n' c  l   ';\r\n'there   '];\r\nscore = 28;\r\ncase 2\r\nboard = [\r\n'stratagems';\r\n' h      a ';\r\n'hello   t ';\r\n' r      l ';\r\n'fellow  a ';\r\n'    a   b ';\r\n' users    '];\r\nscore = 51;\r\ncase 3\r\nboard = [\r\n' what   y ';\r\n'  e h  do ';\r\n'  this  um';\r\n' of n    a';\r\n'    keen t';\r\n'     e   l';\r\n' problem a';\r\n'      noob'];\r\nscore = 71;\r\ncase 4\r\nboard = [\r\n' if  you  ';\r\n'  i  u    ';\r\n'  like    ';\r\n' met  g   ';\r\n'      it l';\r\n'      v  i';\r\n' please  k';\r\n'      node'];\r\nscore = 54;\r\nend\r\nassert(isequal(scrabble_scores_6(board),score))\r\n\r\n%% anti-cheating test case (and a third time, to lower the chance of getting lucky)\r\nind = randi(4);\r\nswitch ind\r\ncase 1\r\nboard = [\r\n'   cat  ';\r\n' i  p   ';\r\n' t  poet';\r\n' c  l   ';\r\n'there   '];\r\nscore = 28;\r\ncase 2\r\nboard = [\r\n'stratagems';\r\n' h      a ';\r\n'hello   t ';\r\n' r      l ';\r\n'fellow  a ';\r\n'    a   b ';\r\n' users    '];\r\nscore = 51;\r\ncase 3\r\nboard = [\r\n' what   y ';\r\n'  e h  do ';\r\n'  this  um';\r\n' of n    a';\r\n'    keen t';\r\n'     e   l';\r\n' problem a';\r\n'      noob'];\r\nscore = 71;\r\ncase 4\r\nboard = [\r\n' if  you  ';\r\n'  i  u    ';\r\n'  like    ';\r\n' met  g   ';\r\n'      it l';\r\n'      v  i';\r\n' please  k';\r\n'      node'];\r\nscore = 54;\r\nend\r\nassert(isequal(scrabble_scores_6(board),score))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":34,"test_suite_updated_at":"2015-02-28T06:29:28.000Z","rescore_all_solutions":false,"group_id":40,"created_at":"2015-02-28T04:41:43.000Z","updated_at":"2026-04-02T20:14:54.000Z","published_at":"2015-02-28T04:41:43.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehere\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. (Use the English points distribution.)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor this problem, you will be provided with a character matrix representing a completed game of Scrabble. Write a function to calculate and return the total score for the entire board. Don't worry about double counting of letters or words due to tile placement—that will come in a subsequent problem. As an example, suppose you are given the following board (this is test case 1):\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[   cat  \\n i  p   \\n t  poet\\n c  l   \\nthere]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ethe word cat scores 3+1+1 = 5, poet scores 3+1+1+1 = 6, there scores 1+4+1+1+1 = 8. The remaining letters (itc, p, and l) score 1+1+3, 3, and 1 which total 9 all together (since we're not double counting letters yet). The sum total is 5+6+8+9 = 28.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRelated problems:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePrevious problem: 5 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3050-scrabble-scores-5\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMultiplayer word-set scoring\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Next problem: 7 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3052-scrabble-scores-7\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMultiplayer board scoring\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":3082,"title":"Scrabble Scores - 10","description":"This problem is very similar to the previous problem. Here, you are provided a letter of an existing word on the board from which you will play a word. The letter can reside anywhere (first to last) within the word you are playing. Write a function to find the highest scoring word, provided the letter you are building off of and the letters on your tray.\r\n\r\nRather than having to test all the possible permutations against a dictionary, you will be provided a cell array of strings containing all possible words based on the starting letter and the letters on your tray. In addition to providing the highest score, also provide the word(s) that achieve that score in a cell array. See the test suite for examples. Due to high-scoring tiles, the highest score may not be achieved by the longest word(s).\r\n\r\nRelated problems:\r\n\r\nPrevious problem: 9 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3062-scrabble-scores-9 Word score optimization (fixed first letter)\u003e. Next problem: 11 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3084-scrabble-scores-11 Word score optimization (known letter) \u0026 multipliers\u003e.","description_html":"\u003cp\u003eThis problem is very similar to the previous problem. Here, you are provided a letter of an existing word on the board from which you will play a word. The letter can reside anywhere (first to last) within the word you are playing. Write a function to find the highest scoring word, provided the letter you are building off of and the letters on your tray.\u003c/p\u003e\u003cp\u003eRather than having to test all the possible permutations against a dictionary, you will be provided a cell array of strings containing all possible words based on the starting letter and the letters on your tray. In addition to providing the highest score, also provide the word(s) that achieve that score in a cell array. See the test suite for examples. Due to high-scoring tiles, the highest score may not be achieved by the longest word(s).\u003c/p\u003e\u003cp\u003eRelated problems:\u003c/p\u003e\u003cp\u003ePrevious problem: 9 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3062-scrabble-scores-9\"\u003eWord score optimization (fixed first letter)\u003c/a\u003e. Next problem: 11 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3084-scrabble-scores-11\"\u003eWord score optimization (known letter) \u0026 multipliers\u003c/a\u003e.\u003c/p\u003e","function_template":"function [score,max_word] = scrabble_scores_10(words,existing_letter)\r\n\r\nscore = 0;\r\nmax_word = {''};\r\n\r\nend\r\n","test_suite":"%\r\nexisting_letter = 's'; %the word must contain this letter, which is in an already played word\r\ntray_letters = 'aethilm'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including the first letter with your tray letters\r\nwords = {'ae','ah','ai','al','am','as','at','eh','el','em','es','et','ha','he','hi','hm','is','it','la','li','ma','me','mi','sh','si','ta','te','ti','ahi','ahs','ail','aim','ais','ait','ale','als','alt','ami','ash','ate','eat','elm','els','ems','est','eta','eth','hae','ham','has','hat','hem','hes','het','hie','him','his','hit','ism','its','lah','lam','las','lat','lea','lei','let','lie','lis','lit','mae','mas','mat','meh','mel','met','mil','mis','sae','sal','sat','sea','sei','sel','set','sha','she','sim','sit','tae','tam','tas','tea','tel','tes','the','tie','til','tis','ahem','ahis','ails','aims','aits','ales','alit','alme','alms','alts','amie','amis','ates','east','eath','eats','elhi','elms','emit','etas','eths','haem','haes','haet','hail','hale','halm','halt','hame','hams','hast','hate','hats','heal','heat','heil','helm','hems','hest','hets','hies','hila','hilt','hims','hist','hits','ilea','isle','item','lahs','lame','lams','lase','lash','last','late','lath','lati','lats','leas','leis','lest','lets','lias','lies','lima','lime','list','lite','lits','maes','mail','male','malt','mash','mast','mate','math','mats','meal','meat','mels','melt','mesa','mesh','meta','meth','mile','mils','milt','mise','mist','mite','sail','sale','salt','same','sate','sati','seal','seam','seat','semi','seta','sham','shea','shim','sial','silt','sima','site','sith','slam','slat','slim','slit','smit','stem','tael','tail','tale','tali','tame','tams','tase','teal','team','teas','tela','tels','thae','them','this','ties','tile','tils','time','aisle','alist','almeh','almes','amies','email','emits','haems','haets','hails','hales','halms','halts','hames','haste','hates','heals','heats','heils','heist','helms','hemal','hilts','islet','istle','items','laith','lames','lathe','lathi','laths','leash','least','limas','limes','litas','lites','lithe','maile','mails','maist','males','malts','mates','maths','meals','meats','melts','metal','meths','metis','miles','milts','mites','saith','salmi','satem','selah','setal','shale','shalt','shame','sheal','shiel','slate','slime','smalt','smelt','smile','smite','smith','stale','steal','steam','stela','stile','stime','taels','tails','tales','tames','tamis','teals','teams','telia','tesla','thali','tiles','times','almehs','emails','halest','halite','hamlet','haslet','hiemal','lamest','lathes','lathis','latish','mailes','mashie','mesial','metals','misate','miseat','saithe','saltie','samiel','samite','samlet','sheila','shelta','smalti','stelai','tahsil','thalis','theism','atheism','halites','hamlets','heliast'};\r\nmax_score_corr = 12;\r\nmax_word_corr = {'atheism','hamlets'};\r\n[max_score,max_word] = scrabble_scores_10(words,existing_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n%%\r\nexisting_letter = 't'; %the word must contain this letter, which is in an already played word\r\ntray_letters = 'eodnirl'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including the first letter with your tray letters\r\nwords = {'de','do','ed','el','en','er','et','id','in','it','li','lo','ne','no','od','oe','oi','on','or','re','te','ti','to','del','den','die','din','dit','doe','dol','don','dor','dot','eld','end','eon','ern','ion','ire','led','lei','let','lid','lie','lin','lit','lot','net','nil','nit','nod','nor','not','ode','oil','old','ole','one','ore','ort','red','rei','ret','rid','rin','rod','roe','rot','ted','tel','ten','tie','til','tin','tod','toe','ton','tor','deil','deli','delt','deni','dent','diel','diet','dine','dino','dint','diol','dire','dirl','dirt','dite','doer','doit','dole','dolt','done','dore','dote','edit','enol','idle','idol','inro','into','ired','iron','lend','leno','lent','lido','lied','lien','lier','line','lino','lint','lion','lire','lite','lode','loid','loin','lone','lord','lore','lorn','loti','nerd','nide','nite','node','nodi','noel','noil','noir','nori','note','olde','orle','redo','rein','rend','reno','rent','ride','riel','rile','rind','riot','rite','rode','roil','role','rote','roti','rotl','tein','tend','tern','tide','tied','tier','tile','tine','tire','tirl','tiro','toed','toil','told','tole','tone','tore','tori','torn','trio','trod','diner','doter','droit','drone','elint','eloin','enrol','ident','idler','indol','inert','inlet','inter','intro','irone','lento','lined','liner','lirot','liter','litre','loden','loner','nerol','niter','nitre','nitro','noted','noter','oiled','oiler','olden','older','oldie','olein','oriel','redon','relit','reoil','riled','ronde','teind','teloi','tenor','tilde','tiled','tiler','tined','tired','toile','toled','tondi','toned','toner','trend','tried','trine','triol','trode','trone','dentil','dinero','dotier','editor','entoil','indole','ironed','linted','linter','loiter','neroli','norite','orient','retold','rident','rioted','rodent','roiled','rondel','tinder','tirled','toiled','toiler','tonier','trined','triode','lentoid','retinol','tendril','trindle'};\r\nmax_score_corr = 8;\r\nmax_word_corr = {'lentoid','tendril','trindle'};\r\n[max_score,max_word] = scrabble_scores_10(words,existing_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n%%\r\nexisting_letter = 'n'; %the word must contain this letter, which is in an already played word\r\ntray_letters = 'dmvxeao'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including the first letter with your tray letters\r\nwords = {'ad','ae','am','an','ax','da','de','do','ed','em','en','ex','ma','me','mo','na','ne','no','od','oe','om','on','ox','ado','and','ane','ave','avo','axe','dam','dan','den','dev','dex','doe','dom','don','emo','end','eon','mad','mae','man','max','med','men','moa','mod','mon','nae','nam','nav','nod','nom','oda','ode','oma','one','ova','van','vex','voe','vox','aeon','amen','axed','axon','dame','damn','dean','demo','deva','dome','dona','done','dove','exam','exon','made','mane','mano','mead','mean','mend','meno','moan','mode','move','moxa','name','nave','nema','node','noma','nome','nova','odea','omen','oven','oxen','vane','vena','vend','admen','amend','anode','axmen','axone','daven','demon','devon','doven','maned','maven','maxed','menad','monad','monde','moved','named','nomad','novae','vaned','venom','daemon','moaned'};\r\nmax_score_corr = 14;\r\nmax_word_corr = {'axmen'};\r\n[max_score,max_word] = scrabble_scores_10(words,existing_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n%%\r\nexisting_letter = 'z'; %the word must contain this letter, which is in an already played word\r\ntray_letters = 'aehcmdi'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including the first letter with your tray letters\r\nwords = {'ad','ae','ah','ai','am','da','de','ed','eh','em','ha','he','hi','hm','id','ma','me','mi','za','ace','adz','ahi','aid','aim','ami','cad','cam','chi','dah','dam','die','dim','edh','had','hae','ham','hem','hic','hid','hie','him','ice','ich','mac','mad','mae','med','meh','mic','mid','zed','aced','ache','acid','acme','adze','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','cazh','cedi','chad','chai','cham','chem','chez','chia','chid','dace','dame','daze','dice','dime','each','emic','hade','haed','haem','hame','haze','head','hide','hied','iced','idea','idem','mace','mach','made','maid','maze','mead','mech','mica','mice','zeda','ached','aimed','amice','amide','azide','chide','chime','demic','hazed','hemic','maced','mache','maize','mazed','media','medic','miche','chimed','haemic','miched','zaideh'};\r\nmax_score_corr = 19;\r\nmax_word_corr = {'zaideh'};\r\n[max_score,max_word] = scrabble_scores_10(words,existing_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n%% anti-cheating test case\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\texisting_letter = 's';\r\n\t\twords = {'ae','ah','ai','al','am','as','at','eh','el','em','es','et','ha','he','hi','hm','is','it','la','li','ma','me','mi','sh','si','ta','te','ti','ahi','ahs','ail','aim','ais','ait','ale','als','alt','ami','ash','ate','eat','elm','els','ems','est','eta','eth','hae','ham','has','hat','hem','hes','het','hie','him','his','hit','ism','its','lah','lam','las','lat','lea','lei','let','lie','lis','lit','mae','mas','mat','meh','mel','met','mil','mis','sae','sal','sat','sea','sei','sel','set','sha','she','sim','sit','tae','tam','tas','tea','tel','tes','the','tie','til','tis','ahem','ahis','ails','aims','aits','ales','alit','alme','alms','alts','amie','amis','ates','east','eath','eats','elhi','elms','emit','etas','eths','haem','haes','haet','hail','hale','halm','halt','hame','hams','hast','hate','hats','heal','heat','heil','helm','hems','hest','hets','hies','hila','hilt','hims','hist','hits','ilea','isle','item','lahs','lame','lams','lase','lash','last','late','lath','lati','lats','leas','leis','lest','lets','lias','lies','lima','lime','list','lite','lits','maes','mail','male','malt','mash','mast','mate','math','mats','meal','meat','mels','melt','mesa','mesh','meta','meth','mile','mils','milt','mise','mist','mite','sail','sale','salt','same','sate','sati','seal','seam','seat','semi','seta','sham','shea','shim','sial','silt','sima','site','sith','slam','slat','slim','slit','smit','stem','tael','tail','tale','tali','tame','tams','tase','teal','team','teas','tela','tels','thae','them','this','ties','tile','tils','time','aisle','alist','almeh','almes','amies','email','emits','haems','haets','hails','hales','halms','halts','hames','haste','hates','heals','heats','heils','heist','helms','hemal','hilts','islet','istle','items','laith','lames','lathe','lathi','laths','leash','least','limas','limes','litas','lites','lithe','maile','mails','maist','males','malts','mates','maths','meals','meats','melts','metal','meths','metis','miles','milts','mites','saith','salmi','satem','selah','setal','shale','shalt','shame','sheal','shiel','slate','slime','smalt','smelt','smile','smite','smith','stale','steal','steam','stela','stile','stime','taels','tails','tales','tames','tamis','teals','teams','telia','tesla','thali','tiles','times','almehs','emails','halest','halite','hamlet','haslet','hiemal','lamest','lathes','lathis','latish','mailes','mashie','mesial','metals','misate','miseat','saithe','saltie','samiel','samite','samlet','sheila','shelta','smalti','stelai','tahsil','thalis','theism','atheism','halites','hamlets','heliast'};\r\n\t\tmax_score_corr = 12;\r\n\t\tmax_word_corr = {'atheism','hamlets'};\r\n\tcase 2\r\n\t\texisting_letter = 't';\r\n\t\twords = {'de','do','ed','el','en','er','et','id','in','it','li','lo','ne','no','od','oe','oi','on','or','re','te','ti','to','del','den','die','din','dit','doe','dol','don','dor','dot','eld','end','eon','ern','ion','ire','led','lei','let','lid','lie','lin','lit','lot','net','nil','nit','nod','nor','not','ode','oil','old','ole','one','ore','ort','red','rei','ret','rid','rin','rod','roe','rot','ted','tel','ten','tie','til','tin','tod','toe','ton','tor','deil','deli','delt','deni','dent','diel','diet','dine','dino','dint','diol','dire','dirl','dirt','dite','doer','doit','dole','dolt','done','dore','dote','edit','enol','idle','idol','inro','into','ired','iron','lend','leno','lent','lido','lied','lien','lier','line','lino','lint','lion','lire','lite','lode','loid','loin','lone','lord','lore','lorn','loti','nerd','nide','nite','node','nodi','noel','noil','noir','nori','note','olde','orle','redo','rein','rend','reno','rent','ride','riel','rile','rind','riot','rite','rode','roil','role','rote','roti','rotl','tein','tend','tern','tide','tied','tier','tile','tine','tire','tirl','tiro','toed','toil','told','tole','tone','tore','tori','torn','trio','trod','diner','doter','droit','drone','elint','eloin','enrol','ident','idler','indol','inert','inlet','inter','intro','irone','lento','lined','liner','lirot','liter','litre','loden','loner','nerol','niter','nitre','nitro','noted','noter','oiled','oiler','olden','older','oldie','olein','oriel','redon','relit','reoil','riled','ronde','teind','teloi','tenor','tilde','tiled','tiler','tined','tired','toile','toled','tondi','toned','toner','trend','tried','trine','triol','trode','trone','dentil','dinero','dotier','editor','entoil','indole','ironed','linted','linter','loiter','neroli','norite','orient','retold','rident','rioted','rodent','roiled','rondel','tinder','tirled','toiled','toiler','tonier','trined','triode','lentoid','retinol','tendril','trindle'};\r\n\t\tmax_score_corr = 8;\r\n\t\tmax_word_corr = {'lentoid','tendril','trindle'};\r\n\tcase 3\r\n\t\texisting_letter = 'n';\r\n\t\twords = {'ad','ae','am','an','ax','da','de','do','ed','em','en','ex','ma','me','mo','na','ne','no','od','oe','om','on','ox','ado','and','ane','ave','avo','axe','dam','dan','den','dev','dex','doe','dom','don','emo','end','eon','mad','mae','man','max','med','men','moa','mod','mon','nae','nam','nav','nod','nom','oda','ode','oma','one','ova','van','vex','voe','vox','aeon','amen','axed','axon','dame','damn','dean','demo','deva','dome','dona','done','dove','exam','exon','made','mane','mano','mead','mean','mend','meno','moan','mode','move','moxa','name','nave','nema','node','noma','nome','nova','odea','omen','oven','oxen','vane','vena','vend','admen','amend','anode','axmen','axone','daven','demon','devon','doven','maned','maven','maxed','menad','monad','monde','moved','named','nomad','novae','vaned','venom','daemon','moaned'};\r\n\t\tmax_score_corr = 14;\r\n\t\tmax_word_corr = {'axmen'};\r\n\tcase 4\r\n\t\texisting_letter = 'z';\r\n\t\twords = {'ad','ae','ah','ai','am','da','de','ed','eh','em','ha','he','hi','hm','id','ma','me','mi','za','ace','adz','ahi','aid','aim','ami','cad','cam','chi','dah','dam','die','dim','edh','had','hae','ham','hem','hic','hid','hie','him','ice','ich','mac','mad','mae','med','meh','mic','mid','zed','aced','ache','acid','acme','adze','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','cazh','cedi','chad','chai','cham','chem','chez','chia','chid','dace','dame','daze','dice','dime','each','emic','hade','haed','haem','hame','haze','head','hide','hied','iced','idea','idem','mace','mach','made','maid','maze','mead','mech','mica','mice','zeda','ached','aimed','amice','amide','azide','chide','chime','demic','hazed','hemic','maced','mache','maize','mazed','media','medic','miche','chimed','haemic','miched','zaideh'};\r\n\t\tmax_score_corr = 19;\r\n\t\tmax_word_corr = {'zaideh'};\r\nend\r\n[max_score,max_word] = scrabble_scores_10(words,existing_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n%% anti-cheating test case\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\texisting_letter = 's';\r\n\t\twords = {'ae','ah','ai','al','am','as','at','eh','el','em','es','et','ha','he','hi','hm','is','it','la','li','ma','me','mi','sh','si','ta','te','ti','ahi','ahs','ail','aim','ais','ait','ale','als','alt','ami','ash','ate','eat','elm','els','ems','est','eta','eth','hae','ham','has','hat','hem','hes','het','hie','him','his','hit','ism','its','lah','lam','las','lat','lea','lei','let','lie','lis','lit','mae','mas','mat','meh','mel','met','mil','mis','sae','sal','sat','sea','sei','sel','set','sha','she','sim','sit','tae','tam','tas','tea','tel','tes','the','tie','til','tis','ahem','ahis','ails','aims','aits','ales','alit','alme','alms','alts','amie','amis','ates','east','eath','eats','elhi','elms','emit','etas','eths','haem','haes','haet','hail','hale','halm','halt','hame','hams','hast','hate','hats','heal','heat','heil','helm','hems','hest','hets','hies','hila','hilt','hims','hist','hits','ilea','isle','item','lahs','lame','lams','lase','lash','last','late','lath','lati','lats','leas','leis','lest','lets','lias','lies','lima','lime','list','lite','lits','maes','mail','male','malt','mash','mast','mate','math','mats','meal','meat','mels','melt','mesa','mesh','meta','meth','mile','mils','milt','mise','mist','mite','sail','sale','salt','same','sate','sati','seal','seam','seat','semi','seta','sham','shea','shim','sial','silt','sima','site','sith','slam','slat','slim','slit','smit','stem','tael','tail','tale','tali','tame','tams','tase','teal','team','teas','tela','tels','thae','them','this','ties','tile','tils','time','aisle','alist','almeh','almes','amies','email','emits','haems','haets','hails','hales','halms','halts','hames','haste','hates','heals','heats','heils','heist','helms','hemal','hilts','islet','istle','items','laith','lames','lathe','lathi','laths','leash','least','limas','limes','litas','lites','lithe','maile','mails','maist','males','malts','mates','maths','meals','meats','melts','metal','meths','metis','miles','milts','mites','saith','salmi','satem','selah','setal','shale','shalt','shame','sheal','shiel','slate','slime','smalt','smelt','smile','smite','smith','stale','steal','steam','stela','stile','stime','taels','tails','tales','tames','tamis','teals','teams','telia','tesla','thali','tiles','times','almehs','emails','halest','halite','hamlet','haslet','hiemal','lamest','lathes','lathis','latish','mailes','mashie','mesial','metals','misate','miseat','saithe','saltie','samiel','samite','samlet','sheila','shelta','smalti','stelai','tahsil','thalis','theism','atheism','halites','hamlets','heliast'};\r\n\t\tmax_score_corr = 12;\r\n\t\tmax_word_corr = {'atheism','hamlets'};\r\n\tcase 2\r\n\t\texisting_letter = 't';\r\n\t\twords = {'de','do','ed','el','en','er','et','id','in','it','li','lo','ne','no','od','oe','oi','on','or','re','te','ti','to','del','den','die','din','dit','doe','dol','don','dor','dot','eld','end','eon','ern','ion','ire','led','lei','let','lid','lie','lin','lit','lot','net','nil','nit','nod','nor','not','ode','oil','old','ole','one','ore','ort','red','rei','ret','rid','rin','rod','roe','rot','ted','tel','ten','tie','til','tin','tod','toe','ton','tor','deil','deli','delt','deni','dent','diel','diet','dine','dino','dint','diol','dire','dirl','dirt','dite','doer','doit','dole','dolt','done','dore','dote','edit','enol','idle','idol','inro','into','ired','iron','lend','leno','lent','lido','lied','lien','lier','line','lino','lint','lion','lire','lite','lode','loid','loin','lone','lord','lore','lorn','loti','nerd','nide','nite','node','nodi','noel','noil','noir','nori','note','olde','orle','redo','rein','rend','reno','rent','ride','riel','rile','rind','riot','rite','rode','roil','role','rote','roti','rotl','tein','tend','tern','tide','tied','tier','tile','tine','tire','tirl','tiro','toed','toil','told','tole','tone','tore','tori','torn','trio','trod','diner','doter','droit','drone','elint','eloin','enrol','ident','idler','indol','inert','inlet','inter','intro','irone','lento','lined','liner','lirot','liter','litre','loden','loner','nerol','niter','nitre','nitro','noted','noter','oiled','oiler','olden','older','oldie','olein','oriel','redon','relit','reoil','riled','ronde','teind','teloi','tenor','tilde','tiled','tiler','tined','tired','toile','toled','tondi','toned','toner','trend','tried','trine','triol','trode','trone','dentil','dinero','dotier','editor','entoil','indole','ironed','linted','linter','loiter','neroli','norite','orient','retold','rident','rioted','rodent','roiled','rondel','tinder','tirled','toiled','toiler','tonier','trined','triode','lentoid','retinol','tendril','trindle'};\r\n\t\tmax_score_corr = 8;\r\n\t\tmax_word_corr = {'lentoid','tendril','trindle'};\r\n\tcase 3\r\n\t\texisting_letter = 'n';\r\n\t\twords = {'ad','ae','am','an','ax','da','de','do','ed','em','en','ex','ma','me','mo','na','ne','no','od','oe','om','on','ox','ado','and','ane','ave','avo','axe','dam','dan','den','dev','dex','doe','dom','don','emo','end','eon','mad','mae','man','max','med','men','moa','mod','mon','nae','nam','nav','nod','nom','oda','ode','oma','one','ova','van','vex','voe','vox','aeon','amen','axed','axon','dame','damn','dean','demo','deva','dome','dona','done','dove','exam','exon','made','mane','mano','mead','mean','mend','meno','moan','mode','move','moxa','name','nave','nema','node','noma','nome','nova','odea','omen','oven','oxen','vane','vena','vend','admen','amend','anode','axmen','axone','daven','demon','devon','doven','maned','maven','maxed','menad','monad','monde','moved','named','nomad','novae','vaned','venom','daemon','moaned'};\r\n\t\tmax_score_corr = 14;\r\n\t\tmax_word_corr = {'axmen'};\r\n\tcase 4\r\n\t\texisting_letter = 'z';\r\n\t\twords = {'ad','ae','ah','ai','am','da','de','ed','eh','em','ha','he','hi','hm','id','ma','me','mi','za','ace','adz','ahi','aid','aim','ami','cad','cam','chi','dah','dam','die','dim','edh','had','hae','ham','hem','hic','hid','hie','him','ice','ich','mac','mad','mae','med','meh','mic','mid','zed','aced','ache','acid','acme','adze','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','cazh','cedi','chad','chai','cham','chem','chez','chia','chid','dace','dame','daze','dice','dime','each','emic','hade','haed','haem','hame','haze','head','hide','hied','iced','idea','idem','mace','mach','made','maid','maze','mead','mech','mica','mice','zeda','ached','aimed','amice','amide','azide','chide','chime','demic','hazed','hemic','maced','mache','maize','mazed','media','medic','miche','chimed','haemic','miched','zaideh'};\r\n\t\tmax_score_corr = 19;\r\n\t\tmax_word_corr = {'zaideh'};\r\nend\r\n[max_score,max_word] = scrabble_scores_10(words,existing_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":7,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":29,"test_suite_updated_at":"2015-03-17T13:21:23.000Z","rescore_all_solutions":false,"group_id":40,"created_at":"2015-03-14T18:30:00.000Z","updated_at":"2026-04-02T20:19:50.000Z","published_at":"2015-03-14T18:30:35.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem is very similar to the previous problem. Here, you are provided a letter of an existing word on the board from which you will play a word. The letter can reside anywhere (first to last) within the word you are playing. Write a function to find the highest scoring word, provided the letter you are building off of and the letters on your tray.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRather than having to test all the possible permutations against a dictionary, you will be provided a cell array of strings containing all possible words based on the starting letter and the letters on your tray. In addition to providing the highest score, also provide the word(s) that achieve that score in a cell array. See the test suite for examples. Due to high-scoring tiles, the highest score may not be achieved by the longest word(s).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRelated problems:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePrevious problem: 9 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3062-scrabble-scores-9\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWord score optimization (fixed first letter)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Next problem: 11 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3084-scrabble-scores-11\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWord score optimization (known letter) \u0026amp; multipliers\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":3050,"title":"Scrabble Scores - 5","description":"This problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided \u003chttp://en.wikipedia.org/wiki/Scrabble_letter_distributions#English here\u003e. (Use the English points distribution.)\r\n\r\nFor this problem, you will be provided with a set of words for each player in a game of Scrabble. The number of players may vary from two to four. The word set for each player will be provided in a cell array of strings; you'll need to use nargin and varargin to read in varying numbers of cell arrays for each test case. Write a function to calculate and return the total score for each player in a vector equal in length to the number of players.\r\n\r\nRelated problems:\r\n\r\nPrevious problem: 4 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3081-scrabble-scores-4 Word-set multiplier scoring\u003e. Next problem: 6 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3051-scrabble-scores-6 Board scoring\u003e.","description_html":"\u003cp\u003eThis problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided \u003ca href = \"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\"\u003ehere\u003c/a\u003e. (Use the English points distribution.)\u003c/p\u003e\u003cp\u003eFor this problem, you will be provided with a set of words for each player in a game of Scrabble. The number of players may vary from two to four. The word set for each player will be provided in a cell array of strings; you'll need to use nargin and varargin to read in varying numbers of cell arrays for each test case. Write a function to calculate and return the total score for each player in a vector equal in length to the number of players.\u003c/p\u003e\u003cp\u003eRelated problems:\u003c/p\u003e\u003cp\u003ePrevious problem: 4 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3081-scrabble-scores-4\"\u003eWord-set multiplier scoring\u003c/a\u003e. Next problem: 6 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3051-scrabble-scores-6\"\u003eBoard scoring\u003c/a\u003e.\u003c/p\u003e","function_template":"function [score] = scrabble_scores_5(varargin)\r\n\r\nscore = zeros(1,nargin);\r\n\r\nend\r\n","test_suite":"%%\r\nwords1 = {'hello','there','fellow','matlab','users'};\r\nwords2 = {'what','do','you','think','of','this','problem'};\r\nwords3 = {'if','you','like','it','please','give','it','a','like'};\r\nscore = [43 56 48];\r\nassert(isequal(scrabble_scores_5(words1,words2,words3),score))\r\n\r\n%%\r\nwords1 = {'zither','quandry','flummox','wealthy','amalgam'};\r\nwords2 = {'the','quick','brown','fox','jumps','over','a','lazy','dog'};\r\nwords3 = {'heterogeneous','homogenously','concatenate','thusly','hi'};\r\nwords4 = {'perspicacious','yes','zero','quizzical','no'};\r\nscore = [87 94 70 80];\r\nassert(isequal(scrabble_scores_5(words1,words2,words3,words4),score))\r\n\r\n%%\r\nwords1 = {'one','two','three','four','five'};\r\nwords2 = {'six','seven','eight','nine','ten'};\r\nscore = [34 34];\r\nassert(isequal(scrabble_scores_5(words1,words2),score))\r\n\r\n%%\r\nwords1 = {'random','word','generator','responses','below'};\r\nwords2 = {'contact','laboratory','overtone','writer','philosophy'};\r\nwords3 = {'hunting','convention','surface','superior','travel'};\r\nwords4 = {'convincing','hangover','fortnight','long','novelty'};\r\nscore = [48 69 57 67];\r\nassert(isequal(scrabble_scores_5(words1,words2,words3,words4),score))\r\n\r\n%%\r\nwords = { {'random','word','generator','responses','below'};\r\n {'contact','laboratory','overtone','writer','philosophy'};\r\n {'hunting','convention','surface','superior','travel'};\r\n {'convincing','hangover','fortnight','long','novelty'}; };\r\nscore = [48 69 57 67];\r\nind1 = randi(4);\r\nind2 = randi(4);\r\nassert(isequal(scrabble_scores_5(words{ind1},words{ind2}),[score(ind1) score(ind2)]))\r\n\r\n%%\r\nwords = { {'zither','quandry','flummox','wealthy','amalgam'};\r\n {'the','quick','brown','fox','jumps','over','a','lazy','dog'};\r\n {'heterogeneous','homogenously','concatenate','thusly','hi'};\r\n {'perspicacious','yes','zero','quizzical','no'}; };\r\nscore = [87 94 70 80];\r\nind1 = randi(4);\r\nind2 = randi(4);\r\nassert(isequal(scrabble_scores_5(words{ind1},words{ind2}),[score(ind1) score(ind2)]))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":36,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":40,"created_at":"2015-02-28T03:40:58.000Z","updated_at":"2026-04-02T20:13:53.000Z","published_at":"2015-02-28T03:40:58.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehere\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. (Use the English points distribution.)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor this problem, you will be provided with a set of words for each player in a game of Scrabble. The number of players may vary from two to four. The word set for each player will be provided in a cell array of strings; you'll need to use nargin and varargin to read in varying numbers of cell arrays for each test case. Write a function to calculate and return the total score for each player in a vector equal in length to the number of players.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRelated problems:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePrevious problem: 4 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3081-scrabble-scores-4\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWord-set multiplier scoring\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Next problem: 6 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3051-scrabble-scores-6\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eBoard scoring\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":3062,"title":"Scrabble Scores - 9","description":"After developing a sophisticated Scrabble scoring routine, it's time to write an optimization routine for single-word scoring. The point distribution for English is provided \u003chttp://en.wikipedia.org/wiki/Scrabble_letter_distributions#English here\u003e.\r\n\r\nFor this problem, you are provided the starting letter (from an existing word on the board) from which you will play a word. For this problem, we'll assume that that's the first letter of your new word.\r\n\r\nRather than having to test all the possible permutations against a dictionary, you will be provided a cell array of strings containing all possible words based on the letters on your tray. Write a function to determine which word would provide the highest score. Also, provide the word(s) that achieve that score in a cell array. See the test suite for examples.\r\n\r\nRelated problems:\r\n\r\nPrevious problem: 8 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3060-scrabble-scores-8 Multiplayer multiplier board scoring\u003e. Next problem: 10 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3082-scrabble-scores-10 Word score optimization (given letter)\u003e.","description_html":"\u003cp\u003eAfter developing a sophisticated Scrabble scoring routine, it's time to write an optimization routine for single-word scoring. The point distribution for English is provided \u003ca href = \"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\u003cp\u003eFor this problem, you are provided the starting letter (from an existing word on the board) from which you will play a word. For this problem, we'll assume that that's the first letter of your new word.\u003c/p\u003e\u003cp\u003eRather than having to test all the possible permutations against a dictionary, you will be provided a cell array of strings containing all possible words based on the letters on your tray. Write a function to determine which word would provide the highest score. Also, provide the word(s) that achieve that score in a cell array. See the test suite for examples.\u003c/p\u003e\u003cp\u003eRelated problems:\u003c/p\u003e\u003cp\u003ePrevious problem: 8 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3060-scrabble-scores-8\"\u003eMultiplayer multiplier board scoring\u003c/a\u003e. Next problem: 10 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3082-scrabble-scores-10\"\u003eWord score optimization (given letter)\u003c/a\u003e.\u003c/p\u003e","function_template":"function [max_score,max_word] = scrabble_scores_9(words,first_letter)\r\n\r\nmax_score = 0;\r\nmax_word = '';\r\n\r\nend\r\n","test_suite":"%%\r\nfirst_letter = 's'; %the word must start with this letter, which is in an already played word\r\ntray_letters = 'aethilm'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including the first letter with your tray letters (though the first letter has been thrown into the mix)\r\nwords = {'ae','ah','ai','al','am','as','at','eh','el','em','es','et','ha','he','hi','hm','is','it','la','li','ma','me','mi','sh','si','ta','te','ti','ahi','ahs','ail','aim','ais','ait','ale','als','alt','ami','ash','ate','eat','elm','els','ems','est','eta','eth','hae','ham','has','hat','hem','hes','het','hie','him','his','hit','ism','its','lah','lam','las','lat','lea','lei','let','lie','lis','lit','mae','mas','mat','meh','mel','met','mil','mis','sae','sal','sat','sea','sei','sel','set','sha','she','sim','sit','tae','tam','tas','tea','tel','tes','the','tie','til','tis','ahem','ahis','ails','aims','aits','ales','alit','alme','alms','alts','amie','amis','ates','east','eath','eats','elhi','elms','emit','etas','eths','haem','haes','haet','hail','hale','halm','halt','hame','hams','hast','hate','hats','heal','heat','heil','helm','hems','hest','hets','hies','hila','hilt','hims','hist','hits','ilea','isle','item','lahs','lame','lams','lase','lash','last','late','lath','lati','lats','leas','leis','lest','lets','lias','lies','lima','lime','list','lite','lits','maes','mail','male','malt','mash','mast','mate','math','mats','meal','meat','mels','melt','mesa','mesh','meta','meth','mile','mils','milt','mise','mist','mite','sail','sale','salt','same','sate','sati','seal','seam','seat','semi','seta','sham','shea','shim','sial','silt','sima','site','sith','slam','slat','slim','slit','smit','stem','tael','tail','tale','tali','tame','tams','tase','teal','team','teas','tela','tels','thae','them','this','ties','tile','tils','time','aisle','alist','almeh','almes','amies','email','emits','haems','haets','hails','hales','halms','halts','hames','haste','hates','heals','heats','heils','heist','helms','hemal','hilts','islet','istle','items','laith','lames','lathe','lathi','laths','leash','least','limas','limes','litas','lites','lithe','maile','mails','maist','males','malts','mates','maths','meals','meats','melts','metal','meths','metis','miles','milts','mites','saith','salmi','satem','selah','setal','shale','shalt','shame','sheal','shiel','slate','slime','smalt','smelt','smile','smite','smith','stale','steal','steam','stela','stile','stime','taels','tails','tales','tames','tamis','teals','teams','telia','tesla','thali','tiles','times','almehs','emails','halest','halite','hamlet','haslet','hiemal','lamest','lathes','lathis','latish','mailes','mashie','mesial','metals','misate','miseat','saithe','saltie','samiel','samite','samlet','sheila','shelta','smalti','stelai','tahsil','thalis','theism','atheism','halites','hamlets','heliast'};\r\nmax_score_corr = 10;\r\nmax_word_corr = {'shame','smith'};\r\n[max_score,max_word] = scrabble_scores_9(words,first_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n%%\r\nfirst_letter = 't'; %the word must start with this letter, which is in an already played word\r\ntray_letters = 'eodnirl'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including the first letter with your tray letters (though the first letter has been thrown into the mix)\r\nwords = {'de','do','ed','el','en','er','et','id','in','it','li','lo','ne','no','od','oe','oi','on','or','re','te','ti','to','del','den','die','din','dit','doe','dol','don','dor','dot','eld','end','eon','ern','ion','ire','led','lei','let','lid','lie','lin','lit','lot','net','nil','nit','nod','nor','not','ode','oil','old','ole','one','ore','ort','red','rei','ret','rid','rin','rod','roe','rot','ted','tel','ten','tie','til','tin','tod','toe','ton','tor','deil','deli','delt','deni','dent','diel','diet','dine','dino','dint','diol','dire','dirl','dirt','dite','doer','doit','dole','dolt','done','dore','dote','edit','enol','idle','idol','inro','into','ired','iron','lend','leno','lent','lido','lied','lien','lier','line','lino','lint','lion','lire','lite','lode','loid','loin','lone','lord','lore','lorn','loti','nerd','nide','nite','node','nodi','noel','noil','noir','nori','note','olde','orle','redo','rein','rend','reno','rent','ride','riel','rile','rind','riot','rite','rode','roil','role','rote','roti','rotl','tein','tend','tern','tide','tied','tier','tile','tine','tire','tirl','tiro','toed','toil','told','tole','tone','tore','tori','torn','trio','trod','diner','doter','droit','drone','elint','eloin','enrol','ident','idler','indol','inert','inlet','inter','intro','irone','lento','lined','liner','lirot','liter','litre','loden','loner','nerol','niter','nitre','nitro','noted','noter','oiled','oiler','olden','older','oldie','olein','oriel','redon','relit','reoil','riled','ronde','teind','teloi','tenor','tilde','tiled','tiler','tined','tired','toile','toled','tondi','toned','toner','trend','tried','trine','triol','trode','trone','dentil','dinero','dotier','editor','entoil','indole','ironed','linted','linter','loiter','neroli','norite','orient','retold','rident','rioted','rodent','roiled','rondel','tinder','tirled','toiled','toiler','tonier','trined','triode','lentoid','retinol','tendril','trindle'};\r\nmax_score_corr = 8;\r\nmax_word_corr = {'tendril','trindle'};\r\n[max_score,max_word] = scrabble_scores_9(words,first_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n%%\r\nfirst_letter = 'n'; %the word must start with this letter, which is in an already played word\r\ntray_letters = 'dmvxeao'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including the first letter with your tray letters (though the first letter has been thrown into the mix)\r\nwords = {'ad','ae','am','an','ax','da','de','do','ed','em','en','ex','ma','me','mo','na','ne','no','od','oe','om','on','ox','ado','and','ane','ave','avo','axe','dam','dan','den','dev','dex','doe','dom','don','emo','end','eon','mad','mae','man','max','med','men','moa','mod','mon','nae','nam','nav','nod','nom','oda','ode','oma','one','ova','van','vex','voe','vox','aeon','amen','axed','axon','dame','damn','dean','demo','deva','dome','dona','done','dove','exam','exon','made','mane','mano','mead','mean','mend','meno','moan','mode','move','moxa','name','nave','nema','node','noma','nome','nova','odea','omen','oven','oxen','vane','vena','vend','admen','amend','anode','axmen','axone','daven','demon','devon','doven','maned','maven','maxed','menad','monad','monde','moved','named','nomad','novae','vaned','venom','daemon','moaned'};\r\nmax_score_corr = 8;\r\nmax_word_corr = {'named','nomad','novae'};\r\n[max_score,max_word] = scrabble_scores_9(words,first_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n%%\r\nfirst_letter = 'z'; %the word must start with this letter, which is in an already played word\r\ntray_letters = 'aehcmdi'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including the first letter with your tray letters (though the first letter has been thrown into the mix)\r\nwords = {'ad','ae','ah','ai','am','da','de','ed','eh','em','ha','he','hi','hm','id','ma','me','mi','za','ace','adz','ahi','aid','aim','ami','cad','cam','chi','dah','dam','die','dim','edh','had','hae','ham','hem','hic','hid','hie','him','ice','ich','mac','mad','mae','med','meh','mic','mid','zed','aced','ache','acid','acme','adze','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','cazh','cedi','chad','chai','cham','chem','chez','chia','chid','dace','dame','daze','dice','dime','each','emic','hade','haed','haem','hame','haze','head','hide','hied','iced','idea','idem','mace','mach','made','maid','maze','mead','mech','mica','mice','zeda','ached','aimed','amice','amide','azide','chide','chime','demic','hazed','hemic','maced','mache','maize','mazed','media','medic','miche','chimed','haemic','miched','zaideh'};\r\nmax_score_corr = 19;\r\nmax_word_corr = {'zaideh'};\r\n[max_score,max_word] = scrabble_scores_9(words,first_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n%% anti-cheating test case\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\tfirst_letter = 's';\r\n\t\twords = {'ae','ah','ai','al','am','as','at','eh','el','em','es','et','ha','he','hi','hm','is','it','la','li','ma','me','mi','sh','si','ta','te','ti','ahi','ahs','ail','aim','ais','ait','ale','als','alt','ami','ash','ate','eat','elm','els','ems','est','eta','eth','hae','ham','has','hat','hem','hes','het','hie','him','his','hit','ism','its','lah','lam','las','lat','lea','lei','let','lie','lis','lit','mae','mas','mat','meh','mel','met','mil','mis','sae','sal','sat','sea','sei','sel','set','sha','she','sim','sit','tae','tam','tas','tea','tel','tes','the','tie','til','tis','ahem','ahis','ails','aims','aits','ales','alit','alme','alms','alts','amie','amis','ates','east','eath','eats','elhi','elms','emit','etas','eths','haem','haes','haet','hail','hale','halm','halt','hame','hams','hast','hate','hats','heal','heat','heil','helm','hems','hest','hets','hies','hila','hilt','hims','hist','hits','ilea','isle','item','lahs','lame','lams','lase','lash','last','late','lath','lati','lats','leas','leis','lest','lets','lias','lies','lima','lime','list','lite','lits','maes','mail','male','malt','mash','mast','mate','math','mats','meal','meat','mels','melt','mesa','mesh','meta','meth','mile','mils','milt','mise','mist','mite','sail','sale','salt','same','sate','sati','seal','seam','seat','semi','seta','sham','shea','shim','sial','silt','sima','site','sith','slam','slat','slim','slit','smit','stem','tael','tail','tale','tali','tame','tams','tase','teal','team','teas','tela','tels','thae','them','this','ties','tile','tils','time','aisle','alist','almeh','almes','amies','email','emits','haems','haets','hails','hales','halms','halts','hames','haste','hates','heals','heats','heils','heist','helms','hemal','hilts','islet','istle','items','laith','lames','lathe','lathi','laths','leash','least','limas','limes','litas','lites','lithe','maile','mails','maist','males','malts','mates','maths','meals','meats','melts','metal','meths','metis','miles','milts','mites','saith','salmi','satem','selah','setal','shale','shalt','shame','sheal','shiel','slate','slime','smalt','smelt','smile','smite','smith','stale','steal','steam','stela','stile','stime','taels','tails','tales','tames','tamis','teals','teams','telia','tesla','thali','tiles','times','almehs','emails','halest','halite','hamlet','haslet','hiemal','lamest','lathes','lathis','latish','mailes','mashie','mesial','metals','misate','miseat','saithe','saltie','samiel','samite','samlet','sheila','shelta','smalti','stelai','tahsil','thalis','theism','atheism','halites','hamlets','heliast'};\r\n\t\tmax_score_corr = 10;\r\n\t\tmax_word_corr = {'shame','smith'};\r\n\tcase 2\r\n\t\tfirst_letter = 't';\r\n\t\twords = {'de','do','ed','el','en','er','et','id','in','it','li','lo','ne','no','od','oe','oi','on','or','re','te','ti','to','del','den','die','din','dit','doe','dol','don','dor','dot','eld','end','eon','ern','ion','ire','led','lei','let','lid','lie','lin','lit','lot','net','nil','nit','nod','nor','not','ode','oil','old','ole','one','ore','ort','red','rei','ret','rid','rin','rod','roe','rot','ted','tel','ten','tie','til','tin','tod','toe','ton','tor','deil','deli','delt','deni','dent','diel','diet','dine','dino','dint','diol','dire','dirl','dirt','dite','doer','doit','dole','dolt','done','dore','dote','edit','enol','idle','idol','inro','into','ired','iron','lend','leno','lent','lido','lied','lien','lier','line','lino','lint','lion','lire','lite','lode','loid','loin','lone','lord','lore','lorn','loti','nerd','nide','nite','node','nodi','noel','noil','noir','nori','note','olde','orle','redo','rein','rend','reno','rent','ride','riel','rile','rind','riot','rite','rode','roil','role','rote','roti','rotl','tein','tend','tern','tide','tied','tier','tile','tine','tire','tirl','tiro','toed','toil','told','tole','tone','tore','tori','torn','trio','trod','diner','doter','droit','drone','elint','eloin','enrol','ident','idler','indol','inert','inlet','inter','intro','irone','lento','lined','liner','lirot','liter','litre','loden','loner','nerol','niter','nitre','nitro','noted','noter','oiled','oiler','olden','older','oldie','olein','oriel','redon','relit','reoil','riled','ronde','teind','teloi','tenor','tilde','tiled','tiler','tined','tired','toile','toled','tondi','toned','toner','trend','tried','trine','triol','trode','trone','dentil','dinero','dotier','editor','entoil','indole','ironed','linted','linter','loiter','neroli','norite','orient','retold','rident','rioted','rodent','roiled','rondel','tinder','tirled','toiled','toiler','tonier','trined','triode','lentoid','retinol','tendril','trindle'};\r\n\t\tmax_score_corr = 8;\r\n\t\tmax_word_corr = {'tendril','trindle'};\r\n\tcase 3\r\n\t\tfirst_letter = 'n';\r\n\t\twords = {'ad','ae','am','an','ax','da','de','do','ed','em','en','ex','ma','me','mo','na','ne','no','od','oe','om','on','ox','ado','and','ane','ave','avo','axe','dam','dan','den','dev','dex','doe','dom','don','emo','end','eon','mad','mae','man','max','med','men','moa','mod','mon','nae','nam','nav','nod','nom','oda','ode','oma','one','ova','van','vex','voe','vox','aeon','amen','axed','axon','dame','damn','dean','demo','deva','dome','dona','done','dove','exam','exon','made','mane','mano','mead','mean','mend','meno','moan','mode','move','moxa','name','nave','nema','node','noma','nome','nova','odea','omen','oven','oxen','vane','vena','vend','admen','amend','anode','axmen','axone','daven','demon','devon','doven','maned','maven','maxed','menad','monad','monde','moved','named','nomad','novae','vaned','venom','daemon','moaned'};\r\n\t\tmax_score_corr = 8;\r\n\t\tmax_word_corr = {'named','nomad','novae'};\r\n\tcase 4\r\n\t\tfirst_letter = 'z';\r\n\t\twords = {'ad','ae','ah','ai','am','da','de','ed','eh','em','ha','he','hi','hm','id','ma','me','mi','za','ace','adz','ahi','aid','aim','ami','cad','cam','chi','dah','dam','die','dim','edh','had','hae','ham','hem','hic','hid','hie','him','ice','ich','mac','mad','mae','med','meh','mic','mid','zed','aced','ache','acid','acme','adze','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','cazh','cedi','chad','chai','cham','chem','chez','chia','chid','dace','dame','daze','dice','dime','each','emic','hade','haed','haem','hame','haze','head','hide','hied','iced','idea','idem','mace','mach','made','maid','maze','mead','mech','mica','mice','zeda','ached','aimed','amice','amide','azide','chide','chime','demic','hazed','hemic','maced','mache','maize','mazed','media','medic','miche','chimed','haemic','miched','zaideh'};\r\n\t\tmax_score_corr = 19;\r\n\t\tmax_word_corr = {'zaideh'};\r\nend\r\n[max_score,max_word] = scrabble_scores_9(words,first_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":3,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":29,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":40,"created_at":"2015-03-04T02:02:45.000Z","updated_at":"2026-04-02T20:19:03.000Z","published_at":"2015-03-04T02:02:45.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAfter developing a sophisticated Scrabble scoring routine, it's time to write an optimization routine for single-word scoring. The point distribution for English is provided\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehere\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor this problem, you are provided the starting letter (from an existing word on the board) from which you will play a word. For this problem, we'll assume that that's the first letter of your new word.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRather than having to test all the possible permutations against a dictionary, you will be provided a cell array of strings containing all possible words based on the letters on your tray. Write a function to determine which word would provide the highest score. Also, provide the word(s) that achieve that score in a cell array. See the test suite for examples.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRelated problems:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePrevious problem: 8 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3060-scrabble-scores-8\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMultiplayer multiplier board scoring\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Next problem: 10 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3082-scrabble-scores-10\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWord score optimization (given letter)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":3049,"title":"Scrabble Scores - 4","description":"This problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided \u003chttp://en.wikipedia.org/wiki/Scrabble_letter_distributions#English here\u003e. (Use the English points distribution.)\r\n\r\nFor this problem, you will be provided with a set of words and the accompanying bonus squares that each word covered. The words will be provided in a cell array of strings; the bonus squares will be provided in a two-level cell array of strings. Write a function to calculate the total score for the set of words using the multipliers. The multipliers are as follows:\r\n\r\n* 'DL' = double letter\r\n* 'DW' = double word\r\n* 'TL' = triple letter\r\n* 'TW' = triple word\r\n* 'QL' = quadruple letter\r\n* 'QW' = quadruple word\r\n\r\nFor those not familiar with QL and QW, those were introduced in Super Scrabble. Also, remember that the DL, TL, and QL multipliers take effect before the DW, TW, and QW multipliers. Also, multiple word multipliers can be present, having a cumulative effect (e.g., DW \u0026 TW = *6).\r\n\r\nAs an example, if the word were 'matlab' and the multiplier cell array was \r\n\r\n  {'','DW','','','','DL'}\r\n\r\n\r\nthen the score would be (3 + 1 + 1 + 1 + 1 + 2*3)*2 = 26. Each word in the set should be scored in this manner and the total score summed.\r\n\r\nThis is an old version of problem 4 in this series. It has been revised and is available here: \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3081-scrabble-scores-4 Word-set multiplier scoring\u003e.","description_html":"\u003cp\u003eThis problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided \u003ca href = \"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\"\u003ehere\u003c/a\u003e. (Use the English points distribution.)\u003c/p\u003e\u003cp\u003eFor this problem, you will be provided with a set of words and the accompanying bonus squares that each word covered. The words will be provided in a cell array of strings; the bonus squares will be provided in a two-level cell array of strings. Write a function to calculate the total score for the set of words using the multipliers. The multipliers are as follows:\u003c/p\u003e\u003cul\u003e\u003cli\u003e'DL' = double letter\u003c/li\u003e\u003cli\u003e'DW' = double word\u003c/li\u003e\u003cli\u003e'TL' = triple letter\u003c/li\u003e\u003cli\u003e'TW' = triple word\u003c/li\u003e\u003cli\u003e'QL' = quadruple letter\u003c/li\u003e\u003cli\u003e'QW' = quadruple word\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eFor those not familiar with QL and QW, those were introduced in Super Scrabble. Also, remember that the DL, TL, and QL multipliers take effect before the DW, TW, and QW multipliers. Also, multiple word multipliers can be present, having a cumulative effect (e.g., DW \u0026 TW = *6).\u003c/p\u003e\u003cp\u003eAs an example, if the word were 'matlab' and the multiplier cell array was\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e{'','DW','','','','DL'}\r\n\u003c/pre\u003e\u003cp\u003ethen the score would be (3 + 1 + 1 + 1 + 1 + 2*3)*2 = 26. Each word in the set should be scored in this manner and the total score summed.\u003c/p\u003e\u003cp\u003eThis is an old version of problem 4 in this series. It has been revised and is available here: \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3081-scrabble-scores-4\"\u003eWord-set multiplier scoring\u003c/a\u003e.\u003c/p\u003e","function_template":"function [score] = scrabble_scores_4(words,mult)\r\n\r\nscore = 0;\r\n\r\nend\r\n","test_suite":"%%\r\nwords = {'hello','there','fellow','matlab','users'};\r\nmult = {{'DW','','','','DL'} {'DW','','','','DL'} {'','DW','','','','DL'} {'','DW','','','','DL'} {'DW','','','','DL'}};\r\nscore = 106;\r\nassert(isequal(scrabble_scores_4(words,mult),score))\r\n\r\n%%\r\nwords = {'what','do','you','think','of','this','problem'};\r\nmult = {{'','DW','',''}; {'',''}; {'','DW',''}; {'','DW','','','TL'}; {'',''}; {'','DW','',''}; {'TL','','','DW','','','TL'}};\r\nscore = 148;\r\nassert(isequal(scrabble_scores_4(words,mult),score))\r\n\r\n%%\r\nwords = {'if','you','like','it','please','give','it','a','like'};\r\nmult = {{'','DW'}; {'','','QW'}; {'','DW','',''}; {'',''}; {'','DW','','','TL',''}; {'','DW','',''}; {'TL',''}; {''}; {'DW','','','TL'}};\r\nscore = 113;\r\nassert(isequal(scrabble_scores_4(words,mult),score))\r\n\r\n%%\r\nwords = {'zither','quandry','flummox','wealthy','amalgam'};\r\nmult = {{'','DW','','','','DW'}; {'QL','','','','','DW',''}; {'','DW','','','','DW',''}; {'','DW','','','','DW',''}; {'','DW','','','','DW',''}; };\r\nscore = 368;\r\nassert(isequal(scrabble_scores_4(words,mult),score))\r\n\r\n%%\r\nwords = {'heterogeneous','homogenously','concatenate','thusly','hi'};\r\nmult = {{'TL','','','','TL','','','','TW','','','','QW'}; {'','','','TL','','','','TW','','','','QW'}; {'TL','','','','TL','','','','TW','',''}; {'TL','','','','TL',''}; {'',''}; };\r\nscore = 690;\r\nassert(isequal(scrabble_scores_4(words,mult),score))\r\n\r\n%%\r\nwords = {'perspicacious','yes','zero','quizzical','no'};\r\nmult = {{'TL','','','','TL','','','','TW','','','','QW'}; {'','',''}; {'TL','','',''}; {'TL','','','','TL','','','TW',''}; {'',''}; };\r\nscore = 671;\r\nassert(isequal(scrabble_scores_4(words,mult),score))\r\n\r\n%% pangram test to help ensure letters scores are correctly assigned\r\nwords = {'the','quick','brown','fox','jumps','over','a','lazy','dog'};\r\nmult = {{'TL','',''}; {'','TL','','',''}; {'TW','','','','QW'}; {'','',''}; {'TL','','','','QL'}; {'TL','','',''}; {'TL'}; {'','','TW',''}; {'','','QW'}; };\r\nscore = 278;\r\nassert(isequal(scrabble_scores_4(words,mult),score))","published":true,"deleted":false,"likes_count":1,"comments_count":3,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":15,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2015-02-28T03:14:55.000Z","updated_at":"2025-11-01T19:19:19.000Z","published_at":"2015-02-28T03:14:55.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehere\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. (Use the English points distribution.)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor this problem, you will be provided with a set of words and the accompanying bonus squares that each word covered. The words will be provided in a cell array of strings; the bonus squares will be provided in a two-level cell array of strings. Write a function to calculate the total score for the set of words using the multipliers. The multipliers are as follows:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e'DL' = double letter\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e'DW' = double word\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e'TL' = triple letter\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e'TW' = triple word\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e'QL' = quadruple letter\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e'QW' = quadruple word\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor those not familiar with QL and QW, those were introduced in Super Scrabble. Also, remember that the DL, TL, and QL multipliers take effect before the DW, TW, and QW multipliers. Also, multiple word multipliers can be present, having a cumulative effect (e.g., DW \u0026amp; TW =\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e *\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e6).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAs an example, if the word were 'matlab' and the multiplier cell array was\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[{'','DW','','','','DL'}]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ethen the score would be (3 + 1 + 1 + 1 + 1 + 2*3)*2 = 26. Each word in the set should be scored in this manner and the total score summed.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis is an old version of problem 4 in this series. It has been revised and is available here:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3081-scrabble-scores-4\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWord-set multiplier scoring\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":3048,"title":"Scrabble Scores - 3","description":"This problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided \u003chttp://en.wikipedia.org/wiki/Scrabble_letter_distributions#English here\u003e. (Use the English points distribution.)\r\n\r\nFor this problem, you will be provided with a word and the accompanying bonus squares that the word might have covered (in a cell array of strings). Write a function to calculate the total score for the word using the multipliers. The multipliers are as follows:\r\n\r\n* 'DL' = double letter\r\n* 'DW' = double word\r\n* 'TL' = triple letter\r\n* 'TW' = triple word\r\n* 'QL' = quadruple letter\r\n* 'QW' = quadruple word\r\n\r\nFor those not familiar with QL and QW, those were introduced in Super Scrabble. Also, remember that the DL, TL, and QL multipliers take effect before the DW, TW, and QW multipliers. Also, multiple word multipliers can be present, having a cumulative effect (e.g., DW \u0026 TW = *6).\r\n\r\nAs an example, if the word were 'matlab' and the multiplier cell array was \r\n\r\n  {'','DW','','','','DL'}\r\n\r\n\r\nthen the score would be (3 + 1 + 1 + 1 + 1 + 2*3)*2 = 26.\r\n\r\nRelated problems:\r\n\r\nPrevious problem: 2 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3047-scrabble-scores-2 Word-set scoring\u003e. Next problem: 4 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3081-scrabble-scores-4 Word-set multiplier scoring\u003e.","description_html":"\u003cp\u003eThis problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided \u003ca href = \"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\"\u003ehere\u003c/a\u003e. (Use the English points distribution.)\u003c/p\u003e\u003cp\u003eFor this problem, you will be provided with a word and the accompanying bonus squares that the word might have covered (in a cell array of strings). Write a function to calculate the total score for the word using the multipliers. The multipliers are as follows:\u003c/p\u003e\u003cul\u003e\u003cli\u003e'DL' = double letter\u003c/li\u003e\u003cli\u003e'DW' = double word\u003c/li\u003e\u003cli\u003e'TL' = triple letter\u003c/li\u003e\u003cli\u003e'TW' = triple word\u003c/li\u003e\u003cli\u003e'QL' = quadruple letter\u003c/li\u003e\u003cli\u003e'QW' = quadruple word\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eFor those not familiar with QL and QW, those were introduced in Super Scrabble. Also, remember that the DL, TL, and QL multipliers take effect before the DW, TW, and QW multipliers. Also, multiple word multipliers can be present, having a cumulative effect (e.g., DW \u0026 TW = *6).\u003c/p\u003e\u003cp\u003eAs an example, if the word were 'matlab' and the multiplier cell array was\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e{'','DW','','','','DL'}\r\n\u003c/pre\u003e\u003cp\u003ethen the score would be (3 + 1 + 1 + 1 + 1 + 2*3)*2 = 26.\u003c/p\u003e\u003cp\u003eRelated problems:\u003c/p\u003e\u003cp\u003ePrevious problem: 2 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3047-scrabble-scores-2\"\u003eWord-set scoring\u003c/a\u003e. Next problem: 4 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3081-scrabble-scores-4\"\u003eWord-set multiplier scoring\u003c/a\u003e.\u003c/p\u003e","function_template":"function [score] = scrabble_scores_3(word,mult)\r\n\r\nscore = 0;\r\n\r\nend\r\n","test_suite":"%%\r\nword = 'matlab';\r\nmult = {'','DW','','','','DL'};\r\nscore = 26;\r\nassert(isequal(scrabble_scores_3(word,mult),score))\r\n\r\n%%\r\nword = 'problem';\r\nmult = {'','','','','','',''};\r\nscore = 13;\r\nassert(isequal(scrabble_scores_3(word,mult),score))\r\n\r\n%%\r\nword = 'zither';\r\nmult = {'','DW','','','','DW'};\r\nscore = 72;\r\nassert(isequal(scrabble_scores_3(word,mult),score))\r\n\r\n%%\r\nword = 'quandry';\r\nmult = {'TL','','','','TL','',''};\r\nscore = 44;\r\nassert(isequal(scrabble_scores_3(word,mult),score))\r\n\r\n%%\r\nword = 'concatenates';\r\nmult = {'TW','','','DL','','','','TW','','','','DL'};\r\nscore = 180;\r\nassert(isequal(scrabble_scores_3(word,mult),score))\r\n\r\n%%\r\nword = 'heterogeneousness';\r\nmult = {'QW','','','DL','','','','TW','','','DL','','','TW','','',''};\r\nscore = 828;\r\nassert(isequal(scrabble_scores_3(word,mult),score))\r\n\r\n%%\r\nword = {'hello','donut','cheat','shape','quote'};\r\nmult = {'QW','','','DL',''};\r\nscore = [36 28 44 52 60];\r\nind = randi(5);\r\nassert(isequal(scrabble_scores_3(word{ind},mult),score(ind)))\r\n\r\n%%\r\nword = {'hello','donut','cheat','shape','quote'};\r\nmult = {'QL','','','','DW'};\r\nscore = [40 24 38 26 88];\r\nind = randi(5);\r\nassert(isequal(scrabble_scores_3(word{ind},mult),score(ind)))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":40,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":40,"created_at":"2015-02-26T04:46:46.000Z","updated_at":"2026-04-02T20:11:50.000Z","published_at":"2015-02-26T04:46:46.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehere\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. (Use the English points distribution.)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor this problem, you will be provided with a word and the accompanying bonus squares that the word might have covered (in a cell array of strings). Write a function to calculate the total score for the word using the multipliers. The multipliers are as follows:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e'DL' = double letter\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e'DW' = double word\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e'TL' = triple letter\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e'TW' = triple word\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e'QL' = quadruple letter\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e'QW' = quadruple word\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor those not familiar with QL and QW, those were introduced in Super Scrabble. Also, remember that the DL, TL, and QL multipliers take effect before the DW, TW, and QW multipliers. Also, multiple word multipliers can be present, having a cumulative effect (e.g., DW \u0026amp; TW =\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e *\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e6).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAs an example, if the word were 'matlab' and the multiplier cell array was\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[{'','DW','','','','DL'}]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ethen the score would be (3 + 1 + 1 + 1 + 1 + 2*3)*2 = 26.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRelated problems:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePrevious problem: 2 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3047-scrabble-scores-2\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWord-set scoring\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Next problem: 4 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3081-scrabble-scores-4\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWord-set multiplier scoring\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":3081,"title":"Scrabble Scores - 4","description":"This problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided here. (Use the English points distribution.)\r\n\r\nFor this problem, you will be provided with a set of words and the accompanying bonus squares that each word covered. The words will be provided in a cell array of strings. Write a function to calculate the total score for the set of words using the multipliers. The multipliers are as follows:\r\n\r\n * D: double word\r\n * T: triple word\r\n * Q: quadruple word\r\n * d: double letter\r\n * t: triple letter\r\n * q: quadruple letter\r\n\r\nFor those not familiar with quadruple word (Q) and quadruple letter (q), those were introduced in Super Scrabble. Also, remember that the d, t, and q multipliers take effect before the D, T, and Q multipliers. Also, multiple word multipliers can be present, having a cumulative effect (e.g., D \u0026 T = *6).\r\n\r\nAs an example, if the word were 'matlab' and the multiplier string array was\r\n\r\n  [' ','D',' ',' ',' ','d'] (or ' D   d')\r\n\r\nthen the score would be (3 + 1 + 1 + 1 + 1 + 2*3)*2 = 26. Each word in the set should be scored in this manner and the total score summed.\r\n\r\nRelated problems:\r\n\r\nPrevious problem: 3 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3048-scrabble-scores-3 Single-word multiplier scoring\u003e. Next problem: 5 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3050-scrabble-scores-5 Multiplayer word-set scoring\u003e.","description_html":"\u003cp\u003eThis problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided here. (Use the English points distribution.)\u003c/p\u003e\u003cp\u003eFor this problem, you will be provided with a set of words and the accompanying bonus squares that each word covered. The words will be provided in a cell array of strings. Write a function to calculate the total score for the set of words using the multipliers. The multipliers are as follows:\u003c/p\u003e\u003cpre\u003e * D: double word\r\n * T: triple word\r\n * Q: quadruple word\r\n * d: double letter\r\n * t: triple letter\r\n * q: quadruple letter\u003c/pre\u003e\u003cp\u003eFor those not familiar with quadruple word (Q) and quadruple letter (q), those were introduced in Super Scrabble. Also, remember that the d, t, and q multipliers take effect before the D, T, and Q multipliers. Also, multiple word multipliers can be present, having a cumulative effect (e.g., D \u0026 T = *6).\u003c/p\u003e\u003cp\u003eAs an example, if the word were 'matlab' and the multiplier string array was\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e[' ','D',' ',' ',' ','d'] (or ' D   d')\r\n\u003c/pre\u003e\u003cp\u003ethen the score would be (3 + 1 + 1 + 1 + 1 + 2*3)*2 = 26. Each word in the set should be scored in this manner and the total score summed.\u003c/p\u003e\u003cp\u003eRelated problems:\u003c/p\u003e\u003cp\u003ePrevious problem: 3 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3048-scrabble-scores-3\"\u003eSingle-word multiplier scoring\u003c/a\u003e. Next problem: 5 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3050-scrabble-scores-5\"\u003eMultiplayer word-set scoring\u003c/a\u003e.\u003c/p\u003e","function_template":"function [score] = scrabble_scores_4_rev(words,mult)\r\n\r\nscore = 0;\r\n\r\nend\r\n","test_suite":"%\r\nwords = {'hello','there','fellow','matlab','users'};\r\nmult = {'D   d','D   d',' D   d',' D   d','D   d'};\r\nscore = 106;\r\nassert(isequal(scrabble_scores_4_rev(words,mult),score))\r\n\r\n%%\r\nwords = {'what','do','you','think','of','this','problem'};\r\nmult = {' D  ','  ',' D ',' D  t','  ',' D  ','t  D  t'};\r\nscore = 148;\r\nassert(isequal(scrabble_scores_4_rev(words,mult),score))\r\n\r\n%%\r\nwords = {'if','you','like','it','please','give','it','a','like'};\r\nmult = {' D','  Q',' D  ','  ',' D  t ',' D  ','t ',' ','D  t'};\r\nscore = 113;\r\nassert(isequal(scrabble_scores_4_rev(words,mult),score))\r\n\r\n%%\r\nwords = {'zither','quandry','flummox','wealthy','amalgam'};\r\nmult = {' D   D','q    D ',' D   D ',' D   D ',' D   D '};\r\nscore = 368;\r\nassert(isequal(scrabble_scores_4_rev(words,mult),score))\r\n\r\n%%\r\nwords = {'heterogeneous','homogenously','concatenate','thusly','hi'};\r\nmult = {'t   t   T   Q','   t   T   Q','t   t   T  ','t   t ','  '};\r\nscore = 690;\r\nassert(isequal(scrabble_scores_4_rev(words,mult),score))\r\n\r\n%%\r\nwords = {'perspicacious','yes','zero','quizzical','no'};\r\nmult = {'t   t   T   Q','   ','t   ','t   t  T ','  '};\r\nscore = 671;\r\nassert(isequal(scrabble_scores_4_rev(words,mult),score))\r\n\r\n%% pangram test to help ensure letters scores are correctly assigned\r\nwords = {'the','quick','brown','fox','jumps','over','a','lazy','dog'};\r\nmult = {'t  ',' t   ','T   Q','   ','t   q','t   ','t','  T ','  Q'};\r\nscore = 278;\r\nassert(isequal(scrabble_scores_4_rev(words,mult),score))\r\n\r\n%% anti-cheating case\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\twords = {'hello','there','fellow','matlab','users'};\r\n\t\tmult = {'D   d','D   d',' D   d',' D   d','D   d'};\r\n\t\tscore = 106;\r\n\tcase 2\r\n\t\twords = {'if','you','like','it','please','give','it','a','like'};\r\n\t\tmult = {' D','  Q',' D  ','  ',' D  t ',' D  ','t ',' ','D  t'};\r\n\t\tscore = 113;\r\n\tcase 3\r\n\t\twords = {'heterogeneous','homogenously','concatenate','thusly','hi'};\r\n\t\tmult = {'t   t   T   Q','   t   T   Q','t   t   T  ','t   t ','  '};\r\n\t\tscore = 690;\r\n\tcase 4\r\n\t\twords = {'the','quick','brown','fox','jumps','over','a','lazy','dog'};\r\n\t\tmult = {'t  ',' t   ','T   Q','   ','t   q','t   ','t','  T ','  Q'};\r\n\t\tscore = 278;\r\nend\r\nassert(isequal(scrabble_scores_4_rev(words,mult),score))\r\n\r\n%% anti-cheating case\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\twords = {'what','do','you','think','of','this','problem'};\r\n\t\tmult = {' D  ','  ',' D ',' D  t','  ',' D  ','t  D  t'};\r\n\t\tscore = 148;\r\n\tcase 2\r\n\t\twords = {'perspicacious','yes','zero','quizzical','no'};\r\n\t\tmult = {'t   t   T   Q','   ','t   ','t   t  T ','  '};\r\n\t\tscore = 671;\r\n\tcase 3\r\n\t\twords = {'heterogeneous','homogenously','concatenate','thusly','hi'};\r\n\t\tmult = {'t   t   T   Q','   t   T   Q','t   t   T  ','t   t ','  '};\r\n\t\tscore = 690;\r\n\tcase 4\r\n\t\twords = {'zither','quandry','flummox','wealthy','amalgam'};\r\n\t\tmult = {' D   D','q    D ',' D   D ',' D   D ',' D   D '};\r\n\t\tscore = 368;\r\nend\r\nassert(isequal(scrabble_scores_4_rev(words,mult),score))","published":true,"deleted":false,"likes_count":1,"comments_count":4,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":34,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":40,"created_at":"2015-03-14T18:10:41.000Z","updated_at":"2026-04-02T20:12:58.000Z","published_at":"2015-03-14T18:10:41.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided here. (Use the English points distribution.)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor this problem, you will be provided with a set of words and the accompanying bonus squares that each word covered. The words will be provided in a cell array of strings. Write a function to calculate the total score for the set of words using the multipliers. The multipliers are as follows:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ * D: double word\\n * T: triple word\\n * Q: quadruple word\\n * d: double letter\\n * t: triple letter\\n * q: quadruple letter]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor those not familiar with quadruple word (Q) and quadruple letter (q), those were introduced in Super Scrabble. Also, remember that the d, t, and q multipliers take effect before the D, T, and Q multipliers. Also, multiple word multipliers can be present, having a cumulative effect (e.g., D \u0026amp; T =\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e *\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e6).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAs an example, if the word were 'matlab' and the multiplier string array was\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[[' ','D',' ',' ',' ','d'] (or ' D   d')]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ethen the score would be (3 + 1 + 1 + 1 + 1 + 2*3)*2 = 26. Each word in the set should be scored in this manner and the total score summed.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRelated problems:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePrevious problem: 3 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3048-scrabble-scores-3\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eSingle-word multiplier scoring\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Next problem: 5 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3050-scrabble-scores-5\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMultiplayer word-set scoring\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":3102,"title":"Rumis Scorer 4","description":"This problem is very similar to \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3101-rumis-scorer-3 Rumis Scorer 3\u003e. The main difference with this problem is that the board will not be completely filled in. In other words, the maximum heights designated by the stencil will not necessarily be occupied. Write a function to count the squares visible when viewed from above to determine who won each round (the stencil may or may not be helpful). See the test suite for additional examples (including test cases 1 and 2, which represent the completed boards shown below).\r\n\r\n\u003c\u003chttp://www.exodusbooks.com/Samples/Games/RumisPisacBig.jpg\u003e\u003e\r\n\r\n\u003c\u003chttp://cf.geekdo-images.com/images/pic1111321_md.jpg\u003e\u003e","description_html":"\u003cp\u003eThis problem is very similar to \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3101-rumis-scorer-3\"\u003eRumis Scorer 3\u003c/a\u003e. The main difference with this problem is that the board will not be completely filled in. In other words, the maximum heights designated by the stencil will not necessarily be occupied. Write a function to count the squares visible when viewed from above to determine who won each round (the stencil may or may not be helpful). See the test suite for additional examples (including test cases 1 and 2, which represent the completed boards shown below).\u003c/p\u003e\u003cimg src = \"http://www.exodusbooks.com/Samples/Games/RumisPisacBig.jpg\"\u003e\u003cimg src = \"http://cf.geekdo-images.com/images/pic1111321_md.jpg\"\u003e","function_template":"function [winner] = rumis_scorer4(board,stencil)\r\n\r\nwinner = '';\r\n\r\nend\r\n","test_suite":"%% first board shown above\r\nclear board stencil\r\nstencil = [\r\n\t1 1 1 1 1 1 1 1;\r\n\t2 2 2 2 2 2 2 2;\r\n\t0 3 3 3 3 3 3 0;\r\n\t0 4 4 4 4 4 4 0;\r\n\t0 0 5 5 5 5 0 0;\r\n\t0 0 6 6 6 6 0 0;\r\n\t0 0 0 7 7 0 0 0;\r\n\t0 0 0 8 8 0 0 0;\r\n\t];\r\nboard(:,:,1) = ['bbbbyyyy';'bbrryyyg';' bbrryy ';' bbryyg ';'  bbgg  ';'  bbbg  ';'   yy   ';'   yb   '];\r\nboard(:,:,2) = ['        ';'bbrryyyg';' brryyg ';' brrygg ';'  bbrg  ';'   bbg  ';'   by   ';'   yy   '];\r\nboard(:,:,3) = ['        ';'        ';' brry g ';' bbrygg ';'  brrg  ';'   brg  ';'   br   ';'   bb   '];\r\nboard(:,:,4) = ['        ';'        ';' b      ';' bb ygg ';'  bryg  ';'   rrg  ';'   rr   ';'   br   '];\r\nboard(:,:,5) = ['        ';'        ';'        ';'        ';'   ggg  ';'   ggy  ';'   gg   ';'   rr   '];\r\nboard(:,:,6) = ['        ';'        ';'        ';'        ';'        ';'   gyy  ';'   gr   ';'   gr   '];\r\nboard(:,:,7) = ['        ';'        ';'        ';'        ';'        ';'        ';'   gg   ';'   gr   '];\r\nboard(:,:,8) = ['        ';'        ';'        ';'        ';'        ';'        ';'        ';'    r   '];\r\n%yellow wins 12 to 11 (g,b) to 6 (r)\r\nassert(isequal(rumis_scorer4(board,stencil),'y'))\r\n\r\n%% second board shown above\r\nclear board stencil\r\nstencil = [\r\n\t2 2 2 2 2 2;\r\n\t3 3 3 3 3 3;\r\n\t4 4 4 4 4 4;\r\n\t5 5 5 5 5 5;\r\n\t5 5 5 5 5 5;\r\n\t5 5 5 5 5 5;\r\n\t5 5 5 5 5 5;\r\n\t4 4 4 4 4 4;\r\n\t3 3 3 3 3 3;\r\n\t2 2 2 2 2 2;\r\n\t];\r\nboard(:,:,1) = ['rrrrbb';'ggrbbb';'ggrrpb';'ggrpbb';'grrppb';'oorrpb';'ooppbb';'ooybbp';'ooyypp';'yyyypp'];\r\nboard(:,:,2) = ['grrr b';'ggrbpb';'ggrrpb';'rrrbpb';'grbbpp';'ooobpb';'ooyyyb';'oooyyb';'oooypp';'yyyypp'];\r\nboard(:,:,3) = ['      ';'ggrbbb';'ggrrpb';'rrrbbb';'grpbbp';'grppbb';'gyyypb';'ogoypb';'ooo pp';'      '];\r\nboard(:,:,4) = ['      ';'      ';'ggrrpb';'rrrbpb';'grpbpp';' rbbbb';' yyybb';'ogoypp';'      ';'      '];\r\nboard(:,:,5) = ['      ';'      ';'      ';'rrrbbb';' rpppp';' r  bb';' y y b';'      ';'      ';'      '];\r\n%blue wins 15 to 11 (r,p) to 9 (y,g) to 5 (o)\r\nassert(isequal(rumis_scorer4(board,stencil),'b'))\r\n\r\n%%\r\nclear board stencil\r\nstencil = [\r\n\t1 2 3 4 4 4 4 4;\r\n\t1 2 3 4 4 4 4 4;\r\n\t1 2 3 4 4 4 4 4;\r\n\t1 2 3 4 4 4 4 4;\r\n\t0 0 0 0 3 3 3 3;\r\n\t0 0 0 0 2 2 2 2;\r\n\t0 0 0 0 1 1 1 1;\r\n\t];\r\nboard(:,:,1) = ['rrbrrbbr';'rbrrbbrb';'bbrrbbrb';'rbrrbrbr';'    brbr';'    rrbr';'    bbbr'];\r\nboard(:,:,2) = ['  brbbrb';' rrbbbbr';' brbbrbr';' brbbrbr';'    rbrb';'    brb ';'        '];\r\nboard(:,:,3) = ['  brbbrr';'   bbbbr';'  rbbrbr';'   brrrr';'    bb r';'        ';'        '];\r\nboard(:,:,4) = ['   rbbr ';'   rbbbr';'   brrbr';'   rbrr ';'        ';'        ';'        '];\r\n%red wins 25 to 19\r\nassert(isequal(rumis_scorer4(board,stencil),'r'))\r\n\r\n%%\r\nclear board stencil\r\nstencil = [\r\n\t1 1 1 1 1 1 1 1;\r\n\t1 2 2 2 2 2 2 1;\r\n\t1 2 3 3 3 3 2 1;\r\n\t1 2 3 4 4 3 2 1;\r\n\t1 2 3 4 4 3 2 1;\r\n\t1 2 3 3 3 3 2 1;\r\n\t1 2 2 2 2 2 2 1;\r\n\t1 1 1 1 1 1 1 1;\r\n\t];\r\nboard(:,:,1) = ['yyyyybrr';'yyrrbbyr';'yryyyrrr';'yryyrrrr';'yyyrrrbb';'yrrrrbbb';'yyrrrgbb';'yyrrgggb'];\r\nboard(:,:,2) = ['        ';' r yb b ';'  yyybb ';'  rygrr ';' ryyggr ';' ggygrr ';' ggyggb ';'        '];\r\nboard(:,:,3) = ['        ';'        ';'  ggy   ';'  gb r  ';'  ggbr  ';'  ggrr  ';'        ';'        '];\r\nboard(:,:,4) = ['        ';'        ';'        ';'   b    ';'   b    ';'        ';'        ';'        '];\r\n%red wins 19 to 16 (y) to 15 (g) to 14 (b)\r\nassert(isequal(rumis_scorer4(board,stencil),'r'))\r\n\r\n%%\r\nclear board stencil\r\nstencil = [\r\n\t0 0 0 0 1 0 0 0 0;\r\n\t0 0 0 1 2 1 0 0 0;\r\n\t0 0 1 2 3 2 1 0 0;\r\n\t0 1 2 3 4 3 2 1 0;\r\n\t1 2 3 4 5 4 3 2 1;\r\n\t0 1 2 3 4 3 2 1 0;\r\n\t0 0 1 2 3 2 1 0 0;\r\n\t0 0 0 1 2 1 0 0 0;\r\n\t0 0 0 0 1 0 0 0 0;\r\n\t];\r\nboard(:,:,1) = ['    o    ';'   oob   ';'  oobbp  ';' obbbppp ';'obboopppo';' oobbbpp ';'  ooooo  ';'   opo   ';'    o    '];\r\nboard(:,:,2) = ['         ';'    o    ';'   bbb   ';'    bbp  ';'  obbppp ';'  obbbp  ';'   bbb   ';'         ';'         '];\r\nboard(:,:,3) = ['         ';'         ';'    b    ';'    bb   ';'  o bbp  ';'     b   ';'         ';'         ';'         '];\r\nboard(:,:,4) = ['         ';'         ';'         ';'    b    ';'    o    ';'         ';'         ';'         ';'         '];\r\nboard(:,:,5) = ['         ';'         ';'         ';'         ';'    o    ';'         ';'         ';'         ';'         '];\r\n%blue wins 17 to 16 (o) to 8 (p)\r\nassert(isequal(rumis_scorer4(board,stencil),'b'))\r\n\r\n%%\r\nclear board stencil\r\nstencil = [\r\n\t2 2 3 3 3 3 2 2;\r\n\t2 2 4 4 4 4 2 2;\r\n\t3 4 5 6 6 5 4 3;\r\n\t3 4 6 7 7 6 4 3;\r\n\t3 4 6 7 7 6 4 3;\r\n\t3 4 5 6 6 5 4 3;\r\n\t2 2 4 4 4 4 2 2;\r\n\t2 2 3 3 3 3 2 2;\r\n\t];\r\nboard(:,:,1) = ['rryyobpg';'ryyyobpg';'ryyoobbg';'rryoobbg';'ryyybbgg';'yyybbggg';'ybbbbggg';'yyyyyggg'];\r\nboard(:,:,2) = ['ryyooopp';'rrryyppp';'rryooogg';'rrrroobb';'ryyybggg';'rybbbbbg';'bgyyyggg';'byygyygg'];\r\nboard(:,:,3) = ['  yyoo  ';'  ryyp  ';'rrroobgg';'rrryobbb';'ryyyoppp';'rrrorybg';' gyybo  ';'  oyb   '];\r\nboard(:,:,4) = ['        ';'  yybp  ';' robop  ';'  gbboo ';' boybo  ';' rbggpp ';'  ybbo  ';'        '];\r\nboard(:,:,5) = ['        ';'        ';'   boo  ';'  ggbb  ';'  oyyy  ';'   ppp  ';'        ';'        '];\r\nboard(:,:,6) = ['        ';'        ';'   oo   ';'  g bb  ';'  ooyy  ';'    p   ';'        ';'        '];\r\nboard(:,:,7) = ['        ';'        ';'        ';'    o   ';'   oy   ';'        ';'        ';'        '];\r\n%orange wins 12 to 11 (y,p) to 10 (r,g,b)\r\nassert(isequal(rumis_scorer4(board,stencil),'o'))\r\n\r\n%% anti-cheating case\r\nind = randi(6);\r\nswitch ind\r\n\tcase 1\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t1 1 1 1 1 1 1 1;\r\n\t\t\t2 2 2 2 2 2 2 2;\r\n\t\t\t0 3 3 3 3 3 3 0;\r\n\t\t\t0 4 4 4 4 4 4 0;\r\n\t\t\t0 0 5 5 5 5 0 0;\r\n\t\t\t0 0 6 6 6 6 0 0;\r\n\t\t\t0 0 0 7 7 0 0 0;\r\n\t\t\t0 0 0 8 8 0 0 0;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['bbbbyyyy';'bbrryyyg';' bbrryy ';' bbryyg ';'  bbgg  ';'  bbbg  ';'   yy   ';'   yb   '];\r\n\t\tboard(:,:,2) = ['        ';'bbrryyyg';' brryyg ';' brrygg ';'  bbrg  ';'   bbg  ';'   by   ';'   yy   '];\r\n\t\tboard(:,:,3) = ['        ';'        ';' brry g ';' bbrygg ';'  brrg  ';'   brg  ';'   br   ';'   bb   '];\r\n\t\tboard(:,:,4) = ['        ';'        ';' b      ';' bb ygg ';'  bryg  ';'   rrg  ';'   rr   ';'   br   '];\r\n\t\tboard(:,:,5) = ['        ';'        ';'        ';'        ';'   ggg  ';'   ggy  ';'   gg   ';'   rr   '];\r\n\t\tboard(:,:,6) = ['        ';'        ';'        ';'        ';'        ';'   gyy  ';'   gr   ';'   gr   '];\r\n\t\tboard(:,:,7) = ['        ';'        ';'        ';'        ';'        ';'        ';'   gg   ';'   gr   '];\r\n\t\tboard(:,:,8) = ['        ';'        ';'        ';'        ';'        ';'        ';'        ';'    r   '];\r\n\t\tassert(isequal(rumis_scorer4(board,stencil),'y'))\r\n\tcase 2\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t2 2 2 2 2 2;\r\n\t\t\t3 3 3 3 3 3;\r\n\t\t\t4 4 4 4 4 4;\r\n\t\t\t5 5 5 5 5 5;\r\n\t\t\t5 5 5 5 5 5;\r\n\t\t\t5 5 5 5 5 5;\r\n\t\t\t5 5 5 5 5 5;\r\n\t\t\t4 4 4 4 4 4;\r\n\t\t\t3 3 3 3 3 3;\r\n\t\t\t2 2 2 2 2 2;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['rrrrbb';'ggrbbb';'ggrrpb';'ggrpbb';'grrppb';'oorrpb';'ooppbb';'ooybbp';'ooyypp';'yyyypp'];\r\n\t\tboard(:,:,2) = ['grrr b';'ggrbpb';'ggrrpb';'rrrbpb';'grbbpp';'ooobpb';'ooyyyb';'oooyyb';'oooypp';'yyyypp'];\r\n\t\tboard(:,:,3) = ['      ';'ggrbbb';'ggrrpb';'rrrbbb';'grpbbp';'grppbb';'gyyypb';'ogoypb';'ooo pp';'      '];\r\n\t\tboard(:,:,4) = ['      ';'      ';'ggrrpb';'rrrbpb';'grpbpp';' rbbbb';' yyybb';'ogoypp';'      ';'      '];\r\n\t\tboard(:,:,5) = ['      ';'      ';'      ';'rrrbbb';' rpppp';' r  bb';' y y b';'      ';'      ';'      '];\r\n\t\tassert(isequal(rumis_scorer4(board,stencil),'b'))\r\n\tcase 3\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t0 0 0 0 3 3 3 3;\r\n\t\t\t0 0 0 0 2 2 2 2;\r\n\t\t\t0 0 0 0 1 1 1 1;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['rrbrrbbr';'rbrrbbrb';'bbrrbbrb';'rbrrbrbr';'    brbr';'    rrbr';'    bbbr'];\r\n\t\tboard(:,:,2) = ['  brbbrb';' rrbbbbr';' brbbrbr';' brbbrbr';'    rbrb';'    brb ';'        '];\r\n\t\tboard(:,:,3) = ['  brbbrr';'   bbbbr';'  rbbrbr';'   brrrr';'    bb r';'        ';'        '];\r\n\t\tboard(:,:,4) = ['   rbbr ';'   rbbbr';'   brrbr';'   rbrr ';'        ';'        ';'        '];\r\n\t\tassert(isequal(rumis_scorer4(board,stencil),'r'))\r\n\tcase 4\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t1 1 1 1 1 1 1 1;\r\n\t\t\t1 2 2 2 2 2 2 1;\r\n\t\t\t1 2 3 3 3 3 2 1;\r\n\t\t\t1 2 3 4 4 3 2 1;\r\n\t\t\t1 2 3 4 4 3 2 1;\r\n\t\t\t1 2 3 3 3 3 2 1;\r\n\t\t\t1 2 2 2 2 2 2 1;\r\n\t\t\t1 1 1 1 1 1 1 1;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['yyyyybrr';'yyrrbbyr';'yryyyrrr';'yryyrrrr';'yyyrrrbb';'yrrrrbbb';'yyrrrgbb';'yyrrgggb'];\r\n\t\tboard(:,:,2) = ['        ';' r yb b ';'  yyybb ';'  rygrr ';' ryyggr ';' ggygrr ';' ggyggb ';'        '];\r\n\t\tboard(:,:,3) = ['        ';'        ';'  ggy   ';'  gb r  ';'  ggbr  ';'  ggrr  ';'        ';'        '];\r\n\t\tboard(:,:,4) = ['        ';'        ';'        ';'   b    ';'   b    ';'        ';'        ';'        '];\r\n\t\tassert(isequal(rumis_scorer4(board,stencil),'r'))\r\n\tcase 5\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t0 0 0 0 1 0 0 0 0;\r\n\t\t\t0 0 0 1 2 1 0 0 0;\r\n\t\t\t0 0 1 2 3 2 1 0 0;\r\n\t\t\t0 1 2 3 4 3 2 1 0;\r\n\t\t\t1 2 3 4 5 4 3 2 1;\r\n\t\t\t0 1 2 3 4 3 2 1 0;\r\n\t\t\t0 0 1 2 3 2 1 0 0;\r\n\t\t\t0 0 0 1 2 1 0 0 0;\r\n\t\t\t0 0 0 0 1 0 0 0 0;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['    o    ';'   oob   ';'  oobbp  ';' obbbppp ';'obboopppo';' oobbbpp ';'  ooooo  ';'   opo   ';'    o    '];\r\n\t\tboard(:,:,2) = ['         ';'    o    ';'   bbb   ';'    bbp  ';'  obbppp ';'  obbbp  ';'   bbb   ';'         ';'         '];\r\n\t\tboard(:,:,3) = ['         ';'         ';'    b    ';'    bb   ';'  o bbp  ';'     b   ';'         ';'         ';'         '];\r\n\t\tboard(:,:,4) = ['         ';'         ';'         ';'    b    ';'    o    ';'         ';'         ';'         ';'         '];\r\n\t\tboard(:,:,5) = ['         ';'         ';'         ';'         ';'    o    ';'         ';'         ';'         ';'         '];\r\n\t\tassert(isequal(rumis_scorer4(board,stencil),'b'))\r\n\tcase 6\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t2 2 3 3 3 3 2 2;\r\n\t\t\t2 2 4 4 4 4 2 2;\r\n\t\t\t3 4 5 6 6 5 4 3;\r\n\t\t\t3 4 6 7 7 6 4 3;\r\n\t\t\t3 4 6 7 7 6 4 3;\r\n\t\t\t3 4 5 6 6 5 4 3;\r\n\t\t\t2 2 4 4 4 4 2 2;\r\n\t\t\t2 2 3 3 3 3 2 2;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['rryyobpg';'ryyyobpg';'ryyoobbg';'rryoobbg';'ryyybbgg';'yyybbggg';'ybbbbggg';'yyyyyggg'];\r\n\t\tboard(:,:,2) = ['ryyooopp';'rrryyppp';'rryooogg';'rrrroobb';'ryyybggg';'rybbbbbg';'bgyyyggg';'byygyygg'];\r\n\t\tboard(:,:,3) = ['  yyoo  ';'  ryyp  ';'rrroobgg';'rrryobbb';'ryyyoppp';'rrrorybg';' gyybo  ';'  oyb   '];\r\n\t\tboard(:,:,4) = ['        ';'  yybp  ';' robop  ';'  gbboo ';' boybo  ';' rbggpp ';'  ybbo  ';'        '];\r\n\t\tboard(:,:,5) = ['        ';'        ';'   boo  ';'  ggbb  ';'  oyyy  ';'   ppp  ';'        ';'        '];\r\n\t\tboard(:,:,6) = ['        ';'        ';'   oo   ';'  g bb  ';'  ooyy  ';'    p   ';'        ';'        '];\r\n\t\tboard(:,:,7) = ['        ';'        ';'        ';'    o   ';'   oy   ';'        ';'        ';'        '];\r\n\t\tassert(isequal(rumis_scorer4(board,stencil),'o'))\r\nend\r\n\r\n%% anti-cheating case\r\nind = randi(6);\r\nswitch ind\r\n\tcase 1\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t1 1 1 1 1 1 1 1;\r\n\t\t\t2 2 2 2 2 2 2 2;\r\n\t\t\t0 3 3 3 3 3 3 0;\r\n\t\t\t0 4 4 4 4 4 4 0;\r\n\t\t\t0 0 5 5 5 5 0 0;\r\n\t\t\t0 0 6 6 6 6 0 0;\r\n\t\t\t0 0 0 7 7 0 0 0;\r\n\t\t\t0 0 0 8 8 0 0 0;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['bbbbyyyy';'bbrryyyg';' bbrryy ';' bbryyg ';'  bbgg  ';'  bbbg  ';'   yy   ';'   yb   '];\r\n\t\tboard(:,:,2) = ['        ';'bbrryyyg';' brryyg ';' brrygg ';'  bbrg  ';'   bbg  ';'   by   ';'   yy   '];\r\n\t\tboard(:,:,3) = ['        ';'        ';' brry g ';' bbrygg ';'  brrg  ';'   brg  ';'   br   ';'   bb   '];\r\n\t\tboard(:,:,4) = ['        ';'        ';' b      ';' bb ygg ';'  bryg  ';'   rrg  ';'   rr   ';'   br   '];\r\n\t\tboard(:,:,5) = ['        ';'        ';'        ';'        ';'   ggg  ';'   ggy  ';'   gg   ';'   rr   '];\r\n\t\tboard(:,:,6) = ['        ';'        ';'        ';'        ';'        ';'   gyy  ';'   gr   ';'   gr   '];\r\n\t\tboard(:,:,7) = ['        ';'        ';'        ';'        ';'        ';'        ';'   gg   ';'   gr   '];\r\n\t\tboard(:,:,8) = ['        ';'        ';'        ';'        ';'        ';'        ';'        ';'    r   '];\r\n\t\tassert(isequal(rumis_scorer4(board,stencil),'y'))\r\n\tcase 2\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t2 2 2 2 2 2;\r\n\t\t\t3 3 3 3 3 3;\r\n\t\t\t4 4 4 4 4 4;\r\n\t\t\t5 5 5 5 5 5;\r\n\t\t\t5 5 5 5 5 5;\r\n\t\t\t5 5 5 5 5 5;\r\n\t\t\t5 5 5 5 5 5;\r\n\t\t\t4 4 4 4 4 4;\r\n\t\t\t3 3 3 3 3 3;\r\n\t\t\t2 2 2 2 2 2;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['rrrrbb';'ggrbbb';'ggrrpb';'ggrpbb';'grrppb';'oorrpb';'ooppbb';'ooybbp';'ooyypp';'yyyypp'];\r\n\t\tboard(:,:,2) = ['grrr b';'ggrbpb';'ggrrpb';'rrrbpb';'grbbpp';'ooobpb';'ooyyyb';'oooyyb';'oooypp';'yyyypp'];\r\n\t\tboard(:,:,3) = ['      ';'ggrbbb';'ggrrpb';'rrrbbb';'grpbbp';'grppbb';'gyyypb';'ogoypb';'ooo pp';'      '];\r\n\t\tboard(:,:,4) = ['      ';'      ';'ggrrpb';'rrrbpb';'grpbpp';' rbbbb';' yyybb';'ogoypp';'      ';'      '];\r\n\t\tboard(:,:,5) = ['      ';'      ';'      ';'rrrbbb';' rpppp';' r  bb';' y y b';'      ';'      ';'      '];\r\n\t\tassert(isequal(rumis_scorer4(board,stencil),'b'))\r\n\tcase 3\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t0 0 0 0 3 3 3 3;\r\n\t\t\t0 0 0 0 2 2 2 2;\r\n\t\t\t0 0 0 0 1 1 1 1;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['rrbrrbbr';'rbrrbbrb';'bbrrbbrb';'rbrrbrbr';'    brbr';'    rrbr';'    bbbr'];\r\n\t\tboard(:,:,2) = ['  brbbrb';' rrbbbbr';' brbbrbr';' brbbrbr';'    rbrb';'    brb ';'        '];\r\n\t\tboard(:,:,3) = ['  brbbrr';'   bbbbr';'  rbbrbr';'   brrrr';'    bb r';'        ';'        '];\r\n\t\tboard(:,:,4) = ['   rbbr ';'   rbbbr';'   brrbr';'   rbrr ';'        ';'        ';'        '];\r\n\t\tassert(isequal(rumis_scorer4(board,stencil),'r'))\r\n\tcase 4\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t1 1 1 1 1 1 1 1;\r\n\t\t\t1 2 2 2 2 2 2 1;\r\n\t\t\t1 2 3 3 3 3 2 1;\r\n\t\t\t1 2 3 4 4 3 2 1;\r\n\t\t\t1 2 3 4 4 3 2 1;\r\n\t\t\t1 2 3 3 3 3 2 1;\r\n\t\t\t1 2 2 2 2 2 2 1;\r\n\t\t\t1 1 1 1 1 1 1 1;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['yyyyybrr';'yyrrbbyr';'yryyyrrr';'yryyrrrr';'yyyrrrbb';'yrrrrbbb';'yyrrrgbb';'yyrrgggb'];\r\n\t\tboard(:,:,2) = ['        ';' r yb b ';'  yyybb ';'  rygrr ';' ryyggr ';' ggygrr ';' ggyggb ';'        '];\r\n\t\tboard(:,:,3) = ['        ';'        ';'  ggy   ';'  gb r  ';'  ggbr  ';'  ggrr  ';'        ';'        '];\r\n\t\tboard(:,:,4) = ['        ';'        ';'        ';'   b    ';'   b    ';'        ';'        ';'        '];\r\n\t\tassert(isequal(rumis_scorer4(board,stencil),'r'))\r\n\tcase 5\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t0 0 0 0 1 0 0 0 0;\r\n\t\t\t0 0 0 1 2 1 0 0 0;\r\n\t\t\t0 0 1 2 3 2 1 0 0;\r\n\t\t\t0 1 2 3 4 3 2 1 0;\r\n\t\t\t1 2 3 4 5 4 3 2 1;\r\n\t\t\t0 1 2 3 4 3 2 1 0;\r\n\t\t\t0 0 1 2 3 2 1 0 0;\r\n\t\t\t0 0 0 1 2 1 0 0 0;\r\n\t\t\t0 0 0 0 1 0 0 0 0;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['    o    ';'   oob   ';'  oobbp  ';' obbbppp ';'obboopppo';' oobbbpp ';'  ooooo  ';'   opo   ';'    o    '];\r\n\t\tboard(:,:,2) = ['         ';'    o    ';'   bbb   ';'    bbp  ';'  obbppp ';'  obbbp  ';'   bbb   ';'         ';'         '];\r\n\t\tboard(:,:,3) = ['         ';'         ';'    b    ';'    bb   ';'  o bbp  ';'     b   ';'         ';'         ';'         '];\r\n\t\tboard(:,:,4) = ['         ';'         ';'         ';'    b    ';'    o    ';'         ';'         ';'         ';'         '];\r\n\t\tboard(:,:,5) = ['         ';'         ';'         ';'         ';'    o    ';'         ';'         ';'         ';'         '];\r\n\t\tassert(isequal(rumis_scorer4(board,stencil),'b'))\r\n\tcase 6\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t2 2 3 3 3 3 2 2;\r\n\t\t\t2 2 4 4 4 4 2 2;\r\n\t\t\t3 4 5 6 6 5 4 3;\r\n\t\t\t3 4 6 7 7 6 4 3;\r\n\t\t\t3 4 6 7 7 6 4 3;\r\n\t\t\t3 4 5 6 6 5 4 3;\r\n\t\t\t2 2 4 4 4 4 2 2;\r\n\t\t\t2 2 3 3 3 3 2 2;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['rryyobpg';'ryyyobpg';'ryyoobbg';'rryoobbg';'ryyybbgg';'yyybbggg';'ybbbbggg';'yyyyyggg'];\r\n\t\tboard(:,:,2) = ['ryyooopp';'rrryyppp';'rryooogg';'rrrroobb';'ryyybggg';'rybbbbbg';'bgyyyggg';'byygyygg'];\r\n\t\tboard(:,:,3) = ['  yyoo  ';'  ryyp  ';'rrroobgg';'rrryobbb';'ryyyoppp';'rrrorybg';' gyybo  ';'  oyb   '];\r\n\t\tboard(:,:,4) = ['        ';'  yybp  ';' robop  ';'  gbboo ';' boybo  ';' rbggpp ';'  ybbo  ';'        '];\r\n\t\tboard(:,:,5) = ['        ';'        ';'   boo  ';'  ggbb  ';'  oyyy  ';'   ppp  ';'        ';'        '];\r\n\t\tboard(:,:,6) = ['        ';'        ';'   oo   ';'  g bb  ';'  ooyy  ';'    p   ';'        ';'        '];\r\n\t\tboard(:,:,7) = ['        ';'        ';'        ';'    o   ';'   oy   ';'        ';'        ';'        '];\r\n\t\tassert(isequal(rumis_scorer4(board,stencil),'o'))\r\nend\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":25,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2015-03-21T03:35:46.000Z","updated_at":"2025-11-03T11:20:28.000Z","published_at":"2015-03-21T03:35:45.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/media/image1.JPEG\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/media/image1.png\"}],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem is very similar to\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3101-rumis-scorer-3\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eRumis Scorer 3\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. The main difference with this problem is that the board will not be completely filled in. In other words, the maximum heights designated by the stencil will not necessarily be occupied. Write a function to count the squares visible when viewed from above to determine who won each round (the stencil may or may not be helpful). See the test suite for additional examples (including test cases 1 and 2, which represent the completed boards shown below).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId2\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"},{\"partUri\":\"/media/image1.JPEG\",\"contentType\":\"image/JPEG\",\"content\":\"data:image/JPEG;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAIqAoEDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKhnuobdS0jhQPU1yGu/ELTdLUqsoeTsq8k0Budk8qRjLsAPeq/8AaVpu2+eufrXh2r+PdX1RiID9niPc8tWE2p6jkMLybd67qwliacWdlPA1pq9rep9LJKkgyjAj2p9eE6F4+1LSmVbwmaL+8Oo/CvU9D8XafrEKmOZdx7ZrSE4zV4nNUpzpu0lY6OikVlcZU5FLVkBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABUN3L5Ns8noKmqlq3/ACDJv92gDw7xX4uv7/U7i1imMMEbbSVPLf4VzkMKOS4JLHqWOSaZqIJ1W8/66mo1LR8qa8mvOUpNXPp8DhacaUZpatF0RAClCjHNQpdjb8/GKhmvAvIPFYJNnVKNmW2VApyeagS6ls5RNaytE4/iBxn61nPfMzYQE+9IA8gy7HHpWsbxd7mU6Uais1c9k+H/AI1l1SU2dycyIB83Y16gOQDXzz8Ovk8TKBwNv9a+hV+4PpXqUZOUE2fN4qmqdaUI7IWiiitDnCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKpat/wAgyb/dq7VLVv8AkGTf7tAHzPf86vej/pqaQr8opNQP/E4vR/02NN38Yrxa6/eP1Pr8C/3EfRDbg7YSKypmYuq54HatG4lHl1lSSASA1dJGlZl6NFGKnJwKoxz88mrHmhhSlF3Jg1Y674dnPidf93+tfQy/cH0r53+HJB8Tqf8AZ/rX0Qv3B9K9Kh/DR8zjv94l/XQWiiitjkCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooqGe5it0LyOAB60ATVjeINTtrTTJvNkUfL61zHiH4gwWpa3sv3s3TC9vqa801bVL7VHZ72Usp6Rj7o/xrKpWjDfcTkkctqF+h1G7mAJV5CVPqKp/wBoeZ0q7fxrMdrKPqKxpbKSEkxnctcS5Ztt7s9rC46KjGHYsvcFlPeqsj9OaiWbAIYEH3qOVxwc1ooWOydZSV0ywsp3VN9q2Dms/wAznjmp4reSVvn+UGnKK6mUsVGmtWdBoOvtouqQ3qKzgcOF9K9/8N+PtM1qBNsyh8YIJ5FfP+mQwwghgDV8WcYkWa1laCXsyHFOFdR0toeFiK6qVXLufUEcySqGRgQfSn14HonxB1TQ5lg1ANNCOPMX+or1fQvGWnazCrRzKWPbNdUZqSuiE7nS0UiurjKnIpaoAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigCjqt+mnWbzOcADNeOa94n1DV5GCyNFbHoFPzMP6V6L8QHKeHZipwdpryQFfssYB52jNcONrypcqj1Im2loVAQowFwKinkOzireR3qvLCWX5cEVwc6ZgnqYsyljVR+BzzWlPHgnOaoSJ1wK2i7msZWKcsccwwyYPrVCXTiZMJLlc/lWk0bMPao9mDiuiMrbGyrzStcghsFTBHze9WhG24ZpYwV5Gc/SrKDdjjmok2ZyqN7li1T5T3NXkHy46Gq0IAQ4/KpmmVUznms7sxbLBTKjdz7mq6u1hP9ospmimHPyng/UVG1yzcDgVHvAjYnnimuZaoIt3PfvAWrzavocMs5HmFBux611tcB8K1/wCKchb1UGu/r1FsdIUUUUwCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKRmCjJOBWHq/iiw0qJjJMu4ds0AbbOqDLEAVCt9bM20Srn6155c6rrmvk+QDZWp/jkHzsPZf8aYdFZYgYL64S4XnzS2cn3HT8sV5dfOMJRnyOV35a2NI0pSVz00EEZBzS15xa+KdT0RxHqsPmQD/l4i5XHv6V2em69ZalErwzKc+9ehSrU60eem7ohprRmL8Q/wDkXJ/9w141C48pOe1eyfEIg+G5sH+A14rCcQp7iuHMFfl+ZnMtE54FJypytNVsDnpQG5zmvNSM2hkqpM+1l21UlsBglcEVbPzOT/k005Uk5rVNoztbYxntiGIxgUwQLu6VrviXqOagktnX5gM1sp9w5iiIQDhR2qVUC88YoLBM5P4VExLN/s1aTY7tkxlVELAAntUPmF1DN94jpSXB2wcDmoVbMa+taKKBIsZ4HtUczFIXbttpykBeaiuXb7LKfRapIrqe/fC9Nvhi2/65j+VdzXHfDmPZ4bgH+wK7GvQOgKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAprttQt6CnVFc/wDHtJ/umgDitY1bUdRuZLXT3WKNDtkmbnafQDuapWeh21vIJ5S1zc/89ZuSPoOg/CmaKxafU8nn7Wf/AEBa1x1NfDZxmOIlXnQ5rRXRfqddKmrJhtApCmad1OKCMYFeIpG5E0QcEEAj0NZM+gIshuNOlazn6/J9wn3X/DFbfSm4Jz2rooYmrQlzUnZicVJanBeKdW8Rtp7WE9qHVhjzo2yCP51xkepRK4hmUow45Fe0SojKQygj3FcnrfhG01LcyL5UnYqK92Gcqs1GuvmjCeEbV4s5UqAgYHINV3YqTUN7pOr6I7ZR5YQeD7VWg1KOcFZPkbHc13wipLmi7o4JwlB2ki4rtknNK0mR1qsWAPB/Wonkx3rRRuzJstBwCD1xVi7uvMtiVAUgc4rLEueQac837kiq9nqjNsqryCT1NKSCCemKjz8wOTRuzkDpXVY1FuB+561EoIQYolf5Cp6duaqTXix4VAXfpx2qknsBeV8KSxAA9ap3V2GhdYwWB4LU2G2nmfM7EA87Qalu4xHbKijALD+dUrJlRWp9MeAl2+HYB/siuprm/BS7fD8H+6K6Suw3CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKiuf+PaT/AHTUtRXP/HtJ/umgDznRP9dqf/X4f/QFrXU5asfRf9bqf/X4f/QFrXU881+c5r/vtT1O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\"},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAADAFBMVEV4eHiTk5P29vaBgYGcnJzAwMC3t7eKiorS0tLt7e3b29vk5OTJycn///9vb28AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD61b95AAAAyklEQVR42q2SSQ6FIAxAWzQxkcj976lEE5R+hojQOmw+Cxa8RwcoGnhf6oNDD0AvGL8j/E2wC+JiXwSaAKbbatGkLjBrX13szynmtPXnKc2eCRiMGQtXxrq2hmZRuuXx6SVdPlPpopeC387sFMMIwdsyAMFAEcHuptW5oIaKYgjHBBoZ512snMeJ8g7o0DmA5jwKXRdqy9W6gfMzhd7iMOySlxq0qn/z4leR43HNQ8WrLtYi1Dz+pnjsmt/8ZsulwLgQOOeC4EyQHH5z1GUZiLNTtwAAAABJRU5ErkJggg==\"}]}"},{"id":3097,"title":"Scrabble Scores - 12","description":"This problem builds directly off of Scrabble Scores - 10. Here, you are provided an existing word on the board from which you will play a word. The letter can reside anywhere (first to last) within the existing word and within the word that you are playing. Write a function to find the highest scoring word, provided any letter from the existing word that you are building off of and the letters on your tray.\r\nRather than having to test all the possible permutations against a dictionary, you will be provided a double-level cell array of strings containing all possible words based each starting letter in the existing word and the letters on your tray (a cell array for each letter in the existing word). (The word lists purposefully omit smaller words to prevent the test cases from being too large.) In addition to providing the highest score, also provide the word(s) that achieve that score in a cell array. See the test suite for examples. Due to high-scoring tiles, the highest score may not be achieved by the longest word(s).\r\nRelated problems:\r\nPrevious problem: 11 - Word score optimization (known letter \u0026 multipliers). Next problem: 13 - Word score optimization (first word \u0026 multipliers).","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 279px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 139.5px; transform-origin: 407px 139.5px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 84px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 42px; text-align: left; transform-origin: 384px 42px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 104px 8px; transform-origin: 104px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThis problem builds directly off of\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/3082-scrabble-scores-10\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eScrabble Scores - 10\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 209px 8px; transform-origin: 209px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e. Here, you are provided an existing word on the board from which you will play a word. The letter can reside anywhere (first to last) within the existing word and within the word that you are playing. Write a function to find the highest scoring word, provided any letter from the existing word that you are building off of and the letters on your tray.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 105px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 52.5px; text-align: left; transform-origin: 384px 52.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 382.5px 8px; transform-origin: 382.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eRather than having to test all the possible permutations against a dictionary, you will be provided a double-level cell array of strings containing all possible words based each starting letter in the existing word and the letters on your tray (a cell array for each letter in the existing word). (The word lists purposefully omit smaller words to prevent the test cases from being too large.) In addition to providing the highest score, also provide the word(s) that achieve that score in a cell array. See the test suite for examples. Due to high-scoring tiles, the highest score may not be achieved by the longest word(s).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 57.5px 8px; transform-origin: 57.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eRelated problems:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 71px 8px; transform-origin: 71px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003ePrevious problem: 11 -\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/3084-scrabble-scores-11\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eWord score optimization (known letter \u0026amp; multipliers)\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 61.5px 8px; transform-origin: 61.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e. Next problem: 13 -\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/3098-scrabble-scores-13\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eWord score optimization (first word \u0026amp; multipliers)\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function [score,max_word] = scrabble_scores_12(words, first_word)\r\n\r\nscore = 0;\r\nmax_word = {''};\r\n\r\nend\r\n","test_suite":"%%\r\nfirst_word = 'start'; %the starting word; the new word must be played off of a letter in this word\r\ntray_letters = 'aethilm'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including each letter of the starting word combined with your tray letters\r\nclear words\r\nwords{1} = {'aisle','alist','almeh','almes','amies','email','emits','haems','haets','hails','hales','halms','halts','hames','haste','hates','heals','heats','heils','heist','helms','hemal','hilts','islet','istle','items','laith','lames','lathe','lathi','laths','leash','least','limas','limes','litas','lites','lithe','maile','mails','maist','males','malts','mates','maths','meals','meats','melts','metal','meths','metis','miles','milts','mites','saith','salmi','satem','selah','setal','shale','shalt','shame','sheal','shiel','slate','slime','smalt','smelt','smile','smite','smith','stale','steal','steam','stela','stile','stime','taels','tails','tales','tames','tamis','teals','teams','telia','tesla','thali','tiles','times','almehs','emails','halest','halite','hamlet','haslet','hiemal','lamest','lathes','lathis','latish','mailes','mashie','mesial','metals','misate','miseat','saithe','saltie','samiel','samite','samlet','sheila','shelta','smalti','stelai','tahsil','thalis','theism','atheism','halites','hamlets','heliast'};\r\nwords{2} = {'almeh','atilt','email','hemal','laith','lathe','lathi','latte','lithe','maile','matte','metal','telia','thali','theta','tilth','tithe','title','halite','hamlet','hiemal'};\r\nwords{3} = {'alate','almah','almeh','email','halma','hamal','hemal','laith','lamia','lathe','lathi','lithe','maile','metal','tamal','telia','thali','althea','haemal','halite','hamate','hamlet','hiatal','hiemal','lamiae','malate','maltha','meatal','tamale','hematal','thalami'};\r\nwords{4} = {'aimer','airth','alert','almeh','alter','amrit','ariel','armet','artel','earth','email','haler','harem','hater','heart','hemal','herma','hilar','ihram','irate','ither','laith','lamer','later','lathe','lathi','liter','lithe','litre','maile','mater','merit','metal','miler','mirth','miter','mitre','ramet','ramie','ratel','rathe','realm','relit','remit','retia','taler','tamer','telia','terai','thali','tharm','their','therm','thirl','tiler','timer','trail','trial','armlet','hailer','halier','halite','halter','hamlet','hermai','hermit','hiemal','imaret','lather','lither','mailer','matier','milter','mither','mitral','ramtil','remail','retail','retial','tailer','thairm','thaler','thiram','tramel','lathier','maltier','marlite','thermal'};\r\nwords{5} = {'almeh','atilt','email','hemal','laith','lathe','lathi','latte','lithe','maile','matte','metal','telia','thali','theta','tilth','tithe','title','halite','hamlet','hiemal'};\r\nmax_score_corr = 12;\r\nmax_word_corr = {'atheism','hamlets','hematal','thalami','thermal'};\r\n[max_score,max_word] = scrabble_scores_12(words,first_word);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n%%\r\nfirst_word = 'thinning'; %the starting word; the new word must be played off of a letter in this word\r\ntray_letters = 'eodnirl'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including each letter of the starting word combined with your tray letters\r\nclear words\r\nwords{1} = {'diner','doter','droit','drone','elint','eloin','enrol','ident','idler','indol','inert','inlet','inter','intro','irone','lento','lined','liner','lirot','liter','litre','loden','loner','nerol','niter','nitre','nitro','noted','noter','oiled','oiler','olden','older','oldie','olein','oriel','redon','relit','reoil','riled','ronde','teind','teloi','tenor','tilde','tiled','tiler','tined','tired','toile','toled','tondi','toned','toner','trend','tried','trine','triol','trode','trone','dentil','dinero','dotier','editor','entoil','indole','ironed','linted','linter','loiter','neroli','norite','orient','retold','rident','rioted','rodent','roiled','rondel','tinder','tirled','toiled','toiler','tonier','trined','triode','lentoid','retinol','tendril','trindle'};\r\nwords{2} = {'dhole','diner','drone','eloin','enrol','helio','heron','hider','hired','holed','honed','honer','horde','idler','indol','irone','lined','liner','loden','loner','nerol','oiled','oiler','olden','older','oldie','olein','oriel','redon','reoil','rhino','riled','ronde','dehorn','dinero','heroin','hinder','hoiden','holden','holder','holier','hondle','honied','horned','indole','ironed','neroli','roiled','rondel','hordein','inholder'};\r\nwords{3} = {'diner','drone','eloin','enrol','idler','indie','indol','indri','iodin','irone','lined','liner','loden','loner','nerol','oiled','oiler','olden','older','oldie','olein','oriel','redon','reoil','riled','ronde','dinero','indole','inlier','iodine','ironed','linier','neroli','oilier','roiled','rondel'};\r\nwords{4} = {'diner','donne','drone','eloin','enrol','idler','indol','inned','inner','irone','lined','linen','liner','loden','loner','nerol','niner','oiled','oiler','olden','older','oldie','olein','oriel','redon','renin','reoil','riled','ronde','ronin','dinero','dinner','endrin','indole','ironed','linden','neroli','online','roiled','rondel','ronnel'};\r\nwords{4} = {'diner','donne','drone','eloin','enrol','idler','indol','inned','inner','irone','lined','linen','liner','loden','loner','nerol','niner','oiled','oiler','olden','older','oldie','olein','oriel','redon','renin','reoil','riled','ronde','ronin','dinero','dinner','endrin','indole','ironed','linden','neroli','online','roiled','rondel','ronnel'};\r\nwords{3} = {'diner','drone','eloin','enrol','idler','indie','indol','indri','iodin','irone','lined','liner','loden','loner','nerol','oiled','oiler','olden','older','oldie','olein','oriel','redon','reoil','riled','ronde','dinero','indole','inlier','iodine','ironed','linier','neroli','oilier','roiled','rondel'};\r\nwords{4} = {'diner','donne','drone','eloin','enrol','idler','indol','inned','inner','irone','lined','linen','liner','loden','loner','nerol','niner','oiled','oiler','olden','older','oldie','olein','oriel','redon','renin','reoil','riled','ronde','ronin','dinero','dinner','endrin','indole','ironed','linden','neroli','online','roiled','rondel','ronnel'};\r\nwords{8} = {'deign','diner','dinge','dingo','dirge','dogie','doing','drone','eloin','enrol','gelid','genro','geoid','giron','glide','goner','gored','gride','grind','groin','idler','indol','ingle','irone','liger','lined','liner','lingo','loden','lodge','login','loner','longe','nerol','ogled','ogler','oiled','oiler','olden','older','oldie','olein','oriel','redon','reign','renig','reoil','ridge','riled','ronde','dinero','dinger','dingle','doling','dongle','eloign','engild','engird','eringo','gilder','girdle','girned','glider','golden','golder','ignore','indole','ironed','legion','linger','lodger','logier','longed','longer','neroli','reding','regild','region','ridgel','ringed','roiled','rondel','eroding','glenoid','gloried','godlier','groined','ignored','lording','negroid','redoing'};\r\nmax_score_corr = 12;\r\nmax_word_corr = {'inholder'};\r\n[max_score,max_word] = scrabble_scores_12(words,first_word);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n%%\r\nfirst_word = 'novels'; %the starting word; the new word must be played off of a letter in this word\r\ntray_letters = 'dmvxeao'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including each letter of the starting word combined with your tray letters\r\nclear words\r\nwords{1} = {'ad','ae','am','an','ax','da','de','do','ed','em','en','ex','ma','me','mo','na','ne','no','od','oe','om','on','ox','ado','and','ane','ave','avo','axe','dam','dan','den','dev','dex','doe','dom','don','emo','end','eon','mad','mae','man','max','med','men','moa','mod','mon','nae','nam','nav','nod','nom','oda','ode','oma','one','ova','van','vex','voe','vox','aeon','amen','axed','axon','dame','damn','dean','demo','deva','dome','dona','done','dove','exam','exon','made','mane','mano','mead','mean','mend','meno','moan','mode','move','moxa','name','nave','nema','node','noma','nome','nova','odea','omen','oven','oxen','vane','vena','vend','admen','amend','anode','axmen','axone','daven','demon','devon','doven','maned','maven','maxed','menad','monad','monde','moved','named','nomad','novae','vaned','venom','daemon','moaned'};\r\nwords{2} = {'ad','ae','am','ax','da','de','do','ed','em','ex','ma','me','mo','od','oe','om','ox','ado','ave','avo','axe','dam','dev','dex','doe','dom','emo','mad','mae','max','med','moa','mod','moo','oda','ode','oma','ova','oxo','vex','voe','vox','axed','dame','demo','deva','dome','doom','dove','exam','made','mead','mode','mood','move','moxa','odea','maxed','mooed','moved'};\r\nwords{3} = {'ad','ae','am','ax','da','de','do','ed','em','ex','ma','me','mo','od','oe','om','ox','ado','ave','avo','axe','dam','dev','dex','doe','dom','emo','mad','mae','max','med','moa','mod','oda','ode','oma','ova','vav','vex','voe','vox','axed','dame','demo','deva','dome','dove','exam','made','mead','mode','move','moxa','odea','maxed','moved'};\r\nwords{4} = {'ad','ae','am','ax','da','de','do','ed','em','ex','ma','me','mo','od','oe','om','ox','ado','ave','avo','axe','dam','dee','dev','dex','doe','dom','eme','emo','eve','mad','mae','max','med','moa','mod','oda','ode','oma','ova','vee','vex','voe','vox','axed','dame','deem','deme','demo','deva','dome','dove','eave','exam','exed','made','mead','meed','mode','move','moxa','odea','adeem','deave','eaved','edema','evade','maxed','moved','vexed','oedema'};\r\nwords{5} = {'ad','ae','al','am','ax','da','de','do','ed','el','em','ex','la','lo','ma','me','mo','od','oe','om','ox','ado','ale','ave','avo','axe','dal','dam','del','dev','dex','doe','dol','dom','eld','elm','emo','lad','lam','lav','lax','lea','led','lev','lex','lox','mad','mae','max','med','mel','moa','mod','mol','oda','ode','old','ole','oma','ova','vex','voe','vox','alme','aloe','axed','axel','axle','dale','dame','deal','demo','deva','dole','dome','dove','exam','lade','lame','lave','lead','leva','levo','load','loam','lode','love','made','male','mead','meal','meld','mode','mola','mold','mole','move','moxa','odea','olde','olea','oval','vale','veal','vela','veld','vole','amole','axled','dolma','domal','laevo','lamed','laved','loved','loxed','maxed','medal','modal','model','moved','voled','voxel','loamed'};\r\nwords{6} = {'ad','ae','am','as','ax','da','de','do','ed','em','es','ex','ma','me','mo','od','oe','om','os','ox','so','ado','ads','ave','avo','axe','dam','das','dev','dex','doe','dom','dos','eds','emo','ems','mad','mae','mas','max','med','moa','mod','mos','oda','ode','ods','oes','oma','oms','ose','ova','sad','sae','sax','sea','sev','sex','sod','som','sox','vas','vex','voe','vox','ados','aves','avos','axed','axes','dame','dams','demo','deva','devs','does','dome','doms','dosa','dose','dove','emos','exam','made','mads','maes','mead','meds','mesa','moas','mode','mods','move','moxa','odas','odea','odes','omas','oxes','sade','same','save','seam','soda','soma','some','vase','voes','dames','demos','devas','domes','doves','exams','maxed','maxes','meads','modes','moved','moves','moxas','oaves','saved','soave','vadose','vamose','vamosed'};\r\nmax_score_corr = 16;\r\nmax_word_corr = {'vexed'};\r\n[max_score,max_word] = scrabble_scores_12(words,first_word);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n%%\r\nfirst_word = 'zoologist'; %the starting word; the new word must be played off of a letter in this word\r\ntray_letters = 'aehcmdi'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including each letter of the starting word combined with your tray letters\r\nclear words\r\nwords{1} = {'aced','ache','acid','acme','adze','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','cazh','cedi','chad','chai','cham','chem','chez','chia','chid','dace','dame','daze','dice','dime','each','emic','hade','haed','haem','hame','haze','head','hide','hied','iced','idea','idem','mace','mach','made','maid','maze','mead','mech','mica','mice','zeda','ached','aimed','amice','amide','azide','chide','chime','demic','hazed','hemic','maced','mache','maize','mazed','media','medic','miche','chimed','haemic','miched','zaideh'};\r\nwords{2} = {'aced','ache','acid','acme','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','camo','cedi','chad','chai','cham','chao','chem','chia','chid','ciao','coda','code','coed','coma','come','dace','dame','deco','demo','dice','dime','dome','each','echo','emic','hade','haed','haem','hame','head','hide','hied','hoed','homa','home','iced','idea','idem','mace','mach','made','maid','mead','mech','mica','mice','mode','modi','oche','odah','odea','odic','ohed','ohia','ached','aimed','amice','amide','amido','cameo','chemo','chiao','chide','chime','comae','demic','demoi','domic','hemic','homed','homie','maced','mache','macho','mahoe','media','medic','miche','mocha','mochi','ohmic','chimed','codeia','cohead','comade','haemic','hemoid','medico','miched','modica','haemoid'};\r\nwords{2} = {'aced','ache','acid','acme','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','camo','cedi','chad','chai','cham','chao','chem','chia','chid','ciao','coda','code','coed','coma','come','dace','dame','deco','demo','dice','dime','dome','each','echo','emic','hade','haed','haem','hame','head','hide','hied','hoed','homa','home','iced','idea','idem','mace','mach','made','maid','mead','mech','mica','mice','mode','modi','oche','odah','odea','odic','ohed','ohia','ached','aimed','amice','amide','amido','cameo','chemo','chiao','chide','chime','comae','demic','demoi','domic','hemic','homed','homie','maced','mache','macho','mahoe','media','medic','miche','mocha','mochi','ohmic','chimed','codeia','cohead','comade','haemic','hemoid','medico','miched','modica','haemoid'};\r\nwords{4} = {'aced','ache','acid','acme','ahed','ahem','aide','alec','alme','amid','amie','cade','cadi','caid','calm','came','cami','cedi','ceil','chad','chai','cham','chem','chia','chid','clad','clam','dace','dahl','dale','dame','deal','deil','deli','dhal','dial','dice','diel','dime','each','elhi','emic','hade','haed','haem','hail','hale','halm','hame','head','heal','heil','held','helm','hide','hied','hila','iced','idea','idem','idle','ilea','lace','lade','laic','laid','lame','lead','lech','lice','lich','lied','lima','lime','mace','mach','made','maid','mail','male','mead','meal','mech','meld','mica','mice','mild','mile','ached','ailed','aimed','alcid','almeh','amice','amide','camel','chela','chide','chiel','child','chile','chime','clade','claim','clime','decal','demic','email','haled','halid','hemal','hemic','ideal','ileac','laced','laich','lamed','leach','limed','maced','mache','macle','maile','malic','medal','media','medic','melic','miche','milch','calmed','chield','childe','chimed','chimla','haemic','hailed','halide','heliac','hiemal','lamedh','macled','mailed','malice','medial','miched','camelid','claimed','decimal','declaim','medical'};\r\nwords{2} = {'aced','ache','acid','acme','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','camo','cedi','chad','chai','cham','chao','chem','chia','chid','ciao','coda','code','coed','coma','come','dace','dame','deco','demo','dice','dime','dome','each','echo','emic','hade','haed','haem','hame','head','hide','hied','hoed','homa','home','iced','idea','idem','mace','mach','made','maid','mead','mech','mica','mice','mode','modi','oche','odah','odea','odic','ohed','ohia','ached','aimed','amice','amide','amido','cameo','chemo','chiao','chide','chime','comae','demic','demoi','domic','hemic','homed','homie','maced','mache','macho','mahoe','media','medic','miche','mocha','mochi','ohmic','chimed','codeia','cohead','comade','haemic','hemoid','medico','miched','modica','haemoid'};\r\nwords{6} = {'aced','ache','acid','acme','aged','ahed','ahem','aide','amid','amie','cade','cadi','cage','caid','came','cami','cedi','chad','chai','cham','chem','chia','chid','dace','dame','dice','dime','each','egad','emic','gach','gadi','gaed','game','gied','hade','haed','haem','hame','head','hide','hied','iced','idea','idem','mace','mach','made','mage','magi','maid','mead','mech','mega','mica','mice','ached','aimed','amice','amide','cadge','caged','chide','chime','demic','gamed','gamic','hemic','image','maced','mache','magic','media','medic','miche','midge','chimed','degami','gached','haemic','imaged','miched'};\r\nwords{7} = {'aced','ache','acid','acme','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','cedi','chad','chai','cham','chem','chia','chid','dace','dame','dice','dime','each','emic','hade','haed','haem','hame','head','hide','hied','iced','idea','idem','imid','mace','mach','made','maid','mead','mech','mica','mice','midi','ached','aimed','amice','amici','amide','chide','chime','demic','hemic','imide','maced','mache','media','medic','medii','miche','amidic','chimed','haemic','miched'};\r\nwords{8} = {'aced','aces','ache','acid','acme','ahed','ahem','ahis','aide','aids','aims','amid','amie','amis','asci','cade','cadi','cads','caid','came','cami','cams','case','cash','cedi','chad','chai','cham','chem','chia','chid','chis','dace','dahs','dais','dame','dams','dash','desi','dice','dies','dime','dims','disc','dish','each','edhs','emic','hade','haed','haem','haes','hame','hams','head','hems','hide','hied','hies','hims','iced','ices','ichs','idea','idem','ides','mace','mach','macs','made','mads','maes','maid','mash','mead','mech','meds','mesa','mesh','mica','mice','mics','mids','mise','sade','sadi','said','same','scad','scam','seam','semi','shad','sham','shea','shed','shim','sice','side','sidh','sima','ached','aches','acids','acmes','aides','aimed','amice','amide','amids','amies','asdic','ashed','aside','cades','cadis','caids','cames','camis','cased','cedis','chads','chais','chams','chase','chasm','chems','chias','chide','chime','daces','dames','dashi','deash','deism','demic','deshi','dices','dimes','disme','emics','hades','haems','hames','heads','hemic','hides','ideas','maced','maces','mache','machs','maids','meads','mechs','media','medic','mesic','micas','miche','sadhe','saice','shade','shame','shied','sidhe','amices','amides','camise','cashed','chaise','chased','chiasm','chides','chimed','chimes','emdash','haemic','maches','mashed','mashie','medias','medics','miched','miches','sachem','samech','schema','shamed','simcha','chamise','chasmed'};\r\nwords{9} = {'aced','ache','acid','acme','adit','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','cate','cedi','chad','chai','cham','chat','chem','chia','chid','chit','cite','dace','dame','date','dice','diet','dime','dita','dite','each','eath','echt','edit','emic','emit','etch','etic','hade','haed','haem','haet','hame','hate','head','heat','hide','hied','iced','idea','idem','itch','item','mace','mach','made','maid','mate','math','mead','meat','mech','meta','meth','mica','mice','mite','tace','tach','tame','team','tech','thae','them','tide','tied','time','ached','acted','admit','aimed','aitch','amice','amide','cadet','cheat','chide','chime','cited','death','demic','demit','dicta','ditch','edict','ethic','hated','hemic','maced','mache','match','mated','media','medic','miche','tache','tamed','teach','theca','timed','chimed','dacite','detach','haemic','itched','miched','hematic','matched'};\r\nmax_score_corr = 19;\r\nmax_word_corr = {'zaideh'};\r\n[max_score,max_word] = scrabble_scores_12(words,first_word);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n%% anti-cheating test case\r\nind = randi(2);\r\nswitch ind\r\n\tcase 1\r\n\t\tfirst_word = 'start'; %the starting word; the new word must be played off of a letter in this word\r\n\t\ttray_letters = 'aethilm'; %your tray letters; informational (not part of the problem)\r\n\t\t%all possible words, including each letter of the starting word combined with your tray letters\r\n\t\tclear words\r\n\t\twords{1} = {'aisle','alist','almeh','almes','amies','email','emits','haems','haets','hails','hales','halms','halts','hames','haste','hates','heals','heats','heils','heist','helms','hemal','hilts','islet','istle','items','laith','lames','lathe','lathi','laths','leash','least','limas','limes','litas','lites','lithe','maile','mails','maist','males','malts','mates','maths','meals','meats','melts','metal','meths','metis','miles','milts','mites','saith','salmi','satem','selah','setal','shale','shalt','shame','sheal','shiel','slate','slime','smalt','smelt','smile','smite','smith','stale','steal','steam','stela','stile','stime','taels','tails','tales','tames','tamis','teals','teams','telia','tesla','thali','tiles','times','almehs','emails','halest','halite','hamlet','haslet','hiemal','lamest','lathes','lathis','latish','mailes','mashie','mesial','metals','misate','miseat','saithe','saltie','samiel','samite','samlet','sheila','shelta','smalti','stelai','tahsil','thalis','theism','atheism','halites','hamlets','heliast'};\r\n\t\twords{2} = {'almeh','atilt','email','hemal','laith','lathe','lathi','latte','lithe','maile','matte','metal','telia','thali','theta','tilth','tithe','title','halite','hamlet','hiemal'};\r\n\t\twords{3} = {'alate','almah','almeh','email','halma','hamal','hemal','laith','lamia','lathe','lathi','lithe','maile','metal','tamal','telia','thali','althea','haemal','halite','hamate','hamlet','hiatal','hiemal','lamiae','malate','maltha','meatal','tamale','hematal','thalami'};\r\n\t\twords{4} = {'aimer','airth','alert','almeh','alter','amrit','ariel','armet','artel','earth','email','haler','harem','hater','heart','hemal','herma','hilar','ihram','irate','ither','laith','lamer','later','lathe','lathi','liter','lithe','litre','maile','mater','merit','metal','miler','mirth','miter','mitre','ramet','ramie','ratel','rathe','realm','relit','remit','retia','taler','tamer','telia','terai','thali','tharm','their','therm','thirl','tiler','timer','trail','trial','armlet','hailer','halier','halite','halter','hamlet','hermai','hermit','hiemal','imaret','lather','lither','mailer','matier','milter','mither','mitral','ramtil','remail','retail','retial','tailer','thairm','thaler','thiram','tramel','lathier','maltier','marlite','thermal'};\r\n\t\twords{5} = {'almeh','atilt','email','hemal','laith','lathe','lathi','latte','lithe','maile','matte','metal','telia','thali','theta','tilth','tithe','title','halite','hamlet','hiemal'};\r\n\t\tmax_score_corr = 12;\r\n\t\tmax_word_corr = {'atheism','hamlets','hematal','thalami','thermal'};\r\n\tcase 2\r\n\t\tfirst_word = 'thinning'; %the starting word; the new word must be played off of a letter in this word\r\n\t\ttray_letters = 'eodnirl'; %your tray letters; informational (not part of the problem)\r\n\t\t%all possible words, including each letter of the starting word combined with your tray letters\r\n\t\tclear words\r\n\t\twords{1} = {'diner','doter','droit','drone','elint','eloin','enrol','ident','idler','indol','inert','inlet','inter','intro','irone','lento','lined','liner','lirot','liter','litre','loden','loner','nerol','niter','nitre','nitro','noted','noter','oiled','oiler','olden','older','oldie','olein','oriel','redon','relit','reoil','riled','ronde','teind','teloi','tenor','tilde','tiled','tiler','tined','tired','toile','toled','tondi','toned','toner','trend','tried','trine','triol','trode','trone','dentil','dinero','dotier','editor','entoil','indole','ironed','linted','linter','loiter','neroli','norite','orient','retold','rident','rioted','rodent','roiled','rondel','tinder','tirled','toiled','toiler','tonier','trined','triode','lentoid','retinol','tendril','trindle'};\r\n\t\twords{2} = {'dhole','diner','drone','eloin','enrol','helio','heron','hider','hired','holed','honed','honer','horde','idler','indol','irone','lined','liner','loden','loner','nerol','oiled','oiler','olden','older','oldie','olein','oriel','redon','reoil','rhino','riled','ronde','dehorn','dinero','heroin','hinder','hoiden','holden','holder','holier','hondle','honied','horned','indole','ironed','neroli','roiled','rondel','hordein','inholder'};\r\n\t\twords{3} = {'diner','drone','eloin','enrol','idler','indie','indol','indri','iodin','irone','lined','liner','loden','loner','nerol','oiled','oiler','olden','older','oldie','olein','oriel','redon','reoil','riled','ronde','dinero','indole','inlier','iodine','ironed','linier','neroli','oilier','roiled','rondel'};\r\n\t\twords{4} = {'diner','donne','drone','eloin','enrol','idler','indol','inned','inner','irone','lined','linen','liner','loden','loner','nerol','niner','oiled','oiler','olden','older','oldie','olein','oriel','redon','renin','reoil','riled','ronde','ronin','dinero','dinner','endrin','indole','ironed','linden','neroli','online','roiled','rondel','ronnel'};\r\n\t\twords{4} = {'diner','donne','drone','eloin','enrol','idler','indol','inned','inner','irone','lined','linen','liner','loden','loner','nerol','niner','oiled','oiler','olden','older','oldie','olein','oriel','redon','renin','reoil','riled','ronde','ronin','dinero','dinner','endrin','indole','ironed','linden','neroli','online','roiled','rondel','ronnel'};\r\n\t\twords{3} = {'diner','drone','eloin','enrol','idler','indie','indol','indri','iodin','irone','lined','liner','loden','loner','nerol','oiled','oiler','olden','older','oldie','olein','oriel','redon','reoil','riled','ronde','dinero','indole','inlier','iodine','ironed','linier','neroli','oilier','roiled','rondel'};\r\n\t\twords{4} = {'diner','donne','drone','eloin','enrol','idler','indol','inned','inner','irone','lined','linen','liner','loden','loner','nerol','niner','oiled','oiler','olden','older','oldie','olein','oriel','redon','renin','reoil','riled','ronde','ronin','dinero','dinner','endrin','indole','ironed','linden','neroli','online','roiled','rondel','ronnel'};\r\n\t\twords{8} = {'deign','diner','dinge','dingo','dirge','dogie','doing','drone','eloin','enrol','gelid','genro','geoid','giron','glide','goner','gored','gride','grind','groin','idler','indol','ingle','irone','liger','lined','liner','lingo','loden','lodge','login','loner','longe','nerol','ogled','ogler','oiled','oiler','olden','older','oldie','olein','oriel','redon','reign','renig','reoil','ridge','riled','ronde','dinero','dinger','dingle','doling','dongle','eloign','engild','engird','eringo','gilder','girdle','girned','glider','golden','golder','ignore','indole','ironed','legion','linger','lodger','logier','longed','longer','neroli','reding','regild','region','ridgel','ringed','roiled','rondel','eroding','glenoid','gloried','godlier','groined','ignored','lording','negroid','redoing'};\r\n\t\tmax_score_corr = 12;\r\n\t\tmax_word_corr = {'inholder'};\r\nend\r\n[max_score,max_word] = scrabble_scores_12(words,first_word);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n%% anti-cheating test case\r\nind = randi(2);\r\nswitch ind\r\n\tcase 1\r\n\t\tfirst_word = 'novels'; %the starting word; the new word must be played off of a letter in this word\r\n\t\ttray_letters = 'dmvxeao'; %your tray letters; informational (not part of the problem)\r\n\t\t%all possible words, including each letter of the starting word combined with your tray letters\r\n\t\tclear words\r\n\t\twords{1} = {'ad','ae','am','an','ax','da','de','do','ed','em','en','ex','ma','me','mo','na','ne','no','od','oe','om','on','ox','ado','and','ane','ave','avo','axe','dam','dan','den','dev','dex','doe','dom','don','emo','end','eon','mad','mae','man','max','med','men','moa','mod','mon','nae','nam','nav','nod','nom','oda','ode','oma','one','ova','van','vex','voe','vox','aeon','amen','axed','axon','dame','damn','dean','demo','deva','dome','dona','done','dove','exam','exon','made','mane','mano','mead','mean','mend','meno','moan','mode','move','moxa','name','nave','nema','node','noma','nome','nova','odea','omen','oven','oxen','vane','vena','vend','admen','amend','anode','axmen','axone','daven','demon','devon','doven','maned','maven','maxed','menad','monad','monde','moved','named','nomad','novae','vaned','venom','daemon','moaned'};\r\n\t\twords{2} = {'ad','ae','am','ax','da','de','do','ed','em','ex','ma','me','mo','od','oe','om','ox','ado','ave','avo','axe','dam','dev','dex','doe','dom','emo','mad','mae','max','med','moa','mod','moo','oda','ode','oma','ova','oxo','vex','voe','vox','axed','dame','demo','deva','dome','doom','dove','exam','made','mead','mode','mood','move','moxa','odea','maxed','mooed','moved'};\r\n\t\twords{3} = {'ad','ae','am','ax','da','de','do','ed','em','ex','ma','me','mo','od','oe','om','ox','ado','ave','avo','axe','dam','dev','dex','doe','dom','emo','mad','mae','max','med','moa','mod','oda','ode','oma','ova','vav','vex','voe','vox','axed','dame','demo','deva','dome','dove','exam','made','mead','mode','move','moxa','odea','maxed','moved'};\r\n\t\twords{4} = {'ad','ae','am','ax','da','de','do','ed','em','ex','ma','me','mo','od','oe','om','ox','ado','ave','avo','axe','dam','dee','dev','dex','doe','dom','eme','emo','eve','mad','mae','max','med','moa','mod','oda','ode','oma','ova','vee','vex','voe','vox','axed','dame','deem','deme','demo','deva','dome','dove','eave','exam','exed','made','mead','meed','mode','move','moxa','odea','adeem','deave','eaved','edema','evade','maxed','moved','vexed','oedema'};\r\n\t\twords{5} = {'ad','ae','al','am','ax','da','de','do','ed','el','em','ex','la','lo','ma','me','mo','od','oe','om','ox','ado','ale','ave','avo','axe','dal','dam','del','dev','dex','doe','dol','dom','eld','elm','emo','lad','lam','lav','lax','lea','led','lev','lex','lox','mad','mae','max','med','mel','moa','mod','mol','oda','ode','old','ole','oma','ova','vex','voe','vox','alme','aloe','axed','axel','axle','dale','dame','deal','demo','deva','dole','dome','dove','exam','lade','lame','lave','lead','leva','levo','load','loam','lode','love','made','male','mead','meal','meld','mode','mola','mold','mole','move','moxa','odea','olde','olea','oval','vale','veal','vela','veld','vole','amole','axled','dolma','domal','laevo','lamed','laved','loved','loxed','maxed','medal','modal','model','moved','voled','voxel','loamed'};\r\n\t\twords{6} = {'ad','ae','am','as','ax','da','de','do','ed','em','es','ex','ma','me','mo','od','oe','om','os','ox','so','ado','ads','ave','avo','axe','dam','das','dev','dex','doe','dom','dos','eds','emo','ems','mad','mae','mas','max','med','moa','mod','mos','oda','ode','ods','oes','oma','oms','ose','ova','sad','sae','sax','sea','sev','sex','sod','som','sox','vas','vex','voe','vox','ados','aves','avos','axed','axes','dame','dams','demo','deva','devs','does','dome','doms','dosa','dose','dove','emos','exam','made','mads','maes','mead','meds','mesa','moas','mode','mods','move','moxa','odas','odea','odes','omas','oxes','sade','same','save','seam','soda','soma','some','vase','voes','dames','demos','devas','domes','doves','exams','maxed','maxes','meads','modes','moved','moves','moxas','oaves','saved','soave','vadose','vamose','vamosed'};\r\n\t\tmax_score_corr = 16;\r\n\t\tmax_word_corr = {'vexed'};\r\n\tcase 2\r\n\t\tfirst_word = 'thinning'; %the starting word; the new word must be played off of a letter in this word\r\n\t\ttray_letters = 'eodnirl'; %your tray letters; informational (not part of the problem)\r\n\t\t%all possible words, including each letter of the starting word combined with your tray letters\r\n\t\tclear words\r\n\t\twords{1} = {'diner','doter','droit','drone','elint','eloin','enrol','ident','idler','indol','inert','inlet','inter','intro','irone','lento','lined','liner','lirot','liter','litre','loden','loner','nerol','niter','nitre','nitro','noted','noter','oiled','oiler','olden','older','oldie','olein','oriel','redon','relit','reoil','riled','ronde','teind','teloi','tenor','tilde','tiled','tiler','tined','tired','toile','toled','tondi','toned','toner','trend','tried','trine','triol','trode','trone','dentil','dinero','dotier','editor','entoil','indole','ironed','linted','linter','loiter','neroli','norite','orient','retold','rident','rioted','rodent','roiled','rondel','tinder','tirled','toiled','toiler','tonier','trined','triode','lentoid','retinol','tendril','trindle'};\r\n\t\twords{2} = {'dhole','diner','drone','eloin','enrol','helio','heron','hider','hired','holed','honed','honer','horde','idler','indol','irone','lined','liner','loden','loner','nerol','oiled','oiler','olden','older','oldie','olein','oriel','redon','reoil','rhino','riled','ronde','dehorn','dinero','heroin','hinder','hoiden','holden','holder','holier','hondle','honied','horned','indole','ironed','neroli','roiled','rondel','hordein','inholder'};\r\n\t\twords{3} = {'diner','drone','eloin','enrol','idler','indie','indol','indri','iodin','irone','lined','liner','loden','loner','nerol','oiled','oiler','olden','older','oldie','olein','oriel','redon','reoil','riled','ronde','dinero','indole','inlier','iodine','ironed','linier','neroli','oilier','roiled','rondel'};\r\n\t\twords{4} = {'diner','donne','drone','eloin','enrol','idler','indol','inned','inner','irone','lined','linen','liner','loden','loner','nerol','niner','oiled','oiler','olden','older','oldie','olein','oriel','redon','renin','reoil','riled','ronde','ronin','dinero','dinner','endrin','indole','ironed','linden','neroli','online','roiled','rondel','ronnel'};\r\n\t\twords{4} = {'diner','donne','drone','eloin','enrol','idler','indol','inned','inner','irone','lined','linen','liner','loden','loner','nerol','niner','oiled','oiler','olden','older','oldie','olein','oriel','redon','renin','reoil','riled','ronde','ronin','dinero','dinner','endrin','indole','ironed','linden','neroli','online','roiled','rondel','ronnel'};\r\n\t\twords{3} = {'diner','drone','eloin','enrol','idler','indie','indol','indri','iodin','irone','lined','liner','loden','loner','nerol','oiled','oiler','olden','older','oldie','olein','oriel','redon','reoil','riled','ronde','dinero','indole','inlier','iodine','ironed','linier','neroli','oilier','roiled','rondel'};\r\n\t\twords{4} = {'diner','donne','drone','eloin','enrol','idler','indol','inned','inner','irone','lined','linen','liner','loden','loner','nerol','niner','oiled','oiler','olden','older','oldie','olein','oriel','redon','renin','reoil','riled','ronde','ronin','dinero','dinner','endrin','indole','ironed','linden','neroli','online','roiled','rondel','ronnel'};\r\n\t\twords{8} = {'deign','diner','dinge','dingo','dirge','dogie','doing','drone','eloin','enrol','gelid','genro','geoid','giron','glide','goner','gored','gride','grind','groin','idler','indol','ingle','irone','liger','lined','liner','lingo','loden','lodge','login','loner','longe','nerol','ogled','ogler','oiled','oiler','olden','older','oldie','olein','oriel','redon','reign','renig','reoil','ridge','riled','ronde','dinero','dinger','dingle','doling','dongle','eloign','engild','engird','eringo','gilder','girdle','girned','glider','golden','golder','ignore','indole','ironed','legion','linger','lodger','logier','longed','longer','neroli','reding','regild','region','ridgel','ringed','roiled','rondel','eroding','glenoid','gloried','godlier','groined','ignored','lording','negroid','redoing'};\r\n\t\tmax_score_corr = 12;\r\n\t\tmax_word_corr = {'inholder'};\r\nend\r\n[max_score,max_word] = scrabble_scores_12(words,first_word);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n%% anti-cheating test case\r\nind = randi(2);\r\nswitch ind\r\n\tcase 1\r\n\t\tfirst_word = 'start'; %the starting word; the new word must be played off of a letter in this word\r\n\t\ttray_letters = 'aethilm'; %your tray letters; informational (not part of the problem)\r\n\t\t%all possible words, including each letter of the starting word combined with your tray letters\r\n\t\tclear words\r\n\t\twords{1} = {'aisle','alist','almeh','almes','amies','email','emits','haems','haets','hails','hales','halms','halts','hames','haste','hates','heals','heats','heils','heist','helms','hemal','hilts','islet','istle','items','laith','lames','lathe','lathi','laths','leash','least','limas','limes','litas','lites','lithe','maile','mails','maist','males','malts','mates','maths','meals','meats','melts','metal','meths','metis','miles','milts','mites','saith','salmi','satem','selah','setal','shale','shalt','shame','sheal','shiel','slate','slime','smalt','smelt','smile','smite','smith','stale','steal','steam','stela','stile','stime','taels','tails','tales','tames','tamis','teals','teams','telia','tesla','thali','tiles','times','almehs','emails','halest','halite','hamlet','haslet','hiemal','lamest','lathes','lathis','latish','mailes','mashie','mesial','metals','misate','miseat','saithe','saltie','samiel','samite','samlet','sheila','shelta','smalti','stelai','tahsil','thalis','theism','atheism','halites','hamlets','heliast'};\r\n\t\twords{2} = {'almeh','atilt','email','hemal','laith','lathe','lathi','latte','lithe','maile','matte','metal','telia','thali','theta','tilth','tithe','title','halite','hamlet','hiemal'};\r\n\t\twords{3} = {'alate','almah','almeh','email','halma','hamal','hemal','laith','lamia','lathe','lathi','lithe','maile','metal','tamal','telia','thali','althea','haemal','halite','hamate','hamlet','hiatal','hiemal','lamiae','malate','maltha','meatal','tamale','hematal','thalami'};\r\n\t\twords{4} = {'aimer','airth','alert','almeh','alter','amrit','ariel','armet','artel','earth','email','haler','harem','hater','heart','hemal','herma','hilar','ihram','irate','ither','laith','lamer','later','lathe','lathi','liter','lithe','litre','maile','mater','merit','metal','miler','mirth','miter','mitre','ramet','ramie','ratel','rathe','realm','relit','remit','retia','taler','tamer','telia','terai','thali','tharm','their','therm','thirl','tiler','timer','trail','trial','armlet','hailer','halier','halite','halter','hamlet','hermai','hermit','hiemal','imaret','lather','lither','mailer','matier','milter','mither','mitral','ramtil','remail','retail','retial','tailer','thairm','thaler','thiram','tramel','lathier','maltier','marlite','thermal'};\r\n\t\twords{5} = {'almeh','atilt','email','hemal','laith','lathe','lathi','latte','lithe','maile','matte','metal','telia','thali','theta','tilth','tithe','title','halite','hamlet','hiemal'};\r\n\t\tmax_score_corr = 12;\r\n\t\tmax_word_corr = {'atheism','hamlets','hematal','thalami','thermal'};\r\n\tcase 2\r\n\t\tfirst_word = 'thinning'; %the starting word; the new word must be played off of a letter in this word\r\n\t\ttray_letters = 'eodnirl'; %your tray letters; informational (not part of the problem)\r\n\t\t%all possible words, including each letter of the starting word combined with your tray letters\r\n\t\tclear words\r\n\t\twords{1} = {'diner','doter','droit','drone','elint','eloin','enrol','ident','idler','indol','inert','inlet','inter','intro','irone','lento','lined','liner','lirot','liter','litre','loden','loner','nerol','niter','nitre','nitro','noted','noter','oiled','oiler','olden','older','oldie','olein','oriel','redon','relit','reoil','riled','ronde','teind','teloi','tenor','tilde','tiled','tiler','tined','tired','toile','toled','tondi','toned','toner','trend','tried','trine','triol','trode','trone','dentil','dinero','dotier','editor','entoil','indole','ironed','linted','linter','loiter','neroli','norite','orient','retold','rident','rioted','rodent','roiled','rondel','tinder','tirled','toiled','toiler','tonier','trined','triode','lentoid','retinol','tendril','trindle'};\r\n\t\twords{2} = {'dhole','diner','drone','eloin','enrol','helio','heron','hider','hired','holed','honed','honer','horde','idler','indol','irone','lined','liner','loden','loner','nerol','oiled','oiler','olden','older','oldie','olein','oriel','redon','reoil','rhino','riled','ronde','dehorn','dinero','heroin','hinder','hoiden','holden','holder','holier','hondle','honied','horned','indole','ironed','neroli','roiled','rondel','hordein','inholder'};\r\n\t\twords{3} = {'diner','drone','eloin','enrol','idler','indie','indol','indri','iodin','irone','lined','liner','loden','loner','nerol','oiled','oiler','olden','older','oldie','olein','oriel','redon','reoil','riled','ronde','dinero','indole','inlier','iodine','ironed','linier','neroli','oilier','roiled','rondel'};\r\n\t\twords{4} = {'diner','donne','drone','eloin','enrol','idler','indol','inned','inner','irone','lined','linen','liner','loden','loner','nerol','niner','oiled','oiler','olden','older','oldie','olein','oriel','redon','renin','reoil','riled','ronde','ronin','dinero','dinner','endrin','indole','ironed','linden','neroli','online','roiled','rondel','ronnel'};\r\n\t\twords{4} = {'diner','donne','drone','eloin','enrol','idler','indol','inned','inner','irone','lined','linen','liner','loden','loner','nerol','niner','oiled','oiler','olden','older','oldie','olein','oriel','redon','renin','reoil','riled','ronde','ronin','dinero','dinner','endrin','indole','ironed','linden','neroli','online','roiled','rondel','ronnel'};\r\n\t\twords{3} = {'diner','drone','eloin','enrol','idler','indie','indol','indri','iodin','irone','lined','liner','loden','loner','nerol','oiled','oiler','olden','older','oldie','olein','oriel','redon','reoil','riled','ronde','dinero','indole','inlier','iodine','ironed','linier','neroli','oilier','roiled','rondel'};\r\n\t\twords{4} = {'diner','donne','drone','eloin','enrol','idler','indol','inned','inner','irone','lined','linen','liner','loden','loner','nerol','niner','oiled','oiler','olden','older','oldie','olein','oriel','redon','renin','reoil','riled','ronde','ronin','dinero','dinner','endrin','indole','ironed','linden','neroli','online','roiled','rondel','ronnel'};\r\n\t\twords{8} = {'deign','diner','dinge','dingo','dirge','dogie','doing','drone','eloin','enrol','gelid','genro','geoid','giron','glide','goner','gored','gride','grind','groin','idler','indol','ingle','irone','liger','lined','liner','lingo','loden','lodge','login','loner','longe','nerol','ogled','ogler','oiled','oiler','olden','older','oldie','olein','oriel','redon','reign','renig','reoil','ridge','riled','ronde','dinero','dinger','dingle','doling','dongle','eloign','engild','engird','eringo','gilder','girdle','girned','glider','golden','golder','ignore','indole','ironed','legion','linger','lodger','logier','longed','longer','neroli','reding','regild','region','ridgel','ringed','roiled','rondel','eroding','glenoid','gloried','godlier','groined','ignored','lording','negroid','redoing'};\r\n\t\tmax_score_corr = 12;\r\n\t\tmax_word_corr = {'inholder'};\r\nend\r\n[max_score,max_word] = scrabble_scores_12(words,first_word);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":26769,"edited_by":223089,"edited_at":"2022-09-11T10:44:01.000Z","deleted_by":null,"deleted_at":null,"solvers_count":24,"test_suite_updated_at":"2022-09-11T10:44:01.000Z","rescore_all_solutions":false,"group_id":40,"created_at":"2015-03-20T01:12:13.000Z","updated_at":"2026-04-02T08:29:22.000Z","published_at":"2015-03-20T01:12:13.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem builds directly off of\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3082-scrabble-scores-10\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eScrabble Scores - 10\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Here, you are provided an existing word on the board from which you will play a word. The letter can reside anywhere (first to last) within the existing word and within the word that you are playing. Write a function to find the highest scoring word, provided any letter from the existing word that you are building off of and the letters on your tray.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRather than having to test all the possible permutations against a dictionary, you will be provided a double-level cell array of strings containing all possible words based each starting letter in the existing word and the letters on your tray (a cell array for each letter in the existing word). (The word lists purposefully omit smaller words to prevent the test cases from being too large.) In addition to providing the highest score, also provide the word(s) that achieve that score in a cell array. See the test suite for examples. Due to high-scoring tiles, the highest score may not be achieved by the longest word(s).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRelated problems:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePrevious problem: 11 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3084-scrabble-scores-11\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWord score optimization (known letter \u0026amp; multipliers)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Next problem: 13 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3098-scrabble-scores-13\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWord score optimization (first word \u0026amp; multipliers)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":3052,"title":"Scrabble Scores - 7","description":"This problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided \u003chttp://en.wikipedia.org/wiki/Scrabble_letter_distributions#English here\u003e. (Use the English points distribution.)\r\n\r\nFor this problem, you will be provided with a character matrix representing a completed game of Scrabble. You will also be provided with the number of players (two to four) and an order array denoting the order of word placement.\r\n\r\nThe order array is a one-dimensional cell array equal in size to the number of turns in the game. Within each cell element, the coordinates of the currently played word will map the letters placed for each move as row,column or word beginning and row,column of word ending. Since words can only be placed horizontally or vertically, one set of indices (row or column) will be static within each element. \r\n\r\nAs an example, suppose you are given the following board (this is test case 1):\r\n\r\n   cat  \r\n i  p   \r\n t  poet\r\n c  l   \r\nthere  \r\n\r\nThe accompanying order array will have a form like the following: \r\n\r\n  order(1) = {[2,2; 5,2]};\r\n  order(2) = {[5,1; 5,5]};\r\n  order(3) = {[1,5; 5,5]};\r\n  order(4) = {[3,5; 3,8]};\r\n  order(5) = {[1,4; 1,6]};\r\n\r\nsignifying that the first word is itch, the second word is there, and so on with apple, poet, and cat. For this case, there are two players, and we will assume (for all cases) that no one passes a turn. Therefore, words 1, 3, and 5 belong to player one, totaling 1+1+3+4, 1+3+3+1+1, and 3+1+1, which sums to 23. Words 2 and 4 belong to player one, totaling 1+4+1+1+1 and 3+1+1+1, which sums to 14. Therefore, the function should return [23 14].\r\n\r\nIf there had been three players, words 1 and 4 would belong to player one, words 2 and 5 to player two, and word 3 to player three.\r\n\r\nFinally, the order array will include all scored words for each turn. For instance, if a word starting with S was played off of an existing word, the order array for that turn will have two index sets, as both words would be scored. The order array element will have dimensions 2 x 2 x n where n is the number of words scored on the given turn.\r\n\r\nWrite a function to calculate and return the total score for each player for the provided Scrabble boards.\r\n\r\nRelated problems:\r\n\r\nPrevious problem: 6 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3051-scrabble-scores-6 Board scoring\u003e. Next problem: 8 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3060-scrabble-scores-8 Multiplayer multiplier board scoring\u003e.","description_html":"\u003cp\u003eThis problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided \u003ca href = \"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\"\u003ehere\u003c/a\u003e. (Use the English points distribution.)\u003c/p\u003e\u003cp\u003eFor this problem, you will be provided with a character matrix representing a completed game of Scrabble. You will also be provided with the number of players (two to four) and an order array denoting the order of word placement.\u003c/p\u003e\u003cp\u003eThe order array is a one-dimensional cell array equal in size to the number of turns in the game. Within each cell element, the coordinates of the currently played word will map the letters placed for each move as row,column or word beginning and row,column of word ending. Since words can only be placed horizontally or vertically, one set of indices (row or column) will be static within each element.\u003c/p\u003e\u003cp\u003eAs an example, suppose you are given the following board (this is test case 1):\u003c/p\u003e\u003cpre\u003e   cat  \r\n i  p   \r\n t  poet\r\n c  l   \r\nthere  \u003c/pre\u003e\u003cp\u003eThe accompanying order array will have a form like the following:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eorder(1) = {[2,2; 5,2]};\r\norder(2) = {[5,1; 5,5]};\r\norder(3) = {[1,5; 5,5]};\r\norder(4) = {[3,5; 3,8]};\r\norder(5) = {[1,4; 1,6]};\r\n\u003c/pre\u003e\u003cp\u003esignifying that the first word is itch, the second word is there, and so on with apple, poet, and cat. For this case, there are two players, and we will assume (for all cases) that no one passes a turn. Therefore, words 1, 3, and 5 belong to player one, totaling 1+1+3+4, 1+3+3+1+1, and 3+1+1, which sums to 23. Words 2 and 4 belong to player one, totaling 1+4+1+1+1 and 3+1+1+1, which sums to 14. Therefore, the function should return [23 14].\u003c/p\u003e\u003cp\u003eIf there had been three players, words 1 and 4 would belong to player one, words 2 and 5 to player two, and word 3 to player three.\u003c/p\u003e\u003cp\u003eFinally, the order array will include all scored words for each turn. For instance, if a word starting with S was played off of an existing word, the order array for that turn will have two index sets, as both words would be scored. The order array element will have dimensions 2 x 2 x n where n is the number of words scored on the given turn.\u003c/p\u003e\u003cp\u003eWrite a function to calculate and return the total score for each player for the provided Scrabble boards.\u003c/p\u003e\u003cp\u003eRelated problems:\u003c/p\u003e\u003cp\u003ePrevious problem: 6 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3051-scrabble-scores-6\"\u003eBoard scoring\u003c/a\u003e. Next problem: 8 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3060-scrabble-scores-8\"\u003eMultiplayer multiplier board scoring\u003c/a\u003e.\u003c/p\u003e","function_template":"function [score] = scrabble_scores_7(board,n_pl,order)\r\n\r\nscore = zeros(1,n_pl);\r\n\r\nend\r\n\r\n","test_suite":"%%\r\nboard = [\r\n\r\n'   cat  ';\r\n' i  p   ';\r\n' t  poet';\r\n' c  l   ';\r\n'there   ';\r\n];\r\nn_pl = 2;\r\norder = cell(1,5);\r\norder(1) = {[2,2; 5,2]};\r\norder(2) = {[5,1; 5,5]};\r\norder(3) = {[1,5; 5,5]};\r\norder(4) = {[3,5; 3,8]};\r\norder(5) = {[1,4; 1,6]};\r\nscore = [23 14];\r\nassert(isequal(scrabble_scores_7(board,n_pl,order),score))\r\n\r\n%%\r\nboard = [\r\n\r\n'stratagems';\r\n' h      a ';\r\n'hello   t ';\r\n' r      l ';\r\n'fellow  a ';\r\n'    a   b ';\r\n' users    ';\r\n];\r\nn_pl = 2;\r\norder = cell(1,7);\r\norder(1) = {[1,1; 1,10]};\r\norder(2) = {[1,9; 6,9]};\r\norder(3) = {[1,2; 5,2]};\r\norder(4) = {[5,1; 5,6]};\r\norder(5) = {[5,5; 7,5]};\r\norder(6) = {[3,1; 3,5]};\r\norder(7) = {[7,2; 7,6]};\r\nscore = [29 30];\r\nassert(isequal(scrabble_scores_7(board,n_pl,order),score))\r\n\r\n%%\r\nboard = [\r\n\r\n' what   y ';\r\n'    h  do ';\r\n'  this  um';\r\n' l  n    a';\r\n' of keen t';\r\n' o   e   l';\r\n' problem a';\r\n'      noob';\r\n];\r\nn_pl = 3;\r\norder = cell(1,12);\r\norder(1) = {[1,2; 1,5]};\r\norder(2) = {[1,5; 5,5]};\r\norder(3) = {[3,3; 3,7]};\r\norder(4) = {[5,5; 5,8]};\r\norder(5) = {[5,6; 7,6]};\r\norder(6) = {[7,2; 7,8]};\r\norder(7) = {[4,2; 7,2]};\r\nm_words(:,:,1) = [8,7; 8,10];\r\nm_words(:,:,2) = [7,7; 8,7];\r\nm_words(:,:,3) = [7,8; 8,8];\r\norder(8) = {m_words};\r\norder(9) = {[3,10; 8,10]};\r\nclear m_words\r\nm_words(:,:,1) = [1,9; 3,9];\r\nm_words(:,:,2) = [3,9; 3,10];\r\norder(10) = {m_words};\r\norder(11) = {[5,2; 5,3]};\r\norder(12) = {[2,8; 2,9]};\r\nscore = [34 32 33];\r\nassert(isequal(scrabble_scores_7(board,n_pl,order),score))\r\n\r\n%%\r\nboard = [\r\n\r\n' if  you  ';\r\n'  i  u    ';\r\n'  like    ';\r\n' met  g   ';\r\n' e    it l';\r\n' e    v  i';\r\n' please  k';\r\n'      node';\r\n];\r\nn_pl = 2;\r\norder = cell(1,12);\r\norder(1) = {[1,2; 1,3]};\r\norder(2) = {[1,3; 4,3]};\r\norder(3) = {[3,3; 3,6]};\r\norder(4) = {[1,6; 3,6]};\r\norder(5) = {[1,6; 1,8]};\r\nm_words(:,:,1) = [4,2; 4,4];\r\nm_words(:,:,2) = [3,4; 4,4];\r\norder(6) = {m_words};\r\norder(7) = {[4,2; 7,2]};\r\norder(8) = {[7,2; 7,7]};\r\norder(9) = {[4,7; 7,7]};\r\nm_words(:,:,1) = [8,7; 8,10];\r\nm_words(:,:,2) = [4,7; 8,7];\r\norder(10) = {m_words};\r\norder(11) = {[5,10; 8,10]};\r\norder(12) = {[5,7; 5,8]};\r\nscore = [43 44];\r\nassert(isequal(scrabble_scores_7(board,n_pl,order),score))\r\n\r\n%%\r\nboard = [\r\n\r\n'c    flummoxes zither';\r\n'al    o      e e    e';\r\n'ba  hunting  eerie  b';\r\n'ab  a g   e    o    e';\r\n'lo  n     m g       l';\r\n' r  g      responses ';\r\n'random      n    u u ';\r\n' t  v   c  below p r ';\r\n'convention  r    e f ';\r\n' r  r   n   a   areas';\r\n' y      v c t    i c ';\r\n'   o  philosophy o em';\r\n'travel  n n r    r  e';\r\n'   e    c t         e';\r\n' word   i a    writer';\r\n'   t    n c    o    l';\r\n'p fortnight   rock  y';\r\n'i  n            h    ';\r\n'novelty m concatenate';\r\n'c e  o  a    a  s   g';\r\n'heterogeneousness   g';\r\n];\r\nn_pl = 4;\r\norder = cell(1,41);\r\norder(1) = {[12,7; 12,16]};\r\norder(2) = {[5,13; 13,13]};\r\norder(3) = {[8,9; 17,9]};\r\norder(4) = {[11,11; 17,11]};\r\norder(5) = {[17,3; 17,11]};\r\norder(6) = {[8,12; 8,16]};\r\norder(7) = {[6,12; 6,20]};\r\norder(8) = {[6,18; 13,18]};\r\norder(9) = {[10,17; 10,21]};\r\norder(10) = {[9,1; 9,10]};\r\norder(11) = {[12,4; 19,4]};\r\norder(12) = {[2,2; 11,2]};\r\norder(13) = {[7,1; 7,6]};\r\norder(14) = {[13,1; 13,6]};\r\norder(15) = {[15,2; 15,5]};\r\norder(16) = {[19,1; 19,7]};\r\norder(17) = {[3,5; 10,5]};\r\norder(18) = {[3,5; 3,11]};\r\nm_words(:,:,1) = [1,1; 5,1];\r\nm_words(:,:,2) = [2,1; 2,2];\r\nm_words(:,:,3) = [3,1; 3,2];\r\nm_words(:,:,4) = [4,1; 4,2];\r\nm_words(:,:,5) = [5,1; 5,2];\r\norder(19) = {m_words};\r\norder(20) = {[17,1; 21,1]};\r\norder(21) = {[21,1; 21,17]};\r\norder(22) = {[6,20; 12,20]};\r\nclear m_words\r\nm_words(:,:,1) = [12,21; 17,21];\r\nm_words(:,:,2) = [12,20; 12,21];\r\norder(23) = {m_words};\r\norder(24) = {[15,16; 15,21]};\r\norder(25) = {[3,11; 5,11]};\r\norder(26) = {[17,17; 21,17]};\r\norder(27) = {[17,15; 17,18]};\r\norder(28) = {[19,11; 19,21]};\r\norder(29) = {[19,14; 21,14]};\r\norder(30) = {[1,7; 4,7]};\r\norder(31) = {[1,6; 1,14]};\r\norder(32) = {[19,21; 21,21]};\r\norder(33) = {[19,6; 21,6]};\r\norder(34) = {[1,14; 3,14]};\r\norder(35) = {[3,14; 3,18]};\r\norder(36) = {[1,16; 4,16]};\r\norder(37) = {[1,16; 1,21]};\r\norder(38) = {[1,21; 5,21]};\r\norder(39) = {[19,3; 21,3]};\r\norder(40) = {[19,9; 21,9]};\r\norder(41) = {[15,16; 17,16]};\r\n\r\nscore = [127 92 128 108];\r\nassert(isequal(scrabble_scores_7(board,n_pl,order),score))\r\n\r\n%% anti-cheating test case (random number of players from random board)\r\nind = randi(4);\r\nind2 = randi(3)+1;\r\nswitch ind\r\ncase 1\r\nboard = [\r\n\r\n'   cat  ';\r\n' i  p   ';\r\n' t  poet';\r\n' c  l   ';\r\n'there   ';\r\n];\r\norder = cell(1,5);\r\norder(1) = {[2,2; 5,2]};\r\norder(2) = {[5,1; 5,5]};\r\norder(3) = {[1,5; 5,5]};\r\norder(4) = {[3,5; 3,8]};\r\norder(5) = {[1,4; 1,6]};\r\nswitch ind2\r\n\tcase 2\r\n\t\tn_pl = 2;\r\n\t\tscore = [23 14];\r\n\tcase 3\r\n\t\tn_pl = 3;\r\n\t\tscore = [15 13 9];\r\n\tcase 4\r\n\t\tn_pl = 4;\r\n\t\tscore = [14 8 9 6];\r\nend\r\ncase 2\r\nboard = [\r\n'stratagems';\r\n' h      a ';\r\n'hello   t ';\r\n' r      l ';\r\n'fellow  a ';\r\n'    a   b ';\r\n' users    '];\r\norder = cell(1,7);\r\norder(1) = {[1,1; 1,10]};\r\norder(2) = {[1,9; 6,9]};\r\norder(3) = {[1,2; 5,2]};\r\norder(4) = {[5,1; 5,6]};\r\norder(5) = {[5,5; 7,5]};\r\norder(6) = {[3,1; 3,5]};\r\norder(7) = {[7,2; 7,6]};\r\nswitch ind2\r\n\tcase 2\r\n\t\tn_pl = 2;\r\n\t\tscore = [29 30];\r\n\tcase 3\r\n\t\tn_pl = 3;\r\n\t\tscore = [30 13 16];\r\n\tcase 4\r\n\t\tn_pl = 4;\r\n\t\tscore = [16 18 13 12];\r\nend\r\ncase 3\r\nboard = [\r\n\r\n' what   y ';\r\n'    h  do ';\r\n'  this  um';\r\n' l  n    a';\r\n' of keen t';\r\n' o   e   l';\r\n' problem a';\r\n'      noob';\r\n];\r\norder = cell(1,12);\r\norder(1) = {[1,2; 1,5]};\r\norder(2) = {[1,5; 5,5]};\r\norder(3) = {[3,3; 3,7]};\r\norder(4) = {[5,5; 5,8]};\r\norder(5) = {[5,6; 7,6]};\r\norder(6) = {[7,2; 7,8]};\r\norder(7) = {[4,2; 7,2]};\r\nm_words(:,:,1) = [8,7; 8,10];\r\nm_words(:,:,2) = [7,7; 8,7];\r\nm_words(:,:,3) = [7,8; 8,8];\r\norder(8) = {m_words};\r\norder(9) = {[3,10; 8,10]};\r\nclear m_words\r\nm_words(:,:,1) = [1,9; 3,9];\r\nm_words(:,:,2) = [3,9; 3,10];\r\norder(10) = {m_words};\r\norder(11) = {[5,2; 5,3]};\r\norder(12) = {[2,8; 2,9]};\r\nswitch ind2\r\n\tcase 2\r\n\t\tn_pl = 2;\r\n\t\tscore = [41 58];\r\n\tcase 3\r\n\t\tn_pl = 3;\r\n\t\tscore = [34 32 33];\r\n\tcase 4\r\n\t\tn_pl = 4;\r\n\t\tscore = [23 35 18 23];\r\nend\r\ncase 4\r\nboard = [\r\n\r\n' if  you  ';\r\n'  i  u    ';\r\n'  like    ';\r\n' met  g   ';\r\n' e    it l';\r\n' e    v  i';\r\n' please  k';\r\n'      node';\r\n];\r\norder = cell(1,12);\r\norder(1) = {[1,2; 1,3]};\r\norder(2) = {[1,3; 4,3]};\r\norder(3) = {[3,3; 3,6]};\r\norder(4) = {[1,6; 3,6]};\r\norder(5) = {[1,6; 1,8]};\r\nm_words(:,:,1) = [4,2; 4,4];\r\nm_words(:,:,2) = [3,4; 4,4];\r\norder(6) = {m_words};\r\norder(7) = {[4,2; 7,2]};\r\norder(8) = {[7,2; 7,7]};\r\norder(9) = {[4,7; 7,7]};\r\nm_words(:,:,1) = [8,7; 8,10];\r\nm_words(:,:,2) = [4,7; 8,7];\r\norder(10) = {m_words};\r\norder(11) = {[5,10; 8,10]};\r\norder(12) = {[5,7; 5,8]};\r\nswitch ind2\r\n\tcase 2\r\n\t\tn_pl = 2;\r\n\t\tscore = [43 44];\r\n\tcase 3\r\n\t\tn_pl = 3;\r\n\t\tscore = [33 29 25];\r\n\tcase 4\r\n\t\tn_pl = 4;\r\n\t\tscore = [19 28 24 16];\r\nend\r\nend\r\nassert(isequal(scrabble_scores_7(board,n_pl,order),score))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":5,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":29,"test_suite_updated_at":"2015-03-01T04:17:41.000Z","rescore_all_solutions":false,"group_id":40,"created_at":"2015-02-28T06:51:37.000Z","updated_at":"2026-04-02T20:16:13.000Z","published_at":"2015-03-01T04:17:41.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehere\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. (Use the English points distribution.)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor this problem, you will be provided with a character matrix representing a completed game of Scrabble. You will also be provided with the number of players (two to four) and an order array denoting the order of word placement.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe order array is a one-dimensional cell array equal in size to the number of turns in the game. Within each cell element, the coordinates of the currently played word will map the letters placed for each move as row,column or word beginning and row,column of word ending. Since words can only be placed horizontally or vertically, one set of indices (row or column) will be static within each element.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAs an example, suppose you are given the following board (this is test case 1):\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[   cat  \\n i  p   \\n t  poet\\n c  l   \\nthere]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe accompanying order array will have a form like the following:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[order(1) = {[2,2; 5,2]};\\norder(2) = {[5,1; 5,5]};\\norder(3) = {[1,5; 5,5]};\\norder(4) = {[3,5; 3,8]};\\norder(5) = {[1,4; 1,6]};]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003esignifying that the first word is itch, the second word is there, and so on with apple, poet, and cat. For this case, there are two players, and we will assume (for all cases) that no one passes a turn. Therefore, words 1, 3, and 5 belong to player one, totaling 1+1+3+4, 1+3+3+1+1, and 3+1+1, which sums to 23. Words 2 and 4 belong to player one, totaling 1+4+1+1+1 and 3+1+1+1, which sums to 14. Therefore, the function should return [23 14].\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf there had been three players, words 1 and 4 would belong to player one, words 2 and 5 to player two, and word 3 to player three.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFinally, the order array will include all scored words for each turn. For instance, if a word starting with S was played off of an existing word, the order array for that turn will have two index sets, as both words would be scored. The order array element will have dimensions 2 x 2 x n where n is the number of words scored on the given turn.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite a function to calculate and return the total score for each player for the provided Scrabble boards.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRelated problems:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePrevious problem: 6 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3051-scrabble-scores-6\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eBoard scoring\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Next problem: 8 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3060-scrabble-scores-8\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMultiplayer multiplier board scoring\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":3084,"title":"Scrabble Scores - 11","description":"This problem builds on the previous problem, wherein you were provided a letter of an existing word on the board and from which you played a word to find the highest scoring word. See the previous problem for more details.\r\n\r\nNow, you will be provided a multiplier character array that represents the fifteen possible squares that can be played on, ranging from seven above the existing letter (in which case the existing letter is the last letter in an eight-letter word) to seven below the existing letter (in which case the existing letter is the first letter in an eight-letter word) with the existing letter fixed in the 8th position. The multipliers are the same as in previous problems:\r\n\r\n * D: double word\r\n * T: triple word\r\n * Q: quadruple word\r\n * d: double letter\r\n * t: triple letter\r\n * q: quadruple letter\r\n\r\nThe center multiplier square will be left blank, since it's already covered by a tile. Write a routine to determine the highest scoring word(s) based on the multiplier squares.\r\n\r\nOnce again, you will be provided a cell array of strings containing all possible words based on the existing letter and the letters on your tray. In addition to providing the highest score, also provide the word(s) that achieve that score in a cell array. See the test suite for examples. Due to high-scoring tiles, the highest score may not be achieved by the longest word(s).\r\n\r\nRelated problems:\r\n\r\nPrevious problem: 10 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3082-scrabble-scores-10 Word score optimization (known letter)\u003e. Next problem: 12 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3097-scrabble-scores-12 Word score optimization (first word)\u003e.","description_html":"\u003cp\u003eThis problem builds on the previous problem, wherein you were provided a letter of an existing word on the board and from which you played a word to find the highest scoring word. See the previous problem for more details.\u003c/p\u003e\u003cp\u003eNow, you will be provided a multiplier character array that represents the fifteen possible squares that can be played on, ranging from seven above the existing letter (in which case the existing letter is the last letter in an eight-letter word) to seven below the existing letter (in which case the existing letter is the first letter in an eight-letter word) with the existing letter fixed in the 8th position. The multipliers are the same as in previous problems:\u003c/p\u003e\u003cpre\u003e * D: double word\r\n * T: triple word\r\n * Q: quadruple word\r\n * d: double letter\r\n * t: triple letter\r\n * q: quadruple letter\u003c/pre\u003e\u003cp\u003eThe center multiplier square will be left blank, since it's already covered by a tile. Write a routine to determine the highest scoring word(s) based on the multiplier squares.\u003c/p\u003e\u003cp\u003eOnce again, you will be provided a cell array of strings containing all possible words based on the existing letter and the letters on your tray. In addition to providing the highest score, also provide the word(s) that achieve that score in a cell array. See the test suite for examples. Due to high-scoring tiles, the highest score may not be achieved by the longest word(s).\u003c/p\u003e\u003cp\u003eRelated problems:\u003c/p\u003e\u003cp\u003ePrevious problem: 10 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3082-scrabble-scores-10\"\u003eWord score optimization (known letter)\u003c/a\u003e. Next problem: 12 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3097-scrabble-scores-12\"\u003eWord score optimization (first word)\u003c/a\u003e.\u003c/p\u003e","function_template":"function [score,max_word] = scrabble_scores_11(words,mult,existing_letter)\r\n\r\nscore = 0;\r\nmax_word = {''};\r\n\r\nend","test_suite":"%%\r\nexisting_letter = 's'; %the word must contain this letter, which is in an already played word\r\ntray_letters = 'aethilm'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including the first letter with your tray letters\r\nwords = {'ae','ah','ai','al','am','as','at','eh','el','em','es','et','ha','he','hi','hm','is','it','la','li','ma','me','mi','sh','si','ta','te','ti','ahi','ahs','ail','aim','ais','ait','ale','als','alt','ami','ash','ate','eat','elm','els','ems','est','eta','eth','hae','ham','has','hat','hem','hes','het','hie','him','his','hit','ism','its','lah','lam','las','lat','lea','lei','let','lie','lis','lit','mae','mas','mat','meh','mel','met','mil','mis','sae','sal','sat','sea','sei','sel','set','sha','she','sim','sit','tae','tam','tas','tea','tel','tes','the','tie','til','tis','ahem','ahis','ails','aims','aits','ales','alit','alme','alms','alts','amie','amis','ates','east','eath','eats','elhi','elms','emit','etas','eths','haem','haes','haet','hail','hale','halm','halt','hame','hams','hast','hate','hats','heal','heat','heil','helm','hems','hest','hets','hies','hila','hilt','hims','hist','hits','ilea','isle','item','lahs','lame','lams','lase','lash','last','late','lath','lati','lats','leas','leis','lest','lets','lias','lies','lima','lime','list','lite','lits','maes','mail','male','malt','mash','mast','mate','math','mats','meal','meat','mels','melt','mesa','mesh','meta','meth','mile','mils','milt','mise','mist','mite','sail','sale','salt','same','sate','sati','seal','seam','seat','semi','seta','sham','shea','shim','sial','silt','sima','site','sith','slam','slat','slim','slit','smit','stem','tael','tail','tale','tali','tame','tams','tase','teal','team','teas','tela','tels','thae','them','this','ties','tile','tils','time','aisle','alist','almeh','almes','amies','email','emits','haems','haets','hails','hales','halms','halts','hames','haste','hates','heals','heats','heils','heist','helms','hemal','hilts','islet','istle','items','laith','lames','lathe','lathi','laths','leash','least','limas','limes','litas','lites','lithe','maile','mails','maist','males','malts','mates','maths','meals','meats','melts','metal','meths','metis','miles','milts','mites','saith','salmi','satem','selah','setal','shale','shalt','shame','sheal','shiel','slate','slime','smalt','smelt','smile','smite','smith','stale','steal','steam','stela','stile','stime','taels','tails','tales','tames','tamis','teals','teams','telia','tesla','thali','tiles','times','almehs','emails','halest','halite','hamlet','haslet','hiemal','lamest','lathes','lathis','latish','mailes','mashie','mesial','metals','misate','miseat','saithe','saltie','samiel','samite','samlet','sheila','shelta','smalti','stelai','tahsil','thalis','theism','atheism','halites','hamlets','heliast'};\r\nmult = ' T   d   d   T '; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\nmax_score_corr = 39;\r\nmax_word_corr = {'hamlets'};\r\n[max_score,max_word] = scrabble_scores_11(words,mult,existing_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n\r\n%%\r\nind = randi(4);\r\nexisting_letter = 's'; %the word must contain this letter, which is in an already played word\r\ntray_letters = 'aethilm'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including the first letter with your tray letters\r\nwords = {'ae','ah','ai','al','am','as','at','eh','el','em','es','et','ha','he','hi','hm','is','it','la','li','ma','me','mi','sh','si','ta','te','ti','ahi','ahs','ail','aim','ais','ait','ale','als','alt','ami','ash','ate','eat','elm','els','ems','est','eta','eth','hae','ham','has','hat','hem','hes','het','hie','him','his','hit','ism','its','lah','lam','las','lat','lea','lei','let','lie','lis','lit','mae','mas','mat','meh','mel','met','mil','mis','sae','sal','sat','sea','sei','sel','set','sha','she','sim','sit','tae','tam','tas','tea','tel','tes','the','tie','til','tis','ahem','ahis','ails','aims','aits','ales','alit','alme','alms','alts','amie','amis','ates','east','eath','eats','elhi','elms','emit','etas','eths','haem','haes','haet','hail','hale','halm','halt','hame','hams','hast','hate','hats','heal','heat','heil','helm','hems','hest','hets','hies','hila','hilt','hims','hist','hits','ilea','isle','item','lahs','lame','lams','lase','lash','last','late','lath','lati','lats','leas','leis','lest','lets','lias','lies','lima','lime','list','lite','lits','maes','mail','male','malt','mash','mast','mate','math','mats','meal','meat','mels','melt','mesa','mesh','meta','meth','mile','mils','milt','mise','mist','mite','sail','sale','salt','same','sate','sati','seal','seam','seat','semi','seta','sham','shea','shim','sial','silt','sima','site','sith','slam','slat','slim','slit','smit','stem','tael','tail','tale','tali','tame','tams','tase','teal','team','teas','tela','tels','thae','them','this','ties','tile','tils','time','aisle','alist','almeh','almes','amies','email','emits','haems','haets','hails','hales','halms','halts','hames','haste','hates','heals','heats','heils','heist','helms','hemal','hilts','islet','istle','items','laith','lames','lathe','lathi','laths','leash','least','limas','limes','litas','lites','lithe','maile','mails','maist','males','malts','mates','maths','meals','meats','melts','metal','meths','metis','miles','milts','mites','saith','salmi','satem','selah','setal','shale','shalt','shame','sheal','shiel','slate','slime','smalt','smelt','smile','smite','smith','stale','steal','steam','stela','stile','stime','taels','tails','tales','tames','tamis','teals','teams','telia','tesla','thali','tiles','times','almehs','emails','halest','halite','hamlet','haslet','hiemal','lamest','lathes','lathis','latish','mailes','mashie','mesial','metals','misate','miseat','saithe','saltie','samiel','samite','samlet','sheila','shelta','smalti','stelai','tahsil','thalis','theism','atheism','halites','hamlets','heliast'};\r\nswitch ind\r\n\tcase 1\r\n\t\tmult = ' T   d   d   T '; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 39;\r\n\t\tmax_word_corr = {'hamlets'};\r\n\tcase 2\r\n\t\tmult = 'T  D  d d  D  T'; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 32;\r\n\t\tmax_word_corr = {'atheism'};\r\n\tcase 3\r\n\t\tmult = 'Q  t  T T  t  Q'; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 153;\r\n\t\tmax_word_corr = {'halest'};\r\n\tcase 4\r\n\t\tmult = 'Q t T d d T t Q'; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 60;\r\n\t\tmax_word_corr = {'heliast'};\r\nend\r\n[max_score,max_word] = scrabble_scores_11(words,mult,existing_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n\r\n%%\r\nind = randi(4);\r\nexisting_letter = 't'; %the word must contain this letter, which is in an already played word\r\ntray_letters = 'eodnirl'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including the first letter with your tray letters\r\nwords = {'de','do','ed','el','en','er','et','id','in','it','li','lo','ne','no','od','oe','oi','on','or','re','te','ti','to','del','den','die','din','dit','doe','dol','don','dor','dot','eld','end','eon','ern','ion','ire','led','lei','let','lid','lie','lin','lit','lot','net','nil','nit','nod','nor','not','ode','oil','old','ole','one','ore','ort','red','rei','ret','rid','rin','rod','roe','rot','ted','tel','ten','tie','til','tin','tod','toe','ton','tor','deil','deli','delt','deni','dent','diel','diet','dine','dino','dint','diol','dire','dirl','dirt','dite','doer','doit','dole','dolt','done','dore','dote','edit','enol','idle','idol','inro','into','ired','iron','lend','leno','lent','lido','lied','lien','lier','line','lino','lint','lion','lire','lite','lode','loid','loin','lone','lord','lore','lorn','loti','nerd','nide','nite','node','nodi','noel','noil','noir','nori','note','olde','orle','redo','rein','rend','reno','rent','ride','riel','rile','rind','riot','rite','rode','roil','role','rote','roti','rotl','tein','tend','tern','tide','tied','tier','tile','tine','tire','tirl','tiro','toed','toil','told','tole','tone','tore','tori','torn','trio','trod','diner','doter','droit','drone','elint','eloin','enrol','ident','idler','indol','inert','inlet','inter','intro','irone','lento','lined','liner','lirot','liter','litre','loden','loner','nerol','niter','nitre','nitro','noted','noter','oiled','oiler','olden','older','oldie','olein','oriel','redon','relit','reoil','riled','ronde','teind','teloi','tenor','tilde','tiled','tiler','tined','tired','toile','toled','tondi','toned','toner','trend','tried','trine','triol','trode','trone','dentil','dinero','dotier','editor','entoil','indole','ironed','linted','linter','loiter','neroli','norite','orient','retold','rident','rioted','rodent','roiled','rondel','tinder','tirled','toiled','toiler','tonier','trined','triode','lentoid','retinol','tendril','trindle'};\r\nswitch ind\r\n\tcase 1\r\n\t\tmult = ' T   d   d   T '; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 27;\r\n\t\tmax_word_corr = {'tendril','trindle'};\r\n\tcase 2\r\n\t\tmult = 'T  D  d d  D  T'; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 18;\r\n\t\tmax_word_corr = {'retinol','tendril','trindle'};\r\n\tcase 3\r\n\t\tmult = 'Q  t  T T  t  Q'; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 81;\r\n\t\tmax_word_corr = {'retinol'};\r\n\tcase 4\r\n\t\tmult = 'Q t T d d T t Q'; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 90;\r\n\t\tmax_word_corr = {'lentoid'};\r\nend\r\n[max_score,max_word] = scrabble_scores_11(words,mult,existing_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n\r\n%% anti-cheating test case 3\r\nind = randi(4);\r\nexisting_letter = 'n'; %the word must contain this letter, which is in an already played word\r\ntray_letters = 'dmvxeao'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including the first letter with your tray letters\r\nwords = {'ad','ae','am','an','ax','da','de','do','ed','em','en','ex','ma','me','mo','na','ne','no','od','oe','om','on','ox','ado','and','ane','ave','avo','axe','dam','dan','den','dev','dex','doe','dom','don','emo','end','eon','mad','mae','man','max','med','men','moa','mod','mon','nae','nam','nav','nod','nom','oda','ode','oma','one','ova','van','vex','voe','vox','aeon','amen','axed','axon','dame','damn','dean','demo','deva','dome','dona','done','dove','exam','exon','made','mane','mano','mead','mean','mend','meno','moan','mode','move','moxa','name','nave','nema','node','noma','nome','nova','odea','omen','oven','oxen','vane','vena','vend','admen','amend','anode','axmen','axone','daven','demon','devon','doven','maned','maven','maxed','menad','monad','monde','moved','named','nomad','novae','vaned','venom','daemon','moaned'};\r\nswitch ind\r\n\tcase 1\r\n\t\tmult = ' T   d   d   T '; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 20;\r\n\t\tmax_word_corr = {'axone'};\r\n\tcase 2\r\n\t\tmult = 'T  D  d d  D  T'; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 30;\r\n\t\tmax_word_corr = {'axmen'};\r\n\tcase 3\r\n\t\tmult = 'Q  t  T T  t  Q'; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 108;\r\n\t\tmax_word_corr = {'axone'};\r\n\tcase 4\r\n\t\tmult = 'Q t T d d T t Q'; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 45;\r\n\t\tmax_word_corr = {'axmen'};\r\nend\r\n[max_score,max_word] = scrabble_scores_11(words,mult,existing_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n\r\n%% anti-cheating test case 4\r\nind = randi(4);\r\nexisting_letter = 'z'; %the word must contain this letter, which is in an already played word\r\ntray_letters = 'aehcmdi'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including the first letter with your tray letters\r\nwords = {'ad','ae','ah','ai','am','da','de','ed','eh','em','ha','he','hi','hm','id','ma','me','mi','za','ace','adz','ahi','aid','aim','ami','cad','cam','chi','dah','dam','die','dim','edh','had','hae','ham','hem','hic','hid','hie','him','ice','ich','mac','mad','mae','med','meh','mic','mid','zed','aced','ache','acid','acme','adze','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','cazh','cedi','chad','chai','cham','chem','chez','chia','chid','dace','dame','daze','dice','dime','each','emic','hade','haed','haem','hame','haze','head','hide','hied','iced','idea','idem','mace','mach','made','maid','maze','mead','mech','mica','mice','zeda','ached','aimed','amice','amide','azide','chide','chime','demic','hazed','hemic','maced','mache','maize','mazed','media','medic','miche','chimed','haemic','miched','zaideh'};\r\nswitch ind\r\n\tcase 1\r\n\t\tmult = ' T   d   d   T '; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 24;\r\n\t\tmax_word_corr = {'hazed'};\r\n\tcase 2\r\n\t\tmult = 'T  D  d d  D  T'; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 40;\r\n\t\tmax_word_corr = {'zaideh'};\r\n\tcase 3\r\n\t\tmult = 'Q  t  T T  t  Q'; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 162;\r\n\t\tmax_word_corr = {'cazh','hazed'};\r\n\tcase 4\r\n\t\tmult = 'Q t T d d T t Q'; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 84;\r\n\t\tmax_word_corr = {'zaideh'};\r\nend\r\n[max_score,max_word] = scrabble_scores_11(words,mult,existing_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":7,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":24,"test_suite_updated_at":"2015-03-17T13:10:14.000Z","rescore_all_solutions":false,"group_id":40,"created_at":"2015-03-15T00:22:34.000Z","updated_at":"2026-04-02T20:21:03.000Z","published_at":"2015-03-17T01:47:42.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem builds on the previous problem, wherein you were provided a letter of an existing word on the board and from which you played a word to find the highest scoring word. See the previous problem for more details.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNow, you will be provided a multiplier character array that represents the fifteen possible squares that can be played on, ranging from seven above the existing letter (in which case the existing letter is the last letter in an eight-letter word) to seven below the existing letter (in which case the existing letter is the first letter in an eight-letter word) with the existing letter fixed in the 8th position. The multipliers are the same as in previous problems:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ * D: double word\\n * T: triple word\\n * Q: quadruple word\\n * d: double letter\\n * t: triple letter\\n * q: quadruple letter]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe center multiplier square will be left blank, since it's already covered by a tile. Write a routine to determine the highest scoring word(s) based on the multiplier squares.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eOnce again, you will be provided a cell array of strings containing all possible words based on the existing letter and the letters on your tray. In addition to providing the highest score, also provide the word(s) that achieve that score in a cell array. See the test suite for examples. Due to high-scoring tiles, the highest score may not be achieved by the longest word(s).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRelated problems:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePrevious problem: 10 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3082-scrabble-scores-10\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWord score optimization (known letter)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Next problem: 12 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3097-scrabble-scores-12\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWord score optimization (first word)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":3098,"title":"Scrabble Scores - 13","description":"This problem integrates components of \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3084-scrabble-scores-11 Scrabble Scores - 11\u003e and \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3097-scrabble-scores-12 Scrabble Scores - 12\u003e. Here, you are provided an existing word on the board from which you will play a word. The letter can reside anywhere (first to last) within the existing word and within the word that you are playing. In addition, multipliers from the board are provided. Write a function to find the highest scoring word, provided any letter from the existing word that you are building off of, the letters on your tray, and the multipliers (provided in specific locations; see below).\r\n\r\nRather than having to test all the possible permutations against a dictionary, you will be provided a double-level cell array of strings containing all possible words based each starting letter in the existing word and the letters on your tray (a cell array for each letter in the existing word). (The word lists purposefully omit smaller words to prevent the test cases from being too large.) In addition to providing the highest score, also provide the word(s) that achieve that score in a cell array. See the test suite for examples. Due to high-scoring tiles, the highest score may not be achieved by the longest word(s).\r\n\r\nYou will be provided a multiplier character array that represents the fifteen possible squares that can be played on for each letter in the existing word, ranging from seven above each existing letter (in which case the existing letter is the last letter in an eight-letter word) to seven below each existing letter (in which case the existing letter is the first letter in an eight-letter word) with the existing letter fixed in the 8th (column) position. The array will have the same number of rows as the length of the existing word (which is located along the middle of the array). The multipliers are the same as in previous problems:\r\n\r\n * D: double word\r\n * T: triple word\r\n * Q: quadruple word\r\n * d: double letter\r\n * t: triple letter\r\n * q: quadruple letter\r\n\r\nThe center multiplier square will be left blank, since it's already covered by a tile.\r\n\r\nRelated problems:\r\n\r\nPrevious problem: 12 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3097-scrabble-scores-12 Word score optimization (first word)\u003e.","description_html":"\u003cp\u003eThis problem integrates components of \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3084-scrabble-scores-11\"\u003eScrabble Scores - 11\u003c/a\u003e and \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3097-scrabble-scores-12\"\u003eScrabble Scores - 12\u003c/a\u003e. Here, you are provided an existing word on the board from which you will play a word. The letter can reside anywhere (first to last) within the existing word and within the word that you are playing. In addition, multipliers from the board are provided. Write a function to find the highest scoring word, provided any letter from the existing word that you are building off of, the letters on your tray, and the multipliers (provided in specific locations; see below).\u003c/p\u003e\u003cp\u003eRather than having to test all the possible permutations against a dictionary, you will be provided a double-level cell array of strings containing all possible words based each starting letter in the existing word and the letters on your tray (a cell array for each letter in the existing word). (The word lists purposefully omit smaller words to prevent the test cases from being too large.) In addition to providing the highest score, also provide the word(s) that achieve that score in a cell array. See the test suite for examples. Due to high-scoring tiles, the highest score may not be achieved by the longest word(s).\u003c/p\u003e\u003cp\u003eYou will be provided a multiplier character array that represents the fifteen possible squares that can be played on for each letter in the existing word, ranging from seven above each existing letter (in which case the existing letter is the last letter in an eight-letter word) to seven below each existing letter (in which case the existing letter is the first letter in an eight-letter word) with the existing letter fixed in the 8th (column) position. The array will have the same number of rows as the length of the existing word (which is located along the middle of the array). The multipliers are the same as in previous problems:\u003c/p\u003e\u003cpre\u003e * D: double word\r\n * T: triple word\r\n * Q: quadruple word\r\n * d: double letter\r\n * t: triple letter\r\n * q: quadruple letter\u003c/pre\u003e\u003cp\u003eThe center multiplier square will be left blank, since it's already covered by a tile.\u003c/p\u003e\u003cp\u003eRelated problems:\u003c/p\u003e\u003cp\u003ePrevious problem: 12 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3097-scrabble-scores-12\"\u003eWord score optimization (first word)\u003c/a\u003e.\u003c/p\u003e","function_template":"function [score,max_word] = scrabble_scores_13(words,mult,first_word)\r\n\r\nscore = 0;\r\nmax_word = {''};\r\n\r\nend","test_suite":"%%\r\nfirst_word = 'start'; %the starting word; the new word must be played off of a letter in this word\r\ntray_letters = 'aethilm'; %your tray letters; informational (not part of the problem)\r\nmult = [' T   d   d   T ';'  d   t t   d  ';' D   t   t   D ';'  d   t t   d  ';' T   d   d   T '];\r\n%all possible words, including each letter of the starting word combined with your tray letters\r\nclear words\r\nwords{1} = {'aisle','alist','almeh','almes','amies','email','emits','haems','haets','hails','hales','halms','halts','hames','haste','hates','heals','heats','heils','heist','helms','hemal','hilts','islet','istle','items','laith','lames','lathe','lathi','laths','leash','least','limas','limes','litas','lites','lithe','maile','mails','maist','males','malts','mates','maths','meals','meats','melts','metal','meths','metis','miles','milts','mites','saith','salmi','satem','selah','setal','shale','shalt','shame','sheal','shiel','slate','slime','smalt','smelt','smile','smite','smith','stale','steal','steam','stela','stile','stime','taels','tails','tales','tames','tamis','teals','teams','telia','tesla','thali','tiles','times','almehs','emails','halest','halite','hamlet','haslet','hiemal','lamest','lathes','lathis','latish','mailes','mashie','mesial','metals','misate','miseat','saithe','saltie','samiel','samite','samlet','sheila','shelta','smalti','stelai','tahsil','thalis','theism','atheism','halites','hamlets','heliast'};\r\nwords{2} = {'almeh','atilt','email','hemal','laith','lathe','lathi','latte','lithe','maile','matte','metal','telia','thali','theta','tilth','tithe','title','halite','hamlet','hiemal'};\r\nwords{3} = {'alate','almah','almeh','email','halma','hamal','hemal','laith','lamia','lathe','lathi','lithe','maile','metal','tamal','telia','thali','althea','haemal','halite','hamate','hamlet','hiatal','hiemal','lamiae','malate','maltha','meatal','tamale','hematal','thalami'};\r\nwords{4} = {'aimer','airth','alert','almeh','alter','amrit','ariel','armet','artel','earth','email','haler','harem','hater','heart','hemal','herma','hilar','ihram','irate','ither','laith','lamer','later','lathe','lathi','liter','lithe','litre','maile','mater','merit','metal','miler','mirth','miter','mitre','ramet','ramie','ratel','rathe','realm','relit','remit','retia','taler','tamer','telia','terai','thali','tharm','their','therm','thirl','tiler','timer','trail','trial','armlet','hailer','halier','halite','halter','hamlet','hermai','hermit','hiemal','imaret','lather','lither','mailer','matier','milter','mither','mitral','ramtil','remail','retail','retial','tailer','thairm','thaler','thiram','tramel','lathier','maltier','marlite','thermal'};\r\nwords{5} = {'almeh','atilt','email','hemal','laith','lathe','lathi','latte','lithe','maile','matte','metal','telia','thali','theta','tilth','tithe','title','halite','hamlet','hiemal'};\r\nmax_score_corr = 39;\r\nmax_word_corr = {'hamlets'};\r\n[max_score,max_word] = scrabble_scores_13(words,mult,first_word);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(sort(max_word),sort(max_word_corr)))\r\n\r\n%%\r\nfirst_word = 'start'; %the starting word; the new word must be played off of a letter in this word\r\ntray_letters = 'aethilm'; %your tray letters; informational (not part of the problem)\r\nmult = ['T   d     d   T';'   d       d   ';'  D   d d   D  ';'   d       d   ';'T   d     d   T'];\r\n%all possible words, including each letter of the starting word combined with your tray letters\r\nclear words\r\nwords{1} = {'aisle','alist','almeh','almes','amies','email','emits','haems','haets','hails','hales','halms','halts','hames','haste','hates','heals','heats','heils','heist','helms','hemal','hilts','islet','istle','items','laith','lames','lathe','lathi','laths','leash','least','limas','limes','litas','lites','lithe','maile','mails','maist','males','malts','mates','maths','meals','meats','melts','metal','meths','metis','miles','milts','mites','saith','salmi','satem','selah','setal','shale','shalt','shame','sheal','shiel','slate','slime','smalt','smelt','smile','smite','smith','stale','steal','steam','stela','stile','stime','taels','tails','tales','tames','tamis','teals','teams','telia','tesla','thali','tiles','times','almehs','emails','halest','halite','hamlet','haslet','hiemal','lamest','lathes','lathis','latish','mailes','mashie','mesial','metals','misate','miseat','saithe','saltie','samiel','samite','samlet','sheila','shelta','smalti','stelai','tahsil','thalis','theism','atheism','halites','hamlets','heliast'};\r\nwords{2} = {'almeh','atilt','email','hemal','laith','lathe','lathi','latte','lithe','maile','matte','metal','telia','thali','theta','tilth','tithe','title','halite','hamlet','hiemal'};\r\nwords{3} = {'alate','almah','almeh','email','halma','hamal','hemal','laith','lamia','lathe','lathi','lithe','maile','metal','tamal','telia','thali','althea','haemal','halite','hamate','hamlet','hiatal','hiemal','lamiae','malate','maltha','meatal','tamale','hematal','thalami'};\r\nwords{4} = {'aimer','airth','alert','almeh','alter','amrit','ariel','armet','artel','earth','email','haler','harem','hater','heart','hemal','herma','hilar','ihram','irate','ither','laith','lamer','later','lathe','lathi','liter','lithe','litre','maile','mater','merit','metal','miler','mirth','miter','mitre','ramet','ramie','ratel','rathe','realm','relit','remit','retia','taler','tamer','telia','terai','thali','tharm','their','therm','thirl','tiler','timer','trail','trial','armlet','hailer','halier','halite','halter','hamlet','hermai','hermit','hiemal','imaret','lather','lither','mailer','matier','milter','mither','mitral','ramtil','remail','retail','retial','tailer','thairm','thaler','thiram','tramel','lathier','maltier','marlite','thermal'};\r\nwords{5} = {'almeh','atilt','email','hemal','laith','lathe','lathi','latte','lithe','maile','matte','metal','telia','thali','theta','tilth','tithe','title','halite','hamlet','hiemal'};\r\nmax_score_corr = 30;\r\nmax_word_corr = {'maltha'};\r\n[max_score,max_word] = scrabble_scores_13(words,mult,first_word);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(sort(max_word),sort(max_word_corr)))\r\n\r\n%%\r\nfirst_word = 'start'; %the starting word; the new word must be played off of a letter in this word\r\ntray_letters = 'aethilm'; %your tray letters; informational (not part of the problem)\r\nmult = [' T  d t t d  T ';'D  t d   d t  D';' T d t   t d T ';'D  t d   d t  D';' T  d t t d  T '];\r\n%all possible words, including each letter of the starting word combined with your tray letters\r\nclear words\r\nwords{1} = {'aisle','alist','almeh','almes','amies','email','emits','haems','haets','hails','hales','halms','halts','hames','haste','hates','heals','heats','heils','heist','helms','hemal','hilts','islet','istle','items','laith','lames','lathe','lathi','laths','leash','least','limas','limes','litas','lites','lithe','maile','mails','maist','males','malts','mates','maths','meals','meats','melts','metal','meths','metis','miles','milts','mites','saith','salmi','satem','selah','setal','shale','shalt','shame','sheal','shiel','slate','slime','smalt','smelt','smile','smite','smith','stale','steal','steam','stela','stile','stime','taels','tails','tales','tames','tamis','teals','teams','telia','tesla','thali','tiles','times','almehs','emails','halest','halite','hamlet','haslet','hiemal','lamest','lathes','lathis','latish','mailes','mashie','mesial','metals','misate','miseat','saithe','saltie','samiel','samite','samlet','sheila','shelta','smalti','stelai','tahsil','thalis','theism','atheism','halites','hamlets','heliast'};\r\nwords{2} = {'almeh','atilt','email','hemal','laith','lathe','lathi','latte','lithe','maile','matte','metal','telia','thali','theta','tilth','tithe','title','halite','hamlet','hiemal'};\r\nwords{3} = {'alate','almah','almeh','email','halma','hamal','hemal','laith','lamia','lathe','lathi','lithe','maile','metal','tamal','telia','thali','althea','haemal','halite','hamate','hamlet','hiatal','hiemal','lamiae','malate','maltha','meatal','tamale','hematal','thalami'};\r\nwords{4} = {'aimer','airth','alert','almeh','alter','amrit','ariel','armet','artel','earth','email','haler','harem','hater','heart','hemal','herma','hilar','ihram','irate','ither','laith','lamer','later','lathe','lathi','liter','lithe','litre','maile','mater','merit','metal','miler','mirth','miter','mitre','ramet','ramie','ratel','rathe','realm','relit','remit','retia','taler','tamer','telia','terai','thali','tharm','their','therm','thirl','tiler','timer','trail','trial','armlet','hailer','halier','halite','halter','hamlet','hermai','hermit','hiemal','imaret','lather','lither','mailer','matier','milter','mither','mitral','ramtil','remail','retail','retial','tailer','thairm','thaler','thiram','tramel','lathier','maltier','marlite','thermal'};\r\nwords{5} = {'almeh','atilt','email','hemal','laith','lathe','lathi','latte','lithe','maile','matte','metal','telia','thali','theta','tilth','tithe','title','halite','hamlet','hiemal'};\r\nmax_score_corr = 45;\r\nmax_word_corr = {'hamlets'};\r\n[max_score,max_word] = scrabble_scores_13(words,mult,first_word);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(sort(max_word),sort(max_word_corr)))\r\n\r\n%%\r\nfirst_word = 'thinning'; %the starting word; the new word must be played off of a letter in this word\r\ntray_letters = 'eodnirl'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including each letter of the starting word combined with your tray letters\r\nclear words\r\nwords{1} = {'diner','doter','droit','drone','elint','eloin','enrol','ident','idler','indol','inert','inlet','inter','intro','irone','lento','lined','liner','lirot','liter','litre','loden','loner','nerol','niter','nitre','nitro','noted','noter','oiled','oiler','olden','older','oldie','olein','oriel','redon','relit','reoil','riled','ronde','teind','teloi','tenor','tilde','tiled','tiler','tined','tired','toile','toled','tondi','toned','toner','trend','tried','trine','triol','trode','trone','dentil','dinero','dotier','editor','entoil','indole','ironed','linted','linter','loiter','neroli','norite','orient','retold','rident','rioted','rodent','roiled','rondel','tinder','tirled','toiled','toiler','tonier','trined','triode','lentoid','retinol','tendril','trindle'};\r\nwords{2} = {'dhole','diner','drone','eloin','enrol','helio','heron','hider','hired','holed','honed','honer','horde','idler','indol','irone','lined','liner','loden','loner','nerol','oiled','oiler','olden','older','oldie','olein','oriel','redon','reoil','rhino','riled','ronde','dehorn','dinero','heroin','hinder','hoiden','holden','holder','holier','hondle','honied','horned','indole','ironed','neroli','roiled','rondel','hordein','inholder'};\r\nwords{3} = {'diner','drone','eloin','enrol','idler','indie','indol','indri','iodin','irone','lined','liner','loden','loner','nerol','oiled','oiler','olden','older','oldie','olein','oriel','redon','reoil','riled','ronde','dinero','indole','inlier','iodine','ironed','linier','neroli','oilier','roiled','rondel'};\r\nwords{4} = {'diner','donne','drone','eloin','enrol','idler','indol','inned','inner','irone','lined','linen','liner','loden','loner','nerol','niner','oiled','oiler','olden','older','oldie','olein','oriel','redon','renin','reoil','riled','ronde','ronin','dinero','dinner','endrin','indole','ironed','linden','neroli','online','roiled','rondel','ronnel'};\r\nwords{5} = {'diner','donne','drone','eloin','enrol','idler','indol','inned','inner','irone','lined','linen','liner','loden','loner','nerol','niner','oiled','oiler','olden','older','oldie','olein','oriel','redon','renin','reoil','riled','ronde','ronin','dinero','dinner','endrin','indole','ironed','linden','neroli','online','roiled','rondel','ronnel'};\r\nwords{6} = {'diner','drone','eloin','enrol','idler','indie','indol','indri','iodin','irone','lined','liner','loden','loner','nerol','oiled','oiler','olden','older','oldie','olein','oriel','redon','reoil','riled','ronde','dinero','indole','inlier','iodine','ironed','linier','neroli','oilier','roiled','rondel'};\r\nwords{7} = {'diner','donne','drone','eloin','enrol','idler','indol','inned','inner','irone','lined','linen','liner','loden','loner','nerol','niner','oiled','oiler','olden','older','oldie','olein','oriel','redon','renin','reoil','riled','ronde','ronin','dinero','dinner','endrin','indole','ironed','linden','neroli','online','roiled','rondel','ronnel'};\r\nwords{8} = {'deign','diner','dinge','dingo','dirge','dogie','doing','drone','eloin','enrol','gelid','genro','geoid','giron','glide','goner','gored','gride','grind','groin','idler','indol','ingle','irone','liger','lined','liner','lingo','loden','lodge','login','loner','longe','nerol','ogled','ogler','oiled','oiler','olden','older','oldie','olein','oriel','redon','reign','renig','reoil','ridge','riled','ronde','dinero','dinger','dingle','doling','dongle','eloign','engild','engird','eringo','gilder','girdle','girned','glider','golden','golder','ignore','indole','ironed','legion','linger','lodger','logier','longed','longer','neroli','reding','regild','region','ridgel','ringed','roiled','rondel','eroding','glenoid','gloried','godlier','groined','ignored','lording','negroid','redoing'};\r\nind = randi(3);\r\nswitch ind\r\n\tcase 1\r\n\t\tmult = [' T   d   d   T ';'  d   t t   d  ';' D   t   t   D ';'   D       D   ';'   D       D   ';' D   t   t   D ';'  d   t t   d  ';' T   d   d   T '];\r\n\t\tmax_score_corr = 33;\r\n\t\tmax_word_corr = {'godlier'};\r\n\tcase 2\r\n\t\tmult = ['T   d     d   T';'   d       d   ';'  D   d d   D  ';'   d       d   ';'T   d     d   T';'   d       d   ';'  D   d d   D  ';'   d       d   '];\r\n\t\tmax_score_corr = 16;\r\n\t\tmax_word_corr = {'indole','iodine','ironed','endrin','linden'};\r\n\tcase 3\r\n\t\tmult = ['T   d     d   T';' T  d t t d  T ';'D  t d   d t  D';' T d t   t d T ';'  T   d d   T  ';' T d t   t d T ';'D  t d   d t  D';' T  d t t d  T '];\r\n\t\tmax_score_corr = 45;\r\n\t\tmax_word_corr = {'hordein'};\r\nend\r\n[max_score,max_word] = scrabble_scores_13(words,mult,first_word);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(sort(max_word),sort(max_word_corr)))\r\n\r\n%%\r\nfirst_word = 'novels'; %the starting word; the new word must be played off of a letter in this word\r\ntray_letters = 'dmvxeao'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including each letter of the starting word combined with your tray letters\r\nclear words\r\nwords{1} = {'ad','ae','am','an','ax','da','de','do','ed','em','en','ex','ma','me','mo','na','ne','no','od','oe','om','on','ox','ado','and','ane','ave','avo','axe','dam','dan','den','dev','dex','doe','dom','don','emo','end','eon','mad','mae','man','max','med','men','moa','mod','mon','nae','nam','nav','nod','nom','oda','ode','oma','one','ova','van','vex','voe','vox','aeon','amen','axed','axon','dame','damn','dean','demo','deva','dome','dona','done','dove','exam','exon','made','mane','mano','mead','mean','mend','meno','moan','mode','move','moxa','name','nave','nema','node','noma','nome','nova','odea','omen','oven','oxen','vane','vena','vend','admen','amend','anode','axmen','axone','daven','demon','devon','doven','maned','maven','maxed','menad','monad','monde','moved','named','nomad','novae','vaned','venom','daemon','moaned'};\r\nwords{2} = {'ad','ae','am','ax','da','de','do','ed','em','ex','ma','me','mo','od','oe','om','ox','ado','ave','avo','axe','dam','dev','dex','doe','dom','emo','mad','mae','max','med','moa','mod','moo','oda','ode','oma','ova','oxo','vex','voe','vox','axed','dame','demo','deva','dome','doom','dove','exam','made','mead','mode','mood','move','moxa','odea','maxed','mooed','moved'};\r\nwords{3} = {'ad','ae','am','ax','da','de','do','ed','em','ex','ma','me','mo','od','oe','om','ox','ado','ave','avo','axe','dam','dev','dex','doe','dom','emo','mad','mae','max','med','moa','mod','oda','ode','oma','ova','vav','vex','voe','vox','axed','dame','demo','deva','dome','dove','exam','made','mead','mode','move','moxa','odea','maxed','moved'};\r\nwords{4} = {'ad','ae','am','ax','da','de','do','ed','em','ex','ma','me','mo','od','oe','om','ox','ado','ave','avo','axe','dam','dee','dev','dex','doe','dom','eme','emo','eve','mad','mae','max','med','moa','mod','oda','ode','oma','ova','vee','vex','voe','vox','axed','dame','deem','deme','demo','deva','dome','dove','eave','exam','exed','made','mead','meed','mode','move','moxa','odea','adeem','deave','eaved','edema','evade','maxed','moved','vexed','oedema'};\r\nwords{5} = {'ad','ae','al','am','ax','da','de','do','ed','el','em','ex','la','lo','ma','me','mo','od','oe','om','ox','ado','ale','ave','avo','axe','dal','dam','del','dev','dex','doe','dol','dom','eld','elm','emo','lad','lam','lav','lax','lea','led','lev','lex','lox','mad','mae','max','med','mel','moa','mod','mol','oda','ode','old','ole','oma','ova','vex','voe','vox','alme','aloe','axed','axel','axle','dale','dame','deal','demo','deva','dole','dome','dove','exam','lade','lame','lave','lead','leva','levo','load','loam','lode','love','made','male','mead','meal','meld','mode','mola','mold','mole','move','moxa','odea','olde','olea','oval','vale','veal','vela','veld','vole','amole','axled','dolma','domal','laevo','lamed','laved','loved','loxed','maxed','medal','modal','model','moved','voled','voxel','loamed'};\r\nwords{6} = {'ad','ae','am','as','ax','da','de','do','ed','em','es','ex','ma','me','mo','od','oe','om','os','ox','so','ado','ads','ave','avo','axe','dam','das','dev','dex','doe','dom','dos','eds','emo','ems','mad','mae','mas','max','med','moa','mod','mos','oda','ode','ods','oes','oma','oms','ose','ova','sad','sae','sax','sea','sev','sex','sod','som','sox','vas','vex','voe','vox','ados','aves','avos','axed','axes','dame','dams','demo','deva','devs','does','dome','doms','dosa','dose','dove','emos','exam','made','mads','maes','mead','meds','mesa','moas','mode','mods','move','moxa','odas','odea','odes','omas','oxes','sade','same','save','seam','soda','soma','some','vase','voes','dames','demos','devas','domes','doves','exams','maxed','maxes','meads','modes','moved','moves','moxas','oaves','saved','soave','vadose','vamose','vamosed'};\r\nind = randi(3);\r\nswitch ind\r\n\tcase 1\r\n\t\tmult = [' T   d   d   T ';'  d   t t   d  ';' D   t   t   D ';'   D       D   ';'   D       D   ';' D   t   t   D '];\r\n\t\tmax_score_corr = 37;\r\n\t\tmax_word_corr = {'vox'};\r\n\tcase 2\r\n\t\tmult = ['T   d     d   T';'  D   d d   D  ';'   d       d   ';'T   d     d   T';'   d       d   ';'  D   d d   D  '];\r\n\t\tmax_score_corr = 25;\r\n\t\tmax_word_corr = {'vox'};\r\n\tcase 3\r\n\t\tmult = [' T  d t t d  T ';'D  t d   d t  D';' T d t   t d T ';'  T   d d   T  ';' T d t   t d T ';'D  t d   d t  D'];\r\n\t\tmax_score_corr = 35;\r\n\t\tmax_word_corr = {'voxel'};\r\nend\r\n[max_score,max_word] = scrabble_scores_13(words,mult,first_word);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(sort(max_word),sort(max_word_corr)))\r\n\r\n%%\r\nfirst_word = 'zoologist'; %the starting word; the new word must be played off of a letter in this word\r\ntray_letters = 'aehcmdi'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including each letter of the starting word combined with your tray letters\r\nclear words\r\nwords{1} = {'aced','ache','acid','acme','adze','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','cazh','cedi','chad','chai','cham','chem','chez','chia','chid','dace','dame','daze','dice','dime','each','emic','hade','haed','haem','hame','haze','head','hide','hied','iced','idea','idem','mace','mach','made','maid','maze','mead','mech','mica','mice','zeda','ached','aimed','amice','amide','azide','chide','chime','demic','hazed','hemic','maced','mache','maize','mazed','media','medic','miche','chimed','haemic','miched','zaideh'};\r\nwords{2} = {'aced','ache','acid','acme','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','camo','cedi','chad','chai','cham','chao','chem','chia','chid','ciao','coda','code','coed','coma','come','dace','dame','deco','demo','dice','dime','dome','each','echo','emic','hade','haed','haem','hame','head','hide','hied','hoed','homa','home','iced','idea','idem','mace','mach','made','maid','mead','mech','mica','mice','mode','modi','oche','odah','odea','odic','ohed','ohia','ached','aimed','amice','amide','amido','cameo','chemo','chiao','chide','chime','comae','demic','demoi','domic','hemic','homed','homie','maced','mache','macho','mahoe','media','medic','miche','mocha','mochi','ohmic','chimed','codeia','cohead','comade','haemic','hemoid','medico','miched','modica','haemoid'};\r\nwords{3} = {'aced','ache','acid','acme','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','camo','cedi','chad','chai','cham','chao','chem','chia','chid','ciao','coda','code','coed','coma','come','dace','dame','deco','demo','dice','dime','dome','each','echo','emic','hade','haed','haem','hame','head','hide','hied','hoed','homa','home','iced','idea','idem','mace','mach','made','maid','mead','mech','mica','mice','mode','modi','oche','odah','odea','odic','ohed','ohia','ached','aimed','amice','amide','amido','cameo','chemo','chiao','chide','chime','comae','demic','demoi','domic','hemic','homed','homie','maced','mache','macho','mahoe','media','medic','miche','mocha','mochi','ohmic','chimed','codeia','cohead','comade','haemic','hemoid','medico','miched','modica','haemoid'};\r\nwords{4} = {'aced','ache','acid','acme','ahed','ahem','aide','alec','alme','amid','amie','cade','cadi','caid','calm','came','cami','cedi','ceil','chad','chai','cham','chem','chia','chid','clad','clam','dace','dahl','dale','dame','deal','deil','deli','dhal','dial','dice','diel','dime','each','elhi','emic','hade','haed','haem','hail','hale','halm','hame','head','heal','heil','held','helm','hide','hied','hila','iced','idea','idem','idle','ilea','lace','lade','laic','laid','lame','lead','lech','lice','lich','lied','lima','lime','mace','mach','made','maid','mail','male','mead','meal','mech','meld','mica','mice','mild','mile','ached','ailed','aimed','alcid','almeh','amice','amide','camel','chela','chide','chiel','child','chile','chime','clade','claim','clime','decal','demic','email','haled','halid','hemal','hemic','ideal','ileac','laced','laich','lamed','leach','limed','maced','mache','macle','maile','malic','medal','media','medic','melic','miche','milch','calmed','chield','childe','chimed','chimla','haemic','hailed','halide','heliac','hiemal','lamedh','macled','mailed','malice','medial','miched','camelid','claimed','decimal','declaim','medical'};\r\nwords{5} = {'aced','ache','acid','acme','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','camo','cedi','chad','chai','cham','chao','chem','chia','chid','ciao','coda','code','coed','coma','come','dace','dame','deco','demo','dice','dime','dome','each','echo','emic','hade','haed','haem','hame','head','hide','hied','hoed','homa','home','iced','idea','idem','mace','mach','made','maid','mead','mech','mica','mice','mode','modi','oche','odah','odea','odic','ohed','ohia','ached','aimed','amice','amide','amido','cameo','chemo','chiao','chide','chime','comae','demic','demoi','domic','hemic','homed','homie','maced','mache','macho','mahoe','media','medic','miche','mocha','mochi','ohmic','chimed','codeia','cohead','comade','haemic','hemoid','medico','miched','modica','haemoid'};\r\nwords{6} = {'aced','ache','acid','acme','aged','ahed','ahem','aide','amid','amie','cade','cadi','cage','caid','came','cami','cedi','chad','chai','cham','chem','chia','chid','dace','dame','dice','dime','each','egad','emic','gach','gadi','gaed','game','gied','hade','haed','haem','hame','head','hide','hied','iced','idea','idem','mace','mach','made','mage','magi','maid','mead','mech','mega','mica','mice','ached','aimed','amice','amide','cadge','caged','chide','chime','demic','gamed','gamic','hemic','image','maced','mache','magic','media','medic','miche','midge','chimed','degami','gached','haemic','imaged','miched'};\r\nwords{7} = {'aced','ache','acid','acme','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','cedi','chad','chai','cham','chem','chia','chid','dace','dame','dice','dime','each','emic','hade','haed','haem','hame','head','hide','hied','iced','idea','idem','imid','mace','mach','made','maid','mead','mech','mica','mice','midi','ached','aimed','amice','amici','amide','chide','chime','demic','hemic','imide','maced','mache','media','medic','medii','miche','amidic','chimed','haemic','miched'};\r\nwords{8} = {'aced','aces','ache','acid','acme','ahed','ahem','ahis','aide','aids','aims','amid','amie','amis','asci','cade','cadi','cads','caid','came','cami','cams','case','cash','cedi','chad','chai','cham','chem','chia','chid','chis','dace','dahs','dais','dame','dams','dash','desi','dice','dies','dime','dims','disc','dish','each','edhs','emic','hade','haed','haem','haes','hame','hams','head','hems','hide','hied','hies','hims','iced','ices','ichs','idea','idem','ides','mace','mach','macs','made','mads','maes','maid','mash','mead','mech','meds','mesa','mesh','mica','mice','mics','mids','mise','sade','sadi','said','same','scad','scam','seam','semi','shad','sham','shea','shed','shim','sice','side','sidh','sima','ached','aches','acids','acmes','aides','aimed','amice','amide','amids','amies','asdic','ashed','aside','cades','cadis','caids','cames','camis','cased','cedis','chads','chais','chams','chase','chasm','chems','chias','chide','chime','daces','dames','dashi','deash','deism','demic','deshi','dices','dimes','disme','emics','hades','haems','hames','heads','hemic','hides','ideas','maced','maces','mache','machs','maids','meads','mechs','media','medic','mesic','micas','miche','sadhe','saice','shade','shame','shied','sidhe','amices','amides','camise','cashed','chaise','chased','chiasm','chides','chimed','chimes','emdash','haemic','maches','mashed','mashie','medias','medics','miched','miches','sachem','samech','schema','shamed','simcha','chamise','chasmed'};\r\nwords{9} = {'aced','ache','acid','acme','adit','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','cate','cedi','chad','chai','cham','chat','chem','chia','chid','chit','cite','dace','dame','date','dice','diet','dime','dita','dite','each','eath','echt','edit','emic','emit','etch','etic','hade','haed','haem','haet','hame','hate','head','heat','hide','hied','iced','idea','idem','itch','item','mace','mach','made','maid','mate','math','mead','meat','mech','meta','meth','mica','mice','mite','tace','tach','tame','team','tech','thae','them','tide','tied','time','ached','acted','admit','aimed','aitch','amice','amide','cadet','cheat','chide','chime','cited','death','demic','demit','dicta','ditch','edict','ethic','hated','hemic','maced','mache','match','mated','media','medic','miche','tache','tamed','teach','theca','timed','chimed','dacite','detach','haemic','itched','miched','hematic','matched'};\r\nind = randi(3);\r\nswitch ind\r\n\tcase 1\r\n\t\tmult = [' T   d   d   T ';'  d   t t   d  ';' D   t   t   D ';'   D       D   ';' d   T   T   d ';'   D       D   ';' D   t   t   D ';'  d   t t   d  ';' T   d   d   T '];\r\n\t\tmax_score_corr = 117;\r\n\t\tmax_word_corr = {'haemoid'};\r\n\tcase 2\r\n\t\tmult = ['T   d     d   T';'   d       d   ';'  D   d d   D  ';'   d       d   ';'T   d     d   T';'   d       d   ';'  D   d d   D  ';'   d       d   ';'T   d     d   T'];\r\n\t\tmax_score_corr = 28;\r\n\t\tmax_word_corr = {'medico'};\r\n\tcase 3\r\n\t\tmult = ['T   d     d   T';' T  d t t d  T ';'D  t d   d t  D';' T d t   t d T ';'  T   d d   T  ';' T d t   t d T ';'D  t d   d t  D';' T  d t t d  T ';'T   d     d   T'];\r\n\t\tmax_score_corr = 63;\r\n\t\tmax_word_corr = {'decimal'};\r\nend\r\n[max_score,max_word] = scrabble_scores_13(words,mult,first_word);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(sort(max_word),sort(max_word_corr)))","published":true,"deleted":false,"likes_count":2,"comments_count":6,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":18,"test_suite_updated_at":"2015-03-20T18:02:10.000Z","rescore_all_solutions":false,"group_id":40,"created_at":"2015-03-20T01:53:26.000Z","updated_at":"2026-04-02T20:22:25.000Z","published_at":"2015-03-20T01:53:26.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem integrates components of\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3084-scrabble-scores-11\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eScrabble Scores - 11\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3097-scrabble-scores-12\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eScrabble Scores - 12\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Here, you are provided an existing word on the board from which you will play a word. The letter can reside anywhere (first to last) within the existing word and within the word that you are playing. In addition, multipliers from the board are provided. Write a function to find the highest scoring word, provided any letter from the existing word that you are building off of, the letters on your tray, and the multipliers (provided in specific locations; see below).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRather than having to test all the possible permutations against a dictionary, you will be provided a double-level cell array of strings containing all possible words based each starting letter in the existing word and the letters on your tray (a cell array for each letter in the existing word). (The word lists purposefully omit smaller words to prevent the test cases from being too large.) In addition to providing the highest score, also provide the word(s) that achieve that score in a cell array. See the test suite for examples. Due to high-scoring tiles, the highest score may not be achieved by the longest word(s).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYou will be provided a multiplier character array that represents the fifteen possible squares that can be played on for each letter in the existing word, ranging from seven above each existing letter (in which case the existing letter is the last letter in an eight-letter word) to seven below each existing letter (in which case the existing letter is the first letter in an eight-letter word) with the existing letter fixed in the 8th (column) position. The array will have the same number of rows as the length of the existing word (which is located along the middle of the array). The multipliers are the same as in previous problems:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ * D: double word\\n * T: triple word\\n * Q: quadruple word\\n * d: double letter\\n * t: triple letter\\n * q: quadruple letter]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe center multiplier square will be left blank, since it's already covered by a tile.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRelated problems:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePrevious problem: 12 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3097-scrabble-scores-12\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWord score optimization (first word)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":3060,"title":"Scrabble Scores - 8","description":"This problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided \u003chttp://en.wikipedia.org/wiki/Scrabble_letter_distributions#English here\u003e. (Use the English points distribution.)\r\n\r\nFor this problem, you are tasked with scoring a completed multiplayer Scrabble board. You will be provided with a character matrix representing a completed game of Scrabble, the number of players (two to four), an order array denoting the order of word placement, and a multiplier board that corresponds to the character board.\r\n\r\nSee the previous problem for details on the order array (link below). All other details from that problem should be carried over. The multiplier board will be a character matrix of the same size as the board with the following single-letter entries for letter (lowercase) or word (uppercase) multipliers:\r\n\r\n * D: double word\r\n * T: triple word\r\n * Q: quadruple word\r\n * d: double letter\r\n * t: triple letter\r\n * q: quadruple letter\r\n\r\nAs an example, suppose you are given the following board (this is test case 1):\r\n\r\n   cat  \r\n i  p   \r\n t  poet\r\n c  l   \r\nthere  \r\n\r\nThe multiplier matrix looks like this:\r\n\r\n  T   d  T\r\n          \r\n  d   D  d\r\n          \r\n  T   d  T\r\n\r\nThe first word to be played, itch, does not cover any multiplier squares, so it is scored as usual. The second word, there, covers the triple-word (T) square in the bottom-left corner in addition to the double-letter (d) square in the bottom center. This means that the last e is doubled (2 points instead of 1) and the entire word score is then tripled.\r\n\r\nThe next word to be played, apple, covers the middle double-word (D) square and the top double-letter (d) square. However, the bottom double-letter (d) square was covered by the previous word and is, therefore, not counted again, per Scrabble rules. So, you'll need to make sure that the entries in the multiplier matrix are cleared out as they are covered with tiles. Each multiplier square counts for all the words scored in a turn (if more than one), but then is covered up for subsequent words.\r\n\r\nWrite a function to calculate and return the total score for each player for the provided Scrabble boards using the accompanying multiplier matrices.\r\n\r\nRelated problems:\r\n\r\nPrevious problem: 7 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3052-scrabble-scores-7 Multiplayer board scoring\u003e. Next problem: 9 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3062-scrabble-scores-9 Optimal word score\u003e.","description_html":"\u003cp\u003eThis problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided \u003ca href = \"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\"\u003ehere\u003c/a\u003e. (Use the English points distribution.)\u003c/p\u003e\u003cp\u003eFor this problem, you are tasked with scoring a completed multiplayer Scrabble board. You will be provided with a character matrix representing a completed game of Scrabble, the number of players (two to four), an order array denoting the order of word placement, and a multiplier board that corresponds to the character board.\u003c/p\u003e\u003cp\u003eSee the previous problem for details on the order array (link below). All other details from that problem should be carried over. The multiplier board will be a character matrix of the same size as the board with the following single-letter entries for letter (lowercase) or word (uppercase) multipliers:\u003c/p\u003e\u003cpre\u003e * D: double word\r\n * T: triple word\r\n * Q: quadruple word\r\n * d: double letter\r\n * t: triple letter\r\n * q: quadruple letter\u003c/pre\u003e\u003cp\u003eAs an example, suppose you are given the following board (this is test case 1):\u003c/p\u003e\u003cpre\u003e   cat  \r\n i  p   \r\n t  poet\r\n c  l   \r\nthere  \u003c/pre\u003e\u003cp\u003eThe multiplier matrix looks like this:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eT   d  T\r\n\u003c/pre\u003e\u003cpre class=\"language-matlab\"\u003ed   D  d\r\n\u003c/pre\u003e\u003cpre class=\"language-matlab\"\u003eT   d  T\r\n\u003c/pre\u003e\u003cp\u003eThe first word to be played, itch, does not cover any multiplier squares, so it is scored as usual. The second word, there, covers the triple-word (T) square in the bottom-left corner in addition to the double-letter (d) square in the bottom center. This means that the last e is doubled (2 points instead of 1) and the entire word score is then tripled.\u003c/p\u003e\u003cp\u003eThe next word to be played, apple, covers the middle double-word (D) square and the top double-letter (d) square. However, the bottom double-letter (d) square was covered by the previous word and is, therefore, not counted again, per Scrabble rules. So, you'll need to make sure that the entries in the multiplier matrix are cleared out as they are covered with tiles. Each multiplier square counts for all the words scored in a turn (if more than one), but then is covered up for subsequent words.\u003c/p\u003e\u003cp\u003eWrite a function to calculate and return the total score for each player for the provided Scrabble boards using the accompanying multiplier matrices.\u003c/p\u003e\u003cp\u003eRelated problems:\u003c/p\u003e\u003cp\u003ePrevious problem: 7 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3052-scrabble-scores-7\"\u003eMultiplayer board scoring\u003c/a\u003e. Next problem: 9 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3062-scrabble-scores-9\"\u003eOptimal word score\u003c/a\u003e.\u003c/p\u003e","function_template":"function [score] = scrabble_scores_8(board,n_pl,order,mult)\r\n\r\nscore = zeros(1,n_pl);\r\n\r\nend\r\n","test_suite":"%%\r\nboard = [\r\n\r\n'   cat  ';\r\n' i  p   ';\r\n' t  poet';\r\n' c  l   ';\r\n'there   ';\r\n];\r\nn_pl = 2;\r\norder = cell(1,5);\r\norder(1) = {[2,2; 5,2]};\r\norder(2) = {[5,1; 5,5]};\r\norder(3) = {[1,5; 5,5]};\r\norder(4) = {[3,5; 3,8]};\r\norder(5) = {[1,4; 1,6]};\r\nmult = [\r\n\r\n'T   d  T';\r\n'        ';\r\n'd   D  d';\r\n'        ';\r\n'T   d  T';\r\n];\r\nscore = [34 34];\r\nassert(isequal(scrabble_scores_8(board,n_pl,order,mult),score))\r\n\r\n%%\r\nboard = [\r\n\r\n'stratagems';\r\n' h      a ';\r\n'hello   t ';\r\n' r      l ';\r\n'fellow  a ';\r\n'    a   b ';\r\n' users    ';\r\n];\r\nn_pl = 2;\r\norder = cell(1,7);\r\norder(1) = {[1,1; 1,10]};\r\norder(2) = {[1,9; 6,9]};\r\norder(3) = {[1,2; 5,2]};\r\norder(4) = {[5,1; 5,6]};\r\norder(5) = {[5,5; 7,5]};\r\norder(6) = {[3,1; 3,5]};\r\norder(7) = {[7,2; 7,6]};\r\nmult = [\r\n\r\n'T  t  t  T';\r\n'          ';\r\n'D  d  d  D';\r\n'          ';\r\n'D  d  d  D';\r\n'          ';\r\n'T  t  t  T';\r\n];\r\nscore = [189 54];\r\nassert(isequal(scrabble_scores_8(board,n_pl,order,mult),score))\r\n\r\n%%\r\nboard = [\r\n\r\n' what   y ';\r\n'    h  do ';\r\n'  this  um';\r\n' l  n    a';\r\n' of keen t';\r\n' o   e   l';\r\n' problem a';\r\n'      noob';\r\n];\r\nn_pl = 3;\r\norder = cell(1,12);\r\norder(1) = {[1,2; 1,5]};\r\norder(2) = {[1,5; 5,5]};\r\norder(3) = {[3,3; 3,7]};\r\norder(4) = {[5,5; 5,8]};\r\norder(5) = {[5,6; 7,6]};\r\norder(6) = {[7,2; 7,8]};\r\norder(7) = {[4,2; 7,2]};\r\nm_words(:,:,1) = [8,7; 8,10];\r\nm_words(:,:,2) = [7,7; 8,7];\r\nm_words(:,:,3) = [7,8; 8,8];\r\norder(8) = {m_words};\r\norder(9) = {[3,10; 8,10]};\r\nclear m_words\r\nm_words(:,:,1) = [1,9; 3,9];\r\nm_words(:,:,2) = [3,9; 3,10];\r\norder(10) = {m_words};\r\norder(11) = {[5,2; 5,3]};\r\norder(12) = {[2,8; 2,9]};\r\nmult = [\r\n\r\n'T    t   T';\r\n' d      d ';\r\n'  d    d  ';\r\n'   D     t';\r\n't     D   ';\r\n'  d    d  ';\r\n' d      d ';\r\n'T   t    T';\r\n];\r\nscore = [43 44 39];\r\nassert(isequal(scrabble_scores_8(board,n_pl,order,mult),score))\r\n\r\n%%\r\nboard = [\r\n\r\n' if  you  ';\r\n'  i  u    ';\r\n'  like    ';\r\n' met  g   ';\r\n' e    it l';\r\n' e    v  i';\r\n' please  k';\r\n'      node';\r\n];\r\nn_pl = 2;\r\norder = cell(1,12);\r\norder(1) = {[1,2; 1,3]};\r\norder(2) = {[1,3; 4,3]};\r\norder(3) = {[3,3; 3,6]};\r\norder(4) = {[1,6; 3,6]};\r\norder(5) = {[1,6; 1,8]};\r\nm_words(:,:,1) = [4,2; 4,4];\r\nm_words(:,:,2) = [3,4; 4,4];\r\norder(6) = {m_words};\r\norder(7) = {[4,2; 7,2]};\r\norder(8) = {[7,2; 7,7]};\r\norder(9) = {[4,7; 7,7]};\r\nm_words(:,:,1) = [8,7; 8,10];\r\nm_words(:,:,2) = [4,7; 8,7];\r\norder(10) = {m_words};\r\norder(11) = {[5,10; 8,10]};\r\norder(12) = {[5,7; 5,8]};\r\nmult = [\r\n\r\n' T   T  T ';\r\n'   d     d';\r\n'  D   D   ';\r\n' D t  d   ';\r\n'         d';\r\n'   d  t   ';\r\n' d  D   D ';\r\n'  T   T  T';\r\n];\r\nscore = [67 140];\r\nassert(isequal(scrabble_scores_8(board,n_pl,order,mult),score))\r\n\r\n%\r\nboard = [\r\n\r\n'c    flummoxes zither';\r\n'al    o      e e    e';\r\n'ba  hunting  eerie  b';\r\n'ab  a g   e    o    e';\r\n'lo  n     m g       l';\r\n' r  g      responses ';\r\n'random      n    u u ';\r\n' t  v   c  below p r ';\r\n'convention  r    e f ';\r\n' r  r   n   a   areas';\r\n' y      v c t    i c ';\r\n'   o  philosophy o em';\r\n'travel  n n r    r  e';\r\n'   e    c t         e';\r\n' word   i a    writer';\r\n'   t    n c    o    l';\r\n'p fortnight   rock  y';\r\n'i  n            h    ';\r\n'novelty m concatenate';\r\n'c e  o  a    a  s   g';\r\n'heterogeneousness   g';\r\n];\r\nn_pl = 4;\r\norder = cell(1,41);\r\norder(1) = {[12,7; 12,16]};\r\norder(2) = {[5,13; 13,13]};\r\norder(3) = {[8,9; 17,9]};\r\norder(4) = {[11,11; 17,11]};\r\norder(5) = {[17,3; 17,11]};\r\norder(6) = {[8,12; 8,16]};\r\norder(7) = {[6,12; 6,20]};\r\norder(8) = {[6,18; 13,18]};\r\norder(9) = {[10,17; 10,21]};\r\norder(10) = {[9,1; 9,10]};\r\norder(11) = {[12,4; 19,4]};\r\norder(12) = {[2,2; 11,2]};\r\norder(13) = {[7,1; 7,6]};\r\norder(14) = {[13,1; 13,6]};\r\norder(15) = {[15,2; 15,5]};\r\norder(16) = {[19,1; 19,7]};\r\norder(17) = {[3,5; 10,5]};\r\norder(18) = {[3,5; 3,11]};\r\nm_words(:,:,1) = [1,1; 5,1];\r\nm_words(:,:,2) = [2,1; 2,2];\r\nm_words(:,:,3) = [3,1; 3,2];\r\nm_words(:,:,4) = [4,1; 4,2];\r\nm_words(:,:,5) = [5,1; 5,2];\r\norder(19) = {m_words};\r\norder(20) = {[17,1; 21,1]};\r\norder(21) = {[21,1; 21,17]};\r\norder(22) = {[6,20; 12,20]};\r\nclear m_words\r\nm_words(:,:,1) = [12,21; 17,21];\r\nm_words(:,:,2) = [12,20; 12,21];\r\norder(23) = {m_words};\r\norder(24) = {[15,16; 15,21]};\r\norder(25) = {[3,11; 5,11]};\r\norder(26) = {[17,17; 21,17]};\r\norder(27) = {[17,15; 17,18]};\r\norder(28) = {[19,11; 19,21]};\r\norder(29) = {[19,14; 21,14]};\r\norder(30) = {[1,7; 4,7]};\r\norder(31) = {[1,6; 1,14]};\r\norder(32) = {[19,21; 21,21]};\r\norder(33) = {[19,6; 21,6]};\r\norder(34) = {[1,14; 3,14]};\r\norder(35) = {[3,14; 3,18]};\r\norder(36) = {[1,16; 4,16]};\r\norder(37) = {[1,16; 1,21]};\r\norder(38) = {[1,21; 5,21]};\r\norder(39) = {[19,3; 21,3]};\r\norder(40) = {[19,9; 21,9]};\r\norder(41) = {[15,16; 17,16]};\r\nmult = [\r\n\r\n'Q  d   T  d  T   d  Q';\r\n' D  t   D   D   t  D ';\r\n'  D  q   D D   q  D  ';\r\n'd  T  d   T   d  T  d';\r\n' t  D   t   t   D  t ';\r\n'  q  D   d d   D  q  ';\r\n'   d  D   d   D  d   ';\r\n'T      D     D      T';\r\n' D  t   t   t   t  D ';\r\n'  D  d   d d   d  D  ';\r\n'd   T d   D   d  T  d';\r\n'  D  d   d d   d  D  ';\r\n' D  t   t   t   t  D ';\r\n'T      D     D      T';\r\n'   d  D   d   D  d   ';\r\n'  q  D   d d   D  q  ';\r\n' t  D   t   t   D  t ';\r\n'd  T  d   T   d  T  d';\r\n'  D  q   D D   q  D  ';\r\n' D  t   D   D   t  D ';\r\n'Q  d   T  d  T   d  Q';\r\n];\r\nscore = [433 188 430 300];\r\nassert(isequal(scrabble_scores_8(board,n_pl,order,mult),score))\r\n\r\n%% anti-cheating test case (random number of players from random board)\r\nind = randi(4);\r\nind2 = randi(3)+1;\r\nswitch ind\r\ncase 1\r\nboard = [\r\n\r\n'   cat  ';\r\n' i  p   ';\r\n' t  poet';\r\n' c  l   ';\r\n'there   ';\r\n];\r\norder = cell(1,5);\r\norder(1) = {[2,2; 5,2]};\r\norder(2) = {[5,1; 5,5]};\r\norder(3) = {[1,5; 5,5]};\r\norder(4) = {[3,5; 3,8]};\r\norder(5) = {[1,4; 1,6]};\r\nmult = [\r\n\r\n'T   d  T';\r\n'        ';\r\n'd   D  d';\r\n'        ';\r\n'T   d  T';\r\n];\r\nswitch ind2\r\n\tcase 2\r\n\t\tn_pl = 2;\r\n\t\tscore = [34 34];\r\n\tcase 3\r\n\t\tn_pl = 3;\r\n\t\tscore = [16 32 20];\r\n\tcase 4\r\n\t\tn_pl = 4;\r\n\t\tscore = [14 27 20 7];\r\nend\r\ncase 2\r\nboard = [\r\n'stratagems';\r\n' h      a ';\r\n'hello   t ';\r\n' r      l ';\r\n'fellow  a ';\r\n'    a   b ';\r\n' users    '];\r\norder = cell(1,7);\r\norder(1) = {[1,1; 1,10]};\r\norder(2) = {[1,9; 6,9]};\r\norder(3) = {[1,2; 5,2]};\r\norder(4) = {[5,1; 5,6]};\r\norder(5) = {[5,5; 7,5]};\r\norder(6) = {[3,1; 3,5]};\r\norder(7) = {[7,2; 7,6]};\r\nmult = [\r\n\r\n'T  t  t  T';\r\n'          ';\r\n'D  d  d  D';\r\n'          ';\r\n'D  d  d  D';\r\n'          ';\r\n'T  t  t  T';\r\n];\r\nswitch ind2\r\n\tcase 2\r\n\t\tn_pl = 2;\r\n\t\tscore = [189 54];\r\n\tcase 3\r\n\t\tn_pl = 3;\r\n\t\tscore = [204 13 26];\r\n\tcase 4\r\n\t\tn_pl = 4;\r\n\t\tscore = [174 28 15 26];\r\nend\r\ncase 3\r\nboard = [\r\n\r\n' what   y ';\r\n'    h  do ';\r\n'  this  um';\r\n' l  n    a';\r\n' of keen t';\r\n' o   e   l';\r\n' problem a';\r\n'      noob';\r\n];\r\norder = cell(1,12);\r\norder(1) = {[1,2; 1,5]};\r\norder(2) = {[1,5; 5,5]};\r\norder(3) = {[3,3; 3,7]};\r\norder(4) = {[5,5; 5,8]};\r\norder(5) = {[5,6; 7,6]};\r\norder(6) = {[7,2; 7,8]};\r\norder(7) = {[4,2; 7,2]};\r\nm_words(:,:,1) = [8,7; 8,10];\r\nm_words(:,:,2) = [7,7; 8,7];\r\nm_words(:,:,3) = [7,8; 8,8];\r\norder(8) = {m_words};\r\norder(9) = {[3,10; 8,10]};\r\nclear m_words\r\nm_words(:,:,1) = [1,9; 3,9];\r\nm_words(:,:,2) = [3,9; 3,10];\r\norder(10) = {m_words};\r\norder(11) = {[5,2; 5,3]};\r\norder(12) = {[2,8; 2,9]};\r\nmult = [\r\n\r\n'T    t   T';\r\n' d      d ';\r\n'  d    d  ';\r\n'   D     t';\r\n't     D   ';\r\n'  d    d  ';\r\n' d      d ';\r\n'T   t    T';\r\n];\r\nswitch ind2\r\n\tcase 2\r\n\t\tn_pl = 2;\r\n\t\tscore = [44 82];\r\n\tcase 3\r\n\t\tn_pl = 3;\r\n\t\tscore = [43 44 39];\r\n\tcase 4\r\n\t\tn_pl = 4;\r\n\t\tscore = [25 39 19 43];\r\nend\r\ncase 4\r\nboard = [\r\n\r\n' if  you  ';\r\n'  i  u    ';\r\n'  like    ';\r\n' met  g   ';\r\n' e    it l';\r\n' e    v  i';\r\n' please  k';\r\n'      node';\r\n];\r\norder = cell(1,12);\r\norder(1) = {[1,2; 1,3]};\r\norder(2) = {[1,3; 4,3]};\r\norder(3) = {[3,3; 3,6]};\r\norder(4) = {[1,6; 3,6]};\r\norder(5) = {[1,6; 1,8]};\r\nm_words(:,:,1) = [4,2; 4,4];\r\nm_words(:,:,2) = [3,4; 4,4];\r\norder(6) = {m_words};\r\norder(7) = {[4,2; 7,2]};\r\norder(8) = {[7,2; 7,7]};\r\norder(9) = {[4,7; 7,7]};\r\nm_words(:,:,1) = [8,7; 8,10];\r\nm_words(:,:,2) = [4,7; 8,7];\r\norder(10) = {m_words};\r\norder(11) = {[5,10; 8,10]};\r\norder(12) = {[5,7; 5,8]};\r\nmult = [\r\n\r\n' T   T  T ';\r\n'   d     d';\r\n'  D   D   ';\r\n' D t  d   ';\r\n'         d';\r\n'   d  t   ';\r\n' d  D   D ';\r\n'  T   T  T';\r\n];\r\nswitch ind2\r\n\tcase 2\r\n\t\tn_pl = 2;\r\n\t\tscore = [67 140];\r\n\tcase 3\r\n\t\tn_pl = 3;\r\n\t\tscore = [116 45 46];\r\n\tcase 4\r\n\t\tn_pl = 4;\r\n\t\tscore = [39 104 28 36];\r\nend\r\nend\r\nassert(isequal(scrabble_scores_8(board,n_pl,order,mult),score))\r\n","published":true,"deleted":false,"likes_count":3,"comments_count":2,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":23,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":40,"created_at":"2015-03-03T05:04:53.000Z","updated_at":"2026-04-02T20:17:44.000Z","published_at":"2015-03-03T05:04:53.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehere\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. (Use the English points distribution.)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor this problem, you are tasked with scoring a completed multiplayer Scrabble board. You will be provided with a character matrix representing a completed game of Scrabble, the number of players (two to four), an order array denoting the order of word placement, and a multiplier board that corresponds to the character board.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSee the previous problem for details on the order array (link below). All other details from that problem should be carried over. The multiplier board will be a character matrix of the same size as the board with the following single-letter entries for letter (lowercase) or word (uppercase) multipliers:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ * D: double word\\n * T: triple word\\n * Q: quadruple word\\n * d: double letter\\n * t: triple letter\\n * q: quadruple letter]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAs an example, suppose you are given the following board (this is test case 1):\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[   cat  \\n i  p   \\n t  poet\\n c  l   \\nthere]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe multiplier matrix looks like this:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[T   d  T\\n\\nd   D  d\\n\\nT   d  T]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe first word to be played, itch, does not cover any multiplier squares, so it is scored as usual. The second word, there, covers the triple-word (T) square in the bottom-left corner in addition to the double-letter (d) square in the bottom center. This means that the last e is doubled (2 points instead of 1) and the entire word score is then tripled.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe next word to be played, apple, covers the middle double-word (D) square and the top double-letter (d) square. However, the bottom double-letter (d) square was covered by the previous word and is, therefore, not counted again, per Scrabble rules. So, you'll need to make sure that the entries in the multiplier matrix are cleared out as they are covered with tiles. Each multiplier square counts for all the words scored in a turn (if more than one), but then is covered up for subsequent words.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite a function to calculate and return the total score for each player for the provided Scrabble boards using the accompanying multiplier matrices.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRelated problems:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePrevious problem: 7 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3052-scrabble-scores-7\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMultiplayer board scoring\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Next problem: 9 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3062-scrabble-scores-9\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eOptimal word score\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"}],"problem_search":{"errors":[],"problems":[{"id":3100,"title":"Rumis Scorer 2","description":"\u003chttp://en.wikipedia.org/wiki/Rumis Rumis\u003e is a multiplayer 3D block board game where the goal is to have the most squares visible, when viewed from above, after pieces have been played till there are no moves remaining. The picture below shows a completed 4-player round. There are a variety of board stencils and permissible heights possible in this game.\r\n\r\nFor this problem, you will be provided a completed rectangular board where there are anywhere from two to six players. The players' colors will be selected from the following options, though not necessarily in this order: red (r), orange (o), yellow (y), green (g), blue (b), and purple (p). The board will be from two to six levels high and completely filled. It will also be a character array wherein the players' squares are represented by a single character per square. In line with the game's rules, all players' colors will be represented on the first level. See the test suite for examples.\r\n\r\nWrite a function to count the squares visible when viewed from above to determine who won each round.\r\n\r\n\u003c\u003chttp://www.exodusbooks.com/Samples/Games/RumisCoricanchaBig.jpg\u003e\u003e","description_html":"\u003cp\u003e\u003ca href = \"http://en.wikipedia.org/wiki/Rumis\"\u003eRumis\u003c/a\u003e is a multiplayer 3D block board game where the goal is to have the most squares visible, when viewed from above, after pieces have been played till there are no moves remaining. The picture below shows a completed 4-player round. There are a variety of board stencils and permissible heights possible in this game.\u003c/p\u003e\u003cp\u003eFor this problem, you will be provided a completed rectangular board where there are anywhere from two to six players. The players' colors will be selected from the following options, though not necessarily in this order: red (r), orange (o), yellow (y), green (g), blue (b), and purple (p). The board will be from two to six levels high and completely filled. It will also be a character array wherein the players' squares are represented by a single character per square. In line with the game's rules, all players' colors will be represented on the first level. See the test suite for examples.\u003c/p\u003e\u003cp\u003eWrite a function to count the squares visible when viewed from above to determine who won each round.\u003c/p\u003e\u003cimg src = \"http://www.exodusbooks.com/Samples/Games/RumisCoricanchaBig.jpg\"\u003e","function_template":"function [winner] = rumis_scorer2(board)\r\n\r\nwinner = 'r';\r\n\r\nend\r\n","test_suite":"%%\r\nclear board\r\nboard(:,:,1) = ['rrbrbbr';'rbrbbrb';'bbrbbrb';'rbrrrbr';'bbrbbbr';'bbbrrbr'];\r\nboard(:,:,2) = ['brbbbrb';'rrrbbbr';'bbrbrbr';'brbrbrr';'rbrrrbr';'brbbbbr'];\r\n%blue wins 22 to 20\r\nassert(isequal(rumis_scorer2(board),'b'))\r\n\r\n%%\r\nclear board\r\nboard(:,:,1) = ['ppbrpbr';'rbrpbrb';'bbrbbrb';'rbrrppr';'bbrpbbr';'bbprrbr'];\r\nboard(:,:,2) = ['brbpbrb';'rrpbbpr';'pprbrbr';'brprbrr';'rbrrpbr';'brppbbr'];\r\n%red wins 18 to 15 (b) to 9 (p)\r\nassert(isequal(rumis_scorer2(board),'r'))\r\n\r\n%%\r\nclear board\r\nboard(:,:,1) = ['brbrb';'rrrbb';'bggob';'ggoro';'bbrbr'];\r\nboard(:,:,2) = ['bobrb';'roggr';'bogor';'bgoor';'rgrrr'];\r\nboard(:,:,3) = ['bobrg';'rrbgr';'rooor';'brbrg';'rgrrr'];\r\nboard(:,:,4) = ['borbg';'rrbbr';'bbrbr';'bboog';'rgrog'];\r\nboard(:,:,5) = ['robbr';'bbror';'borbr';'rrobb';'boobg'];\r\n%blue wins 10 to 8 (r) to 6 (o) to 1 (g)\r\nassert(isequal(rumis_scorer2(board),'b'))\r\n\r\n%%\r\nclear board\r\nboard(:,:,1) = ['rrbrryr';'rbrrryb';'brrrbyb';'rbrbyyr';'rbrbryr';'brrrybr'];\r\nboard(:,:,2) = ['brbybrb';'rbybbbr';'bbrbrbr';'brbryrr';'rbrrbbr';'brbbybr'];\r\nboard(:,:,3) = ['byyybry';'ybbbyyr';'bbrbyyr';'brbyyrr';'rbyyybr';'brybybr'];\r\n%yellow wins 16 to 15 (b) to 11 (r)\r\nassert(isequal(rumis_scorer2(board),'y'))\r\n\r\n%%\r\nclear board\r\nboard(:,:,1) = ['prbrby';'pprbby';'bggoyb';'gpyoro';'bppbyr'];\r\nboard(:,:,2) = ['pobrby';'rogygr';'bogoyr';'bgyoor';'rgyyyr'];\r\nboard(:,:,3) = ['ppbrgy';'rpybgr';'roooyr';'brybrg';'rgryrr'];\r\nboard(:,:,4) = ['borbgy';'rpbybr';'bbrbry';'bbyoog';'rgrpog'];\r\nboard(:,:,5) = ['robbry';'bprory';'borbry';'rroybb';'booybg'];\r\nboard(:,:,6) = ['oobyry';'bpryor';'bopbyr';'rooppb';'boobyg'];\r\n%orange wins 8 to 7 (b) to 5 (r,y) to 4 (p) to 1 (g)\r\nassert(isequal(rumis_scorer2(board),'o'))\r\n\r\n%% anti-cheating case\r\nind = randi(5);\r\nswitch ind\r\n\tcase 1\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['rrbrbbr';'rbrbbrb';'bbrbbrb';'rbrrrbr';'bbrbbbr';'bbbrrbr'];\r\n\t\tboard(:,:,2) = ['brbbbrb';'rrrbbbr';'bbrbrbr';'brbrbrr';'rbrrrbr';'brbbbbr'];\r\n\t\tassert(isequal(rumis_scorer2(board),'b'))\r\n\tcase 2\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['ppbrpbr';'rbrpbrb';'bbrbbrb';'rbrrppr';'bbrpbbr';'bbprrbr'];\r\n\t\tboard(:,:,2) = ['brbpbrb';'rrpbbpr';'pprbrbr';'brprbrr';'rbrrpbr';'brppbbr'];\r\n\t\tassert(isequal(rumis_scorer2(board),'r'))\r\n\tcase 3\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['brbrb';'rrrbb';'bggob';'ggoro';'bbrbr'];\r\n\t\tboard(:,:,2) = ['bobrb';'roggr';'bogor';'bgoor';'rgrrr'];\r\n\t\tboard(:,:,3) = ['bobrg';'rrbgr';'rooor';'brbrg';'rgrrr'];\r\n\t\tboard(:,:,4) = ['borbg';'rrbbr';'bbrbr';'bboog';'rgrog'];\r\n\t\tboard(:,:,5) = ['robbr';'bbror';'borbr';'rrobb';'boobg'];\r\n\t\tassert(isequal(rumis_scorer2(board),'b'))\r\n\tcase 4\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['rrbrryr';'rbrrryb';'brrrbyb';'rbrbyyr';'rbrbryr';'brrrybr'];\r\n\t\tboard(:,:,2) = ['brbybrb';'rbybbbr';'bbrbrbr';'brbryrr';'rbrrbbr';'brbbybr'];\r\n\t\tboard(:,:,3) = ['byyybry';'ybbbyyr';'bbrbyyr';'brbyyrr';'rbyyybr';'brybybr'];\r\n\t\tassert(isequal(rumis_scorer2(board),'y'))\r\n\tcase 5\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['prbrby';'pprbby';'bggoyb';'gpyoro';'bppbyr'];\r\n\t\tboard(:,:,2) = ['pobrby';'rogygr';'bogoyr';'bgyoor';'rgyyyr'];\r\n\t\tboard(:,:,3) = ['ppbrgy';'rpybgr';'roooyr';'brybrg';'rgryrr'];\r\n\t\tboard(:,:,4) = ['borbgy';'rpbybr';'bbrbry';'bbyoog';'rgrpog'];\r\n\t\tboard(:,:,5) = ['robbry';'bprory';'borbry';'rroybb';'booybg'];\r\n\t\tboard(:,:,6) = ['oobyry';'bpryor';'bopbyr';'rooppb';'boobyg'];\r\n\t\tassert(isequal(rumis_scorer2(board),'o'))\r\nend\r\n\r\n%% anti-cheating case\r\nind = randi(5);\r\nswitch ind\r\n\tcase 1\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['rrbrbbr';'rbrbbrb';'bbrbbrb';'rbrrrbr';'bbrbbbr';'bbbrrbr'];\r\n\t\tboard(:,:,2) = ['brbbbrb';'rrrbbbr';'bbrbrbr';'brbrbrr';'rbrrrbr';'brbbbbr'];\r\n\t\tassert(isequal(rumis_scorer2(board),'b'))\r\n\tcase 2\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['ppbrpbr';'rbrpbrb';'bbrbbrb';'rbrrppr';'bbrpbbr';'bbprrbr'];\r\n\t\tboard(:,:,2) = ['brbpbrb';'rrpbbpr';'pprbrbr';'brprbrr';'rbrrpbr';'brppbbr'];\r\n\t\tassert(isequal(rumis_scorer2(board),'r'))\r\n\tcase 3\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['brbrb';'rrrbb';'bggob';'ggoro';'bbrbr'];\r\n\t\tboard(:,:,2) = ['bobrb';'roggr';'bogor';'bgoor';'rgrrr'];\r\n\t\tboard(:,:,3) = ['bobrg';'rrbgr';'rooor';'brbrg';'rgrrr'];\r\n\t\tboard(:,:,4) = ['borbg';'rrbbr';'bbrbr';'bboog';'rgrog'];\r\n\t\tboard(:,:,5) = ['robbr';'bbror';'borbr';'rrobb';'boobg'];\r\n\t\tassert(isequal(rumis_scorer2(board),'b'))\r\n\tcase 4\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['rrbrryr';'rbrrryb';'brrrbyb';'rbrbyyr';'rbrbryr';'brrrybr'];\r\n\t\tboard(:,:,2) = ['brbybrb';'rbybbbr';'bbrbrbr';'brbryrr';'rbrrbbr';'brbbybr'];\r\n\t\tboard(:,:,3) = ['byyybry';'ybbbyyr';'bbrbyyr';'brbyyrr';'rbyyybr';'brybybr'];\r\n\t\tassert(isequal(rumis_scorer2(board),'y'))\r\n\tcase 5\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['prbrby';'pprbby';'bggoyb';'gpyoro';'bppbyr'];\r\n\t\tboard(:,:,2) = ['pobrby';'rogygr';'bogoyr';'bgyoor';'rgyyyr'];\r\n\t\tboard(:,:,3) = ['ppbrgy';'rpybgr';'roooyr';'brybrg';'rgryrr'];\r\n\t\tboard(:,:,4) = ['borbgy';'rpbybr';'bbrbry';'bbyoog';'rgrpog'];\r\n\t\tboard(:,:,5) = ['robbry';'bprory';'borbry';'rroybb';'booybg'];\r\n\t\tboard(:,:,6) = ['oobyry';'bpryor';'bopbyr';'rooppb';'boobyg'];\r\n\t\tassert(isequal(rumis_scorer2(board),'o'))\r\nend\r\n\r\n%% anti-cheating case\r\nind = randi(5);\r\nswitch ind\r\n\tcase 1\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['rrbrbbr';'rbrbbrb';'bbrbbrb';'rbrrrbr';'bbrbbbr';'bbbrrbr'];\r\n\t\tboard(:,:,2) = ['brbbbrb';'rrrbbbr';'bbrbrbr';'brbrbrr';'rbrrrbr';'brbbbbr'];\r\n\t\tassert(isequal(rumis_scorer2(board),'b'))\r\n\tcase 2\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['ppbrpbr';'rbrpbrb';'bbrbbrb';'rbrrppr';'bbrpbbr';'bbprrbr'];\r\n\t\tboard(:,:,2) = ['brbpbrb';'rrpbbpr';'pprbrbr';'brprbrr';'rbrrpbr';'brppbbr'];\r\n\t\tassert(isequal(rumis_scorer2(board),'r'))\r\n\tcase 3\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['brbrb';'rrrbb';'bggob';'ggoro';'bbrbr'];\r\n\t\tboard(:,:,2) = ['bobrb';'roggr';'bogor';'bgoor';'rgrrr'];\r\n\t\tboard(:,:,3) = ['bobrg';'rrbgr';'rooor';'brbrg';'rgrrr'];\r\n\t\tboard(:,:,4) = ['borbg';'rrbbr';'bbrbr';'bboog';'rgrog'];\r\n\t\tboard(:,:,5) = ['robbr';'bbror';'borbr';'rrobb';'boobg'];\r\n\t\tassert(isequal(rumis_scorer2(board),'b'))\r\n\tcase 4\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['rrbrryr';'rbrrryb';'brrrbyb';'rbrbyyr';'rbrbryr';'brrrybr'];\r\n\t\tboard(:,:,2) = ['brbybrb';'rbybbbr';'bbrbrbr';'brbryrr';'rbrrbbr';'brbbybr'];\r\n\t\tboard(:,:,3) = ['byyybry';'ybbbyyr';'bbrbyyr';'brbyyrr';'rbyyybr';'brybybr'];\r\n\t\tassert(isequal(rumis_scorer2(board),'y'))\r\n\tcase 5\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['prbrby';'pprbby';'bggoyb';'gpyoro';'bppbyr'];\r\n\t\tboard(:,:,2) = ['pobrby';'rogygr';'bogoyr';'bgyoor';'rgyyyr'];\r\n\t\tboard(:,:,3) = ['ppbrgy';'rpybgr';'roooyr';'brybrg';'rgryrr'];\r\n\t\tboard(:,:,4) = ['borbgy';'rpbybr';'bbrbry';'bbyoog';'rgrpog'];\r\n\t\tboard(:,:,5) = ['robbry';'bprory';'borbry';'rroybb';'booybg'];\r\n\t\tboard(:,:,6) = ['oobyry';'bpryor';'bopbyr';'rooppb';'boobyg'];\r\n\t\tassert(isequal(rumis_scorer2(board),'o'))\r\nend","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":36,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2015-03-21T01:22:06.000Z","updated_at":"2026-03-24T06:57:20.000Z","published_at":"2015-03-21T01:22:06.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/media/image1.JPEG\"}],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Rumis\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eRumis\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e is a multiplayer 3D block board game where the goal is to have the most squares visible, when viewed from above, after pieces have been played till there are no moves remaining. The picture below shows a completed 4-player round. There are a variety of board stencils and permissible heights possible in this game.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor this problem, you will be provided a completed rectangular board where there are anywhere from two to six players. The players' colors will be selected from the following options, though not necessarily in this order: red (r), orange (o), yellow (y), green (g), blue (b), and purple (p). The board will be from two to six levels high and completely filled. It will also be a character array wherein the players' squares are represented by a single character per square. In line with the game's rules, all players' colors will be represented on the first level. See the test suite for examples.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite a function to count the squares visible when viewed from above to determine who won each round.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"},{\"partUri\":\"/media/image1.JPEG\",\"contentType\":\"image/JPEG\",\"content\":\"data:image/JPEG;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAGuAosDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKCQOtABSEhRknArO1HW7PTYmeaVRgdzXlHiv4uRx74dPO9uRuzwPxpNpAepal4isNNUmaZBj1NVNN8Y6VqbYhuY29wwNfKWs+Lr/Vp2aedpOfu5+UVQstev9OnE0UrIc5ytGvYVz7cSRJFBVgQadXzx4Q+MMsTJBqByP74r2nRfFWn6xArwzodw7Gi4zeopFYMMg5FLTAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoqvc3sFqhaVwoHqa888VfFLT9JV4oZA8vZVOTQB397qdtYxl5pVXHqa8x8WfFq0sQ8Nm3myjjCnpXkXiP4i3+syOpnZEJ4RD/WuPklnumyScUld7CbOg8QeOdS1mZvOnOw/wKeK5zzJ7p8Mx+lbui+ErvVXTy0wjdWau6s/C+kaTCBNiS4HUnpQ2ouy1Y1BvVnDaP4QvNSIcp5Uf95u9aGp+DpbeBngPm7RyMV2kepxROF24jHpVhb2CRvlX5TXPVqYijK842Rd6KW54pJbz202NpRhWvo3im+0acNFK64PY8V6FqPh621UNsjAb+8OtcVq/hObT0ZwvmgddvatYVadVdmS4NarVHq/hH4wRybIL9tp/vZ4r1zTNdstTiV4ZlOfQ18VCKWBt8eVx2roNA8b6los6lJ2CDqpPFW01uTc+yQQRkUV5F4R+LlnfhILxxHL0+Y9a9QstTtr6MPDKrA+hpjLtFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUySVIlLOwA965TxF480zRIWLzruHbNAHUzXEUCFpHAA9a4fxP8SdM0SJh5ymTsoOSa8i8VfFe71AvHay+VH655NeYXOoXF9OztIzs3VmOTSTvsK53Pir4p6nq8jxwOYYT6H5j/hXCPPc3rkncSeSSasadol3qU6pBGzlu+OK7zSvA62IV7+RW4yYwaUpRh8W41FyOO0vw9dX8qpFCSSeWPSv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PIvIxl7aQYZT/Ue9eQ6roV5pVwySxNhT1xX1rr3g63vyLi2zDcpykicEGuC1nTI52+yeILdY3+6l6owp/wB4dvr0+lTrH0Jt2Pnu0u5IJSwYqCO1E10WBAOSe9dj4q8C3GmTNJAN8R5Vl5BFUfD/AIMuNQPnXIMcCnknitFNWA5/TdJu9TuFjhjJBPJ9K9K0fw1Y6GqPcr510w+WMDLE+wrb0bSvmFnodsHPR7gr8o+nrXpfhrwHb2BFzd5muW5Z35NS25DscroXgu+1t1m1IeVa5ytuvTHv616lpmjWumQLHDEq4HYVfjiSJAqKABT6aVhhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVR1DSrbUYWjmjVgR3FXqKAPMtR8J32msyWYFxZtnNvJyF/3T2rO0/wRqGpThLwCCzB/1Mf8X1NeukA9QDQFUdABS5Ve4GXpOhWelQLHDEq4HYVq0UUwCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//Z\"}]}"},{"id":3099,"title":"Rumis Scorer 1","description":"\u003chttp://en.wikipedia.org/wiki/Rumis Rumis\u003e is a multiplayer 3D block board game where the goal is to have the most squares visible, when viewed from above, after pieces have been played till there are no moves remaining. The picture below shows a completed 4-player round. There are a variety of board stencils and permissible heights possible in this game.\r\n\r\nFor this problem, you will be provided a completed 2-player rectangular board where the two players' colors are red and blue. The board will be two levels high and completely filled. It will also be a character array wherein the two players' squares are represented by 'r' or 'b'. See the test suite for examples.\r\n\r\nWrite a function to count the squares visible when viewed from above to determine who won each round.\r\n\r\n\u003c\u003chttp://www.exodusbooks.com/Samples/Games/RumisCoricanchaBig.jpg\u003e\u003e","description_html":"\u003cp\u003e\u003ca href = \"http://en.wikipedia.org/wiki/Rumis\"\u003eRumis\u003c/a\u003e is a multiplayer 3D block board game where the goal is to have the most squares visible, when viewed from above, after pieces have been played till there are no moves remaining. The picture below shows a completed 4-player round. There are a variety of board stencils and permissible heights possible in this game.\u003c/p\u003e\u003cp\u003eFor this problem, you will be provided a completed 2-player rectangular board where the two players' colors are red and blue. The board will be two levels high and completely filled. It will also be a character array wherein the two players' squares are represented by 'r' or 'b'. See the test suite for examples.\u003c/p\u003e\u003cp\u003eWrite a function to count the squares visible when viewed from above to determine who won each round.\u003c/p\u003e\u003cimg src = \"http://www.exodusbooks.com/Samples/Games/RumisCoricanchaBig.jpg\"\u003e","function_template":"function [winner] = rumis_scorer1(board)\r\n\r\nwinner = 'r';\r\n\r\nend\r\n","test_suite":"%%\r\nclear board\r\nboard(:,:,1) = ['rrbrbbr';'rbrbbrb';'bbrbbrb';'rbrrrbr';'bbrbbbr';'bbbrrbr'];\r\nboard(:,:,2) = ['brbbbrb';'rrrbbbr';'bbrbrbr';'brbrbrr';'rbrrrbr';'brbbbbr'];\r\n%blue wins 22 to 20\r\nassert(isequal(rumis_scorer1(board),'b'))\r\n\r\n%%\r\nclear board\r\nboard(:,:,1) = ['brbrb';'rrrbb';'bbrbb';'bbrrb';'bbrbr'];\r\nboard(:,:,2) = ['brbrb';'rrbbr';'bbrbr';'brbrr';'rbrrr'];\r\n%red wins 14 to 11\r\nassert(isequal(rumis_scorer1(board),'r'))\r\n\r\n%%\r\nclear board\r\nboard(:,:,1) = ['brb';'rrr';'bbb';'brb';'bbr'];\r\nboard(:,:,2) = ['brb';'rbr';'rbr';'brr';'rrr'];\r\n%red wins 10 to 5\r\nassert(isequal(rumis_scorer1(board),'r'))\r\n\r\n%%\r\nclear board\r\nboard(:,:,1) = ['rrbrrbr';'rbrrrrb';'brrrbrb';'rbrbrrr';'rbrbrbr';'brrrrbr'];\r\nboard(:,:,2) = ['brbbbrb';'rbbbbbr';'bbrbrbr';'brbrbrr';'rbrrbbr';'brbbbbr'];\r\n%blue wins 25 to 17\r\nassert(isequal(rumis_scorer1(board),'b'))\r\n\r\n%% anti-cheating case\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['rrbrbbr';'rbrbbrb';'bbrbbrb';'rbrrrbr';'bbrbbbr';'bbbrrbr'];\r\n\t\tboard(:,:,2) = ['brbbbrb';'rrrbbbr';'bbrbrbr';'brbrbrr';'rbrrrbr';'brbbbbr'];\r\n\t\tassert(isequal(rumis_scorer1(board),'b'))\r\n\tcase 2\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['brbrb';'rrrbb';'bbrbb';'bbrrb';'bbrbr'];\r\n\t\tboard(:,:,2) = ['brbrb';'rrbbr';'bbrbr';'brbrr';'rbrrr'];\r\n\t\tassert(isequal(rumis_scorer1(board),'r'))\r\n\tcase 3\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['brb';'rrr';'bbb';'brb';'bbr'];\r\n\t\tboard(:,:,2) = ['brb';'rbr';'rbr';'brr';'rrr'];\r\n\t\tassert(isequal(rumis_scorer1(board),'r'))\r\n\tcase 4\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['rrbrrbr';'rbrrrrb';'brrrbrb';'rbrbrrr';'rbrbrbr';'brrrrbr'];\r\n\t\tboard(:,:,2) = ['brbbbrb';'rbbbbbr';'bbrbrbr';'brbrbrr';'rbrrbbr';'brbbbbr'];\r\n\t\tassert(isequal(rumis_scorer1(board),'b'))\r\nend\r\n\r\n%% anti-cheating case\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['rrbrbbr';'rbrbbrb';'bbrbbrb';'rbrrrbr';'bbrbbbr';'bbbrrbr'];\r\n\t\tboard(:,:,2) = ['brbbbrb';'rrrbbbr';'bbrbrbr';'brbrbrr';'rbrrrbr';'brbbbbr'];\r\n\t\tassert(isequal(rumis_scorer1(board),'b'))\r\n\tcase 2\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['brbrb';'rrrbb';'bbrbb';'bbrrb';'bbrbr'];\r\n\t\tboard(:,:,2) = ['brbrb';'rrbbr';'bbrbr';'brbrr';'rbrrr'];\r\n\t\tassert(isequal(rumis_scorer1(board),'r'))\r\n\tcase 3\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['brb';'rrr';'bbb';'brb';'bbr'];\r\n\t\tboard(:,:,2) = ['brb';'rbr';'rbr';'brr';'rrr'];\r\n\t\tassert(isequal(rumis_scorer1(board),'r'))\r\n\tcase 4\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['rrbrrbr';'rbrrrrb';'brrrbrb';'rbrbrrr';'rbrbrbr';'brrrrbr'];\r\n\t\tboard(:,:,2) = ['brbbbrb';'rbbbbbr';'bbrbrbr';'brbrbrr';'rbrrbbr';'brbbbbr'];\r\n\t\tassert(isequal(rumis_scorer1(board),'b'))\r\nend\r\n\r\n%% anti-cheating case\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['rrbrbbr';'rbrbbrb';'bbrbbrb';'rbrrrbr';'bbrbbbr';'bbbrrbr'];\r\n\t\tboard(:,:,2) = ['brbbbrb';'rrrbbbr';'bbrbrbr';'brbrbrr';'rbrrrbr';'brbbbbr'];\r\n\t\tassert(isequal(rumis_scorer1(board),'b'))\r\n\tcase 2\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['brbrb';'rrrbb';'bbrbb';'bbrrb';'bbrbr'];\r\n\t\tboard(:,:,2) = ['brbrb';'rrbbr';'bbrbr';'brbrr';'rbrrr'];\r\n\t\tassert(isequal(rumis_scorer1(board),'r'))\r\n\tcase 3\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['brb';'rrr';'bbb';'brb';'bbr'];\r\n\t\tboard(:,:,2) = ['brb';'rbr';'rbr';'brr';'rrr'];\r\n\t\tassert(isequal(rumis_scorer1(board),'r'))\r\n\tcase 4\r\n\t\tclear board\r\n\t\tboard(:,:,1) = ['rrbrrbr';'rbrrrrb';'brrrbrb';'rbrbrrr';'rbrbrbr';'brrrrbr'];\r\n\t\tboard(:,:,2) = ['brbbbrb';'rbbbbbr';'bbrbrbr';'brbrbrr';'rbrrbbr';'brbbbbr'];\r\n\t\tassert(isequal(rumis_scorer1(board),'b'))\r\nend\r\n","published":true,"deleted":false,"likes_count":3,"comments_count":0,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":44,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2015-03-20T02:49:07.000Z","updated_at":"2026-03-04T14:57:42.000Z","published_at":"2015-03-20T02:49:07.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/media/image1.JPEG\"}],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Rumis\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eRumis\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e is a multiplayer 3D block board game where the goal is to have the most squares visible, when viewed from above, after pieces have been played till there are no moves remaining. The picture below shows a completed 4-player round. There are a variety of board stencils and permissible heights possible in this game.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor this problem, you will be provided a completed 2-player rectangular board where the two players' colors are red and blue. The board will be two levels high and completely filled. It will also be a character array wherein the two players' squares are represented by 'r' or 'b'. See the test suite for examples.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite a function to count the squares visible when viewed from above to determine who won each round.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"},{\"partUri\":\"/media/image1.JPEG\",\"contentType\":\"image/JPEG\",\"content\":\"data:image/JPEG;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAGuAosDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKCQOtABSEhRknArO1HW7PTYmeaVRgdzXlHiv4uRx74dPO9uRuzwPxpNpAepal4isNNUmaZBj1NVNN8Y6VqbYhuY29wwNfKWs+Lr/Vp2aedpOfu5+UVQstev9OnE0UrIc5ytGvYVz7cSRJFBVgQadXzx4Q+MMsTJBqByP74r2nRfFWn6xArwzodw7Gi4zeopFYMMg5FLTAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoqvc3sFqhaVwoHqa888VfFLT9JV4oZA8vZVOTQB397qdtYxl5pVXHqa8x8WfFq0sQ8Nm3myjjCnpXkXiP4i3+syOpnZEJ4RD/WuPklnumyScUld7CbOg8QeOdS1mZvOnOw/wKeK5zzJ7p8Mx+lbui+ErvVXTy0wjdWau6s/C+kaTCBNiS4HUnpQ2ouy1Y1BvVnDaP4QvNSIcp5Uf95u9aGp+DpbeBngPm7RyMV2kepxROF24jHpVhb2CRvlX5TXPVqYijK842Rd6KW54pJbz202NpRhWvo3im+0acNFK64PY8V6FqPh621UNsjAb+8OtcVq/hObT0ZwvmgddvatYVadVdmS4NarVHq/hH4wRybIL9tp/vZ4r1zTNdstTiV4ZlOfQ18VCKWBt8eVx2roNA8b6los6lJ2CDqpPFW01uTc+yQQRkUV5F4R+LlnfhILxxHL0+Y9a9QstTtr6MPDKrA+hpjLtFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUySVIlLOwA965TxF480zRIWLzruHbNAHUzXEUCFpHAA9a4fxP8SdM0SJh5ymTsoOSa8i8VfFe71AvHay+VH655NeYXOoXF9OztIzs3VmOTSTvsK53Pir4p6nq8jxwOYYT6H5j/hXCPPc3rkncSeSSasadol3qU6pBGzlu+OK7zSvA62IV7+RW4yYwaUpRh8W41FyOO0vw9dX8qpFCSSeWPSv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PIvIxl7aQYZT/Ue9eQ6roV5pVwySxNhT1xX1rr3g63vyLi2zDcpykicEGuC1nTI52+yeILdY3+6l6owp/wB4dvr0+lTrH0Jt2Pnu0u5IJSwYqCO1E10WBAOSe9dj4q8C3GmTNJAN8R5Vl5BFUfD/AIMuNQPnXIMcCnknitFNWA5/TdJu9TuFjhjJBPJ9K9K0fw1Y6GqPcr510w+WMDLE+wrb0bSvmFnodsHPR7gr8o+nrXpfhrwHb2BFzd5muW5Z35NS25DscroXgu+1t1m1IeVa5ytuvTHv616lpmjWumQLHDEq4HYVfjiSJAqKABT6aVhhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVR1DSrbUYWjmjVgR3FXqKAPMtR8J32msyWYFxZtnNvJyF/3T2rO0/wRqGpThLwCCzB/1Mf8X1NeukA9QDQFUdABS5Ve4GXpOhWelQLHDEq4HYVq0UUwCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//Z\"}]}"},{"id":3101,"title":"Rumis Scorer 3","description":"\u003chttp://en.wikipedia.org/wiki/Rumis Rumis\u003e is a multiplayer 3D block board game where the goal is to have the most squares visible, when viewed from above, after pieces have been played till there are no moves remaining. The picture below shows a completed 4-player round. There are a variety of board stencils and permissible heights possible in this game.\r\n\r\nFor this problem, you will be provided a completed board of varying shapes with anywhere from two to six players, inclusive. The players' colors will be selected from the following options, though not necessarily in this order: red (r), orange (o), yellow (y), green (g), blue (b), and purple (p). The character-array board will contain various stencils and maximum heights for each square. As an example, the following board represents an L with maximum heights varying from one to four depending upon location (zeros represent non-playable area):\r\n\r\n  1 2 3 4 4 4 4 4\r\n  1 2 3 4 4 4 4 4\r\n  1 2 3 4 4 4 4 4\r\n  1 2 3 4 4 4 4 4\r\n  0 0 0 0 3 3 3 3\r\n  0 0 0 0 2 2 2 2\r\n  0 0 0 0 1 1 1 1\r\n\r\nFor this problem, the board will be completely filled in, and, in line with the game's rules, all players' colors will be represented on the first level. Write a function to count the squares visible when viewed from above to determine who won each round. See the test suite for additional examples (including test case 2, which represents the completed board shown below).\r\n\r\n\u003c\u003chttp://www.exodusbooks.com/Samples/Games/RumisCoricanchaBig.jpg\u003e\u003e","description_html":"\u003cp\u003e\u003ca href = \"http://en.wikipedia.org/wiki/Rumis\"\u003eRumis\u003c/a\u003e is a multiplayer 3D block board game where the goal is to have the most squares visible, when viewed from above, after pieces have been played till there are no moves remaining. The picture below shows a completed 4-player round. There are a variety of board stencils and permissible heights possible in this game.\u003c/p\u003e\u003cp\u003eFor this problem, you will be provided a completed board of varying shapes with anywhere from two to six players, inclusive. The players' colors will be selected from the following options, though not necessarily in this order: red (r), orange (o), yellow (y), green (g), blue (b), and purple (p). The character-array board will contain various stencils and maximum heights for each square. As an example, the following board represents an L with maximum heights varying from one to four depending upon location (zeros represent non-playable area):\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e1 2 3 4 4 4 4 4\r\n1 2 3 4 4 4 4 4\r\n1 2 3 4 4 4 4 4\r\n1 2 3 4 4 4 4 4\r\n0 0 0 0 3 3 3 3\r\n0 0 0 0 2 2 2 2\r\n0 0 0 0 1 1 1 1\r\n\u003c/pre\u003e\u003cp\u003eFor this problem, the board will be completely filled in, and, in line with the game's rules, all players' colors will be represented on the first level. Write a function to count the squares visible when viewed from above to determine who won each round. See the test suite for additional examples (including test case 2, which represents the completed board shown below).\u003c/p\u003e\u003cimg src = \"http://www.exodusbooks.com/Samples/Games/RumisCoricanchaBig.jpg\"\u003e","function_template":"function [winner] = rumis_scorer3(board,stencil)\r\n\r\nwinner = '';\r\n\r\nend\r\n","test_suite":"%%\r\nclear board stencil\r\nstencil = [\r\n\t1 2 3 4 4 4 4 4;\r\n\t1 2 3 4 4 4 4 4;\r\n\t1 2 3 4 4 4 4 4;\r\n\t1 2 3 4 4 4 4 4;\r\n\t0 0 0 0 3 3 3 3;\r\n\t0 0 0 0 2 2 2 2;\r\n\t0 0 0 0 1 1 1 1;\r\n\t];\r\nboard(:,:,1) = ['rrbrrbbr';'rbrrbbrb';'bbrrbbrb';'rbrrbrbr';'    brbr';'    rrbr';'    bbbr'];\r\nboard(:,:,2) = [' rbrbbrb';' rrbbbbr';' brbbrbr';' brbbrbr';'    rbrb';'    brbr';'        '];\r\nboard(:,:,3) = ['  brbbrb';'  rbbbbr';'  rbbrbr';'  bbrrrr';'    bbbr';'        ';'        '];\r\nboard(:,:,4) = ['   rbbrb';'   rbbbr';'   brrbr';'   rbrbr';'        ';'        ';'        '];\r\n%blue wins 23 to 21\r\nassert(isequal(rumis_scorer3(board,stencil),'b'))\r\n\r\n%% board shown above with two squares filled in (corners of 2nd and 4th levels)\r\nclear board stencil\r\nstencil = [\r\n\t1 1 1 1 1 1 1 1;\r\n\t1 2 2 2 2 2 2 1;\r\n\t1 2 3 3 3 3 2 1;\r\n\t1 2 3 4 4 3 2 1;\r\n\t1 2 3 4 4 3 2 1;\r\n\t1 2 3 3 3 3 2 1;\r\n\t1 2 2 2 2 2 2 1;\r\n\t1 1 1 1 1 1 1 1;\r\n\t];\r\nboard(:,:,1) = ['yyyyyyyr';'yyyyyyyr';'yyyyyrrr';'yyyyrrrr';'yyyrrrbb';'yrrrrbbb';'yyrrrgbb';'yrrrgggb'];\r\nboard(:,:,2) = ['        ';' ryyyyb ';' ryyybb ';' rrygrr ';' ryyggr ';' ggygrr ';' ggyggb ';'        '];\r\nboard(:,:,3) = ['        ';'        ';'  ggyy  ';'  gbyr  ';'  ggbr  ';'  ggrr  ';'        ';'        '];\r\nboard(:,:,4) = ['        ';'        ';'        ';'   by   ';'   bb   ';'        ';'        ';'        '];\r\n%yellow wins 22 to 18 (r) to 14 (g) to 10 (b)\r\nassert(isequal(rumis_scorer3(board,stencil),'y'))\r\n\r\n%%\r\nclear board stencil\r\nstencil = [\r\n\t0 0 0 0 1 0 0 0 0;\r\n\t0 0 0 1 2 1 0 0 0;\r\n\t0 0 1 2 3 2 1 0 0;\r\n\t0 1 2 3 4 3 2 1 0;\r\n\t1 2 3 4 5 4 3 2 1;\r\n\t0 1 2 3 4 3 2 1 0;\r\n\t0 0 1 2 3 2 1 0 0;\r\n\t0 0 0 1 2 1 0 0 0;\r\n\t0 0 0 0 1 0 0 0 0;\r\n\t];\r\nboard(:,:,1) = ['    o    ';'   oob   ';'  oobbp  ';' oobbppp ';'ooooopppo';' oobbbpp ';'  ooooo  ';'   ooo   ';'    o    '];\r\nboard(:,:,2) = ['         ';'    o    ';'   bbb   ';'  oobbp  ';' oobbppp ';'  oobbp  ';'   bob   ';'    o    ';'         '];\r\nboard(:,:,3) = ['         ';'         ';'    b    ';'   obb   ';'  oobbp  ';'   oob   ';'    o    ';'         ';'         '];\r\nboard(:,:,4) = ['         ';'         ';'         ';'    b    ';'   ooo   ';'    o    ';'         ';'         ';'         '];\r\nboard(:,:,5) = ['         ';'         ';'         ';'         ';'    o    ';'         ';'         ';'         ';'         '];\r\n%orange wins 25 to 9 (b) to 7 (p)\r\nassert(isequal(rumis_scorer3(board,stencil),'o'))\r\n\r\n%%\r\nclear board stencil\r\nstencil = [\r\n\t2 2 3 3 3 3 2 2;\r\n\t2 2 4 4 4 4 2 2;\r\n\t3 4 5 6 6 5 4 3;\r\n\t3 4 6 7 7 6 4 3;\r\n\t3 4 6 7 7 6 4 3;\r\n\t3 4 5 6 6 5 4 3;\r\n\t2 2 4 4 4 4 2 2;\r\n\t2 2 3 3 3 3 2 2;\r\n\t];\r\nboard(:,:,1) = ['rryyobpg';'ryyyobpg';'ryyoobbg';'rryoobbg';'ryyybbgg';'yyybbggg';'ybbbbggg';'yyyyyggg'];\r\nboard(:,:,2) = ['ryyooopp';'rrryyppp';'rryooogg';'rrrroobb';'ryyybggg';'rybbbbbg';'bbyyyggg';'byyggggg'];\r\nboard(:,:,3) = ['  yyoo  ';'  ryyp  ';'rrroobgg';'rrryobbb';'ryyyoppp';'rrrorybg';'  yybo  ';'  oybg  '];\r\nboard(:,:,4) = ['        ';'  yybp  ';' rgbopp ';' ggbboo ';' boybog ';' rbggpp ';'  ybbo  ';'        '];\r\nboard(:,:,5) = ['        ';'        ';'  gboo  ';'  ggbb  ';'  oyyy  ';'  ggpp  ';'        ';'        '];\r\nboard(:,:,6) = ['        ';'        ';'   oo   ';'  ggbb  ';'  ooyy  ';'   gp   ';'        ';'        '];\r\nboard(:,:,7) = ['        ';'        ';'        ';'   go   ';'   oy   ';'        ';'        ';'        '];\r\n%green wins 14 to 11 (o) to 10 (y,b,p) to 9 (r)\r\nassert(isequal(rumis_scorer3(board,stencil),'g'))\r\n\r\n%% anti-cheating case\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t0 0 0 0 3 3 3 3;\r\n\t\t\t0 0 0 0 2 2 2 2;\r\n\t\t\t0 0 0 0 1 1 1 1;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['rrbrrbbr';'rbrrbbrb';'bbrrbbrb';'rbrrbrbr';'    brbr';'    rrbr';'    bbbr'];\r\n\t\tboard(:,:,2) = [' rbrbbrb';' rrbbbbr';' brbbrbr';' brbbrbr';'    rbrb';'    brbr';'        '];\r\n\t\tboard(:,:,3) = ['  brbbrb';'  rbbbbr';'  rbbrbr';'  bbrrrr';'    bbbr';'        ';'        '];\r\n\t\tboard(:,:,4) = ['   rbbrb';'   rbbbr';'   brrbr';'   rbrbr';'        ';'        ';'        '];\r\n\t\tassert(isequal(rumis_scorer3(board,stencil),'b'))\r\n\tcase 2\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t1 1 1 1 1 1 1 1;\r\n\t\t\t1 2 2 2 2 2 2 1;\r\n\t\t\t1 2 3 3 3 3 2 1;\r\n\t\t\t1 2 3 4 4 3 2 1;\r\n\t\t\t1 2 3 4 4 3 2 1;\r\n\t\t\t1 2 3 3 3 3 2 1;\r\n\t\t\t1 2 2 2 2 2 2 1;\r\n\t\t\t1 1 1 1 1 1 1 1;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['yyyyyyyr';'yyyyyyyr';'yyyyyrrr';'yyyyrrrr';'yyyrrrbb';'yrrrrbbb';'yyrrrgbb';'yrrrgggb'];\r\n\t\tboard(:,:,2) = ['        ';' ryyyyb ';' ryyybb ';' rrygrr ';' ryyggr ';' ggygrr ';' ggyggb ';'        '];\r\n\t\tboard(:,:,3) = ['        ';'        ';'  ggyy  ';'  gbyr  ';'  ggbr  ';'  ggrr  ';'        ';'        '];\r\n\t\tboard(:,:,4) = ['        ';'        ';'        ';'   by   ';'   bb   ';'        ';'        ';'        '];\r\n\t\tassert(isequal(rumis_scorer3(board,stencil),'y'))\r\n\tcase 3\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t0 0 0 0 1 0 0 0 0;\r\n\t\t\t0 0 0 1 2 1 0 0 0;\r\n\t\t\t0 0 1 2 3 2 1 0 0;\r\n\t\t\t0 1 2 3 4 3 2 1 0;\r\n\t\t\t1 2 3 4 5 4 3 2 1;\r\n\t\t\t0 1 2 3 4 3 2 1 0;\r\n\t\t\t0 0 1 2 3 2 1 0 0;\r\n\t\t\t0 0 0 1 2 1 0 0 0;\r\n\t\t\t0 0 0 0 1 0 0 0 0;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['    o    ';'   oob   ';'  oobbp  ';' oobbppp ';'ooooopppo';' oobbbpp ';'  ooooo  ';'   ooo   ';'    o    '];\r\n\t\tboard(:,:,2) = ['         ';'    o    ';'   bbb   ';'  oobbp  ';' oobbppp ';'  oobbp  ';'   bob   ';'    o    ';'         '];\r\n\t\tboard(:,:,3) = ['         ';'         ';'    b    ';'   obb   ';'  oobbp  ';'   oob   ';'    o    ';'         ';'         '];\r\n\t\tboard(:,:,4) = ['         ';'         ';'         ';'    b    ';'   ooo   ';'    o    ';'         ';'         ';'         '];\r\n\t\tboard(:,:,5) = ['         ';'         ';'         ';'         ';'    o    ';'         ';'         ';'         ';'         '];\r\n\t\tassert(isequal(rumis_scorer3(board,stencil),'o'))\r\n\tcase 4\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t2 2 3 3 3 3 2 2;\r\n\t\t\t2 2 4 4 4 4 2 2;\r\n\t\t\t3 4 5 6 6 5 4 3;\r\n\t\t\t3 4 6 7 7 6 4 3;\r\n\t\t\t3 4 6 7 7 6 4 3;\r\n\t\t\t3 4 5 6 6 5 4 3;\r\n\t\t\t2 2 4 4 4 4 2 2;\r\n\t\t\t2 2 3 3 3 3 2 2;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['rryyobpg';'ryyyobpg';'ryyoobbg';'rryoobbg';'ryyybbgg';'yyybbggg';'ybbbbggg';'yyyyyggg'];\r\n\t\tboard(:,:,2) = ['ryyooopp';'rrryyppp';'rryooogg';'rrrroobb';'ryyybggg';'rybbbbbg';'bbyyyggg';'byyggggg'];\r\n\t\tboard(:,:,3) = ['  yyoo  ';'  ryyp  ';'rrroobgg';'rrryobbb';'ryyyoppp';'rrrorybg';'  yybo  ';'  oybg  '];\r\n\t\tboard(:,:,4) = ['        ';'  yybp  ';' rgbopp ';' ggbboo ';' boybog ';' rbggpp ';'  ybbo  ';'        '];\r\n\t\tboard(:,:,5) = ['        ';'        ';'  gboo  ';'  ggbb  ';'  oyyy  ';'  ggpp  ';'        ';'        '];\r\n\t\tboard(:,:,6) = ['        ';'        ';'   oo   ';'  ggbb  ';'  ooyy  ';'   gp   ';'        ';'        '];\r\n\t\tboard(:,:,7) = ['        ';'        ';'        ';'   go   ';'   oy   ';'        ';'        ';'        '];\r\n\t\tassert(isequal(rumis_scorer3(board,stencil),'g'))\r\nend\r\n\r\n%% anti-cheating case\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t0 0 0 0 3 3 3 3;\r\n\t\t\t0 0 0 0 2 2 2 2;\r\n\t\t\t0 0 0 0 1 1 1 1;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['rrbrrbbr';'rbrrbbrb';'bbrrbbrb';'rbrrbrbr';'    brbr';'    rrbr';'    bbbr'];\r\n\t\tboard(:,:,2) = [' rbrbbrb';' rrbbbbr';' brbbrbr';' brbbrbr';'    rbrb';'    brbr';'        '];\r\n\t\tboard(:,:,3) = ['  brbbrb';'  rbbbbr';'  rbbrbr';'  bbrrrr';'    bbbr';'        ';'        '];\r\n\t\tboard(:,:,4) = ['   rbbrb';'   rbbbr';'   brrbr';'   rbrbr';'        ';'        ';'        '];\r\n\t\tassert(isequal(rumis_scorer3(board,stencil),'b'))\r\n\tcase 2\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t1 1 1 1 1 1 1 1;\r\n\t\t\t1 2 2 2 2 2 2 1;\r\n\t\t\t1 2 3 3 3 3 2 1;\r\n\t\t\t1 2 3 4 4 3 2 1;\r\n\t\t\t1 2 3 4 4 3 2 1;\r\n\t\t\t1 2 3 3 3 3 2 1;\r\n\t\t\t1 2 2 2 2 2 2 1;\r\n\t\t\t1 1 1 1 1 1 1 1;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['yyyyyyyr';'yyyyyyyr';'yyyyyrrr';'yyyyrrrr';'yyyrrrbb';'yrrrrbbb';'yyrrrgbb';'yrrrgggb'];\r\n\t\tboard(:,:,2) = ['        ';' ryyyyb ';' ryyybb ';' rrygrr ';' ryyggr ';' ggygrr ';' ggyggb ';'        '];\r\n\t\tboard(:,:,3) = ['        ';'        ';'  ggyy  ';'  gbyr  ';'  ggbr  ';'  ggrr  ';'        ';'        '];\r\n\t\tboard(:,:,4) = ['        ';'        ';'        ';'   by   ';'   bb   ';'        ';'        ';'        '];\r\n\t\tassert(isequal(rumis_scorer3(board,stencil),'y'))\r\n\tcase 3\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t0 0 0 0 1 0 0 0 0;\r\n\t\t\t0 0 0 1 2 1 0 0 0;\r\n\t\t\t0 0 1 2 3 2 1 0 0;\r\n\t\t\t0 1 2 3 4 3 2 1 0;\r\n\t\t\t1 2 3 4 5 4 3 2 1;\r\n\t\t\t0 1 2 3 4 3 2 1 0;\r\n\t\t\t0 0 1 2 3 2 1 0 0;\r\n\t\t\t0 0 0 1 2 1 0 0 0;\r\n\t\t\t0 0 0 0 1 0 0 0 0;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['    o    ';'   oob   ';'  oobbp  ';' oobbppp ';'ooooopppo';' oobbbpp ';'  ooooo  ';'   ooo   ';'    o    '];\r\n\t\tboard(:,:,2) = ['         ';'    o    ';'   bbb   ';'  oobbp  ';' oobbppp ';'  oobbp  ';'   bob   ';'    o    ';'         '];\r\n\t\tboard(:,:,3) = ['         ';'         ';'    b    ';'   obb   ';'  oobbp  ';'   oob   ';'    o    ';'         ';'         '];\r\n\t\tboard(:,:,4) = ['         ';'         ';'         ';'    b    ';'   ooo   ';'    o    ';'         ';'         ';'         '];\r\n\t\tboard(:,:,5) = ['         ';'         ';'         ';'         ';'    o    ';'         ';'         ';'         ';'         '];\r\n\t\tassert(isequal(rumis_scorer3(board,stencil),'o'))\r\n\tcase 4\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t2 2 3 3 3 3 2 2;\r\n\t\t\t2 2 4 4 4 4 2 2;\r\n\t\t\t3 4 5 6 6 5 4 3;\r\n\t\t\t3 4 6 7 7 6 4 3;\r\n\t\t\t3 4 6 7 7 6 4 3;\r\n\t\t\t3 4 5 6 6 5 4 3;\r\n\t\t\t2 2 4 4 4 4 2 2;\r\n\t\t\t2 2 3 3 3 3 2 2;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['rryyobpg';'ryyyobpg';'ryyoobbg';'rryoobbg';'ryyybbgg';'yyybbggg';'ybbbbggg';'yyyyyggg'];\r\n\t\tboard(:,:,2) = ['ryyooopp';'rrryyppp';'rryooogg';'rrrroobb';'ryyybggg';'rybbbbbg';'bbyyyggg';'byyggggg'];\r\n\t\tboard(:,:,3) = ['  yyoo  ';'  ryyp  ';'rrroobgg';'rrryobbb';'ryyyoppp';'rrrorybg';'  yybo  ';'  oybg  '];\r\n\t\tboard(:,:,4) = ['        ';'  yybp  ';' rgbopp ';' ggbboo ';' boybog ';' rbggpp ';'  ybbo  ';'        '];\r\n\t\tboard(:,:,5) = ['        ';'        ';'  gboo  ';'  ggbb  ';'  oyyy  ';'  ggpp  ';'        ';'        '];\r\n\t\tboard(:,:,6) = ['        ';'        ';'   oo   ';'  ggbb  ';'  ooyy  ';'   gp   ';'        ';'        '];\r\n\t\tboard(:,:,7) = ['        ';'        ';'        ';'   go   ';'   oy   ';'        ';'        ';'        '];\r\n\t\tassert(isequal(rumis_scorer3(board,stencil),'g'))\r\nend\r\n\r\n%% anti-cheating case\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t0 0 0 0 3 3 3 3;\r\n\t\t\t0 0 0 0 2 2 2 2;\r\n\t\t\t0 0 0 0 1 1 1 1;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['rrbrrbbr';'rbrrbbrb';'bbrrbbrb';'rbrrbrbr';'    brbr';'    rrbr';'    bbbr'];\r\n\t\tboard(:,:,2) = [' rbrbbrb';' rrbbbbr';' brbbrbr';' brbbrbr';'    rbrb';'    brbr';'        '];\r\n\t\tboard(:,:,3) = ['  brbbrb';'  rbbbbr';'  rbbrbr';'  bbrrrr';'    bbbr';'        ';'        '];\r\n\t\tboard(:,:,4) = ['   rbbrb';'   rbbbr';'   brrbr';'   rbrbr';'        ';'        ';'        '];\r\n\t\tassert(isequal(rumis_scorer3(board,stencil),'b'))\r\n\tcase 2\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t1 1 1 1 1 1 1 1;\r\n\t\t\t1 2 2 2 2 2 2 1;\r\n\t\t\t1 2 3 3 3 3 2 1;\r\n\t\t\t1 2 3 4 4 3 2 1;\r\n\t\t\t1 2 3 4 4 3 2 1;\r\n\t\t\t1 2 3 3 3 3 2 1;\r\n\t\t\t1 2 2 2 2 2 2 1;\r\n\t\t\t1 1 1 1 1 1 1 1;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['yyyyyyyr';'yyyyyyyr';'yyyyyrrr';'yyyyrrrr';'yyyrrrbb';'yrrrrbbb';'yyrrrgbb';'yrrrgggb'];\r\n\t\tboard(:,:,2) = ['        ';' ryyyyb ';' ryyybb ';' rrygrr ';' ryyggr ';' ggygrr ';' ggyggb ';'        '];\r\n\t\tboard(:,:,3) = ['        ';'        ';'  ggyy  ';'  gbyr  ';'  ggbr  ';'  ggrr  ';'        ';'        '];\r\n\t\tboard(:,:,4) = ['        ';'        ';'        ';'   by   ';'   bb   ';'        ';'        ';'        '];\r\n\t\tassert(isequal(rumis_scorer3(board,stencil),'y'))\r\n\tcase 3\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t0 0 0 0 1 0 0 0 0;\r\n\t\t\t0 0 0 1 2 1 0 0 0;\r\n\t\t\t0 0 1 2 3 2 1 0 0;\r\n\t\t\t0 1 2 3 4 3 2 1 0;\r\n\t\t\t1 2 3 4 5 4 3 2 1;\r\n\t\t\t0 1 2 3 4 3 2 1 0;\r\n\t\t\t0 0 1 2 3 2 1 0 0;\r\n\t\t\t0 0 0 1 2 1 0 0 0;\r\n\t\t\t0 0 0 0 1 0 0 0 0;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['    o    ';'   oob   ';'  oobbp  ';' oobbppp ';'ooooopppo';' oobbbpp ';'  ooooo  ';'   ooo   ';'    o    '];\r\n\t\tboard(:,:,2) = ['         ';'    o    ';'   bbb   ';'  oobbp  ';' oobbppp ';'  oobbp  ';'   bob   ';'    o    ';'         '];\r\n\t\tboard(:,:,3) = ['         ';'         ';'    b    ';'   obb   ';'  oobbp  ';'   oob   ';'    o    ';'         ';'         '];\r\n\t\tboard(:,:,4) = ['         ';'         ';'         ';'    b    ';'   ooo   ';'    o    ';'         ';'         ';'         '];\r\n\t\tboard(:,:,5) = ['         ';'         ';'         ';'         ';'    o    ';'         ';'         ';'         ';'         '];\r\n\t\tassert(isequal(rumis_scorer3(board,stencil),'o'))\r\n\tcase 4\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t2 2 3 3 3 3 2 2;\r\n\t\t\t2 2 4 4 4 4 2 2;\r\n\t\t\t3 4 5 6 6 5 4 3;\r\n\t\t\t3 4 6 7 7 6 4 3;\r\n\t\t\t3 4 6 7 7 6 4 3;\r\n\t\t\t3 4 5 6 6 5 4 3;\r\n\t\t\t2 2 4 4 4 4 2 2;\r\n\t\t\t2 2 3 3 3 3 2 2;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['rryyobpg';'ryyyobpg';'ryyoobbg';'rryoobbg';'ryyybbgg';'yyybbggg';'ybbbbggg';'yyyyyggg'];\r\n\t\tboard(:,:,2) = ['ryyooopp';'rrryyppp';'rryooogg';'rrrroobb';'ryyybggg';'rybbbbbg';'bbyyyggg';'byyggggg'];\r\n\t\tboard(:,:,3) = ['  yyoo  ';'  ryyp  ';'rrroobgg';'rrryobbb';'ryyyoppp';'rrrorybg';'  yybo  ';'  oybg  '];\r\n\t\tboard(:,:,4) = ['        ';'  yybp  ';' rgbopp ';' ggbboo ';' boybog ';' rbggpp ';'  ybbo  ';'        '];\r\n\t\tboard(:,:,5) = ['        ';'        ';'  gboo  ';'  ggbb  ';'  oyyy  ';'  ggpp  ';'        ';'        '];\r\n\t\tboard(:,:,6) = ['        ';'        ';'   oo   ';'  ggbb  ';'  ooyy  ';'   gp   ';'        ';'        '];\r\n\t\tboard(:,:,7) = ['        ';'        ';'        ';'   go   ';'   oy   ';'        ';'        ';'        '];\r\n\t\tassert(isequal(rumis_scorer3(board,stencil),'g'))\r\nend\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":30,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2015-03-21T02:22:09.000Z","updated_at":"2025-12-08T02:51:40.000Z","published_at":"2015-03-21T02:22:09.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/media/image1.JPEG\"}],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Rumis\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eRumis\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e is a multiplayer 3D block board game where the goal is to have the most squares visible, when viewed from above, after pieces have been played till there are no moves remaining. The picture below shows a completed 4-player round. There are a variety of board stencils and permissible heights possible in this game.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor this problem, you will be provided a completed board of varying shapes with anywhere from two to six players, inclusive. The players' colors will be selected from the following options, though not necessarily in this order: red (r), orange (o), yellow (y), green (g), blue (b), and purple (p). The character-array board will contain various stencils and maximum heights for each square. As an example, the following board represents an L with maximum heights varying from one to four depending upon location (zeros represent non-playable area):\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[1 2 3 4 4 4 4 4\\n1 2 3 4 4 4 4 4\\n1 2 3 4 4 4 4 4\\n1 2 3 4 4 4 4 4\\n0 0 0 0 3 3 3 3\\n0 0 0 0 2 2 2 2\\n0 0 0 0 1 1 1 1]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor this problem, the board will be completely filled in, and, in line with the game's rules, all players' colors will be represented on the first level. Write a function to count the squares visible when viewed from above to determine who won each round. See the test suite for additional examples (including test case 2, which represents the completed board shown below).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"},{\"partUri\":\"/media/image1.JPEG\",\"contentType\":\"image/JPEG\",\"content\":\"data:image/JPEG;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAGuAosDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKCQOtABSEhRknArO1HW7PTYmeaVRgdzXlHiv4uRx74dPO9uRuzwPxpNpAepal4isNNUmaZBj1NVNN8Y6VqbYhuY29wwNfKWs+Lr/Vp2aedpOfu5+UVQstev9OnE0UrIc5ytGvYVz7cSRJFBVgQadXzx4Q+MMsTJBqByP74r2nRfFWn6xArwzodw7Gi4zeopFYMMg5FLTAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoqvc3sFqhaVwoHqa888VfFLT9JV4oZA8vZVOTQB397qdtYxl5pVXHqa8x8WfFq0sQ8Nm3myjjCnpXkXiP4i3+syOpnZEJ4RD/WuPklnumyScUld7CbOg8QeOdS1mZvOnOw/wKeK5zzJ7p8Mx+lbui+ErvVXTy0wjdWau6s/C+kaTCBNiS4HUnpQ2ouy1Y1BvVnDaP4QvNSIcp5Uf95u9aGp+DpbeBngPm7RyMV2kepxROF24jHpVhb2CRvlX5TXPVqYijK842Rd6KW54pJbz202NpRhWvo3im+0acNFK64PY8V6FqPh621UNsjAb+8OtcVq/hObT0ZwvmgddvatYVadVdmS4NarVHq/hH4wRybIL9tp/vZ4r1zTNdstTiV4ZlOfQ18VCKWBt8eVx2roNA8b6los6lJ2CDqpPFW01uTc+yQQRkUV5F4R+LlnfhILxxHL0+Y9a9QstTtr6MPDKrA+hpjLtFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUySVIlLOwA965TxF480zRIWLzruHbNAHUzXEUCFpHAA9a4fxP8SdM0SJh5ymTsoOSa8i8VfFe71AvHay+VH655NeYXOoXF9OztIzs3VmOTSTvsK53Pir4p6nq8jxwOYYT6H5j/hXCPPc3rkncSeSSasadol3qU6pBGzlu+OK7zSvA62IV7+RW4yYwaUpRh8W41FyOO0vw9dX8qpFCSSeWPSv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PIvIxl7aQYZT/Ue9eQ6roV5pVwySxNhT1xX1rr3g63vyLi2zDcpykicEGuC1nTI52+yeILdY3+6l6owp/wB4dvr0+lTrH0Jt2Pnu0u5IJSwYqCO1E10WBAOSe9dj4q8C3GmTNJAN8R5Vl5BFUfD/AIMuNQPnXIMcCnknitFNWA5/TdJu9TuFjhjJBPJ9K9K0fw1Y6GqPcr510w+WMDLE+wrb0bSvmFnodsHPR7gr8o+nrXpfhrwHb2BFzd5muW5Z35NS25DscroXgu+1t1m1IeVa5ytuvTHv616lpmjWumQLHDEq4HYVfjiSJAqKABT6aVhhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVR1DSrbUYWjmjVgR3FXqKAPMtR8J32msyWYFxZtnNvJyF/3T2rO0/wRqGpThLwCCzB/1Mf8X1NeukA9QDQFUdABS5Ve4GXpOhWelQLHDEq4HYVq0UUwCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//Z\"}]}"},{"id":3047,"title":"Scrabble Scores - 2","description":"An \u003chttps://www.mathworks.com/matlabcentral/cody/problems/56-scrabble-scores introductory Cody problem\u003e asks the user to score a Scrabble word. This problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine.\r\n\r\nScrabble is a word board game wherein each letter tile is scored roughly according to its frequency (or lack thereof) in words. More common letters, such as vowels, are worth fewer points while difficult letters, such as Q, Z, J, and X are worth more points. The point distribution is provided \u003chttp://en.wikipedia.org/wiki/Scrabble_letter_distributions#English here\u003e. (Use the English points distribution.)\r\n\r\nFor this problem, you will be provided with a cell array of words (e.g., all the words from one player in a game). Write a function to calculate the total score for the set of words.\r\n\r\nRelated problems:\r\n\r\nPrevious problem: 1 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/56-scrabble-scores Single-word scoring\u003e. Next problem: 3 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3048-scrabble-scores-3 Single-word multiplier scoring\u003e.\r\n","description_html":"\u003cp\u003eAn \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/56-scrabble-scores\"\u003eintroductory Cody problem\u003c/a\u003e asks the user to score a Scrabble word. This problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine.\u003c/p\u003e\u003cp\u003eScrabble is a word board game wherein each letter tile is scored roughly according to its frequency (or lack thereof) in words. More common letters, such as vowels, are worth fewer points while difficult letters, such as Q, Z, J, and X are worth more points. The point distribution is provided \u003ca href = \"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\"\u003ehere\u003c/a\u003e. (Use the English points distribution.)\u003c/p\u003e\u003cp\u003eFor this problem, you will be provided with a cell array of words (e.g., all the words from one player in a game). Write a function to calculate the total score for the set of words.\u003c/p\u003e\u003cp\u003eRelated problems:\u003c/p\u003e\u003cp\u003ePrevious problem: 1 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/56-scrabble-scores\"\u003eSingle-word scoring\u003c/a\u003e. Next problem: 3 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3048-scrabble-scores-3\"\u003eSingle-word multiplier scoring\u003c/a\u003e.\u003c/p\u003e","function_template":"function [score] = scrabble_scores_2(words)\r\n\r\nscore = 0;\r\n\r\nend\r\n","test_suite":"%%\r\nwords = {'hello','there','fellow','matlab','users'};\r\nscore = 43;\r\nassert(isequal(scrabble_scores_2(words),score))\r\n\r\n%%\r\nwords = {'what','do','you','think','of','this','problem'};\r\nscore = 56;\r\nassert(isequal(scrabble_scores_2(words),score))\r\n\r\n%%\r\nwords = {'if','you','like','it','please','give','it','a','like'};\r\nscore = 48;\r\nassert(isequal(scrabble_scores_2(words),score))\r\n\r\n%%\r\nwords = {'zither','quandry','flummox','wealthy','amalgam'};\r\nscore = 87;\r\nassert(isequal(scrabble_scores_2(words),score))\r\n\r\n%%\r\nwords = {'one','two','three','four','five'};\r\nscore = 34;\r\nassert(isequal(scrabble_scores_2(words),score))\r\n\r\n%%\r\nwords = {'heterogeneous','homogenously','concatenate','thusly','hi'};\r\nscore = [17 21 15 12 5];\r\nind = randi(5);\r\nassert(isequal(scrabble_scores_2(words(ind)),score(ind)))\r\n\r\n%%\r\nwords = {'perspicacious','yes','zero','quizzical','no'};\r\nscore = [21 6 13 38 2];\r\nind = randi(5);\r\nassert(isequal(scrabble_scores_2(words(ind)),score(ind)))\r\n\r\n%% pangram test (one string) to help ensure letters scores are correctly assigned\r\nwords = {'the quick brown fox jumps over a lazy dog'};\r\nscore = 94;\r\nassert(isequal(scrabble_scores_2(words),score))\r\n\r\n%% pangram test (multiple words) to help ensure letters scores are correctly assigned\r\nwords = {'the','quick','brown','fox','jumps','over','a','lazy','dog'};\r\nscore = 94;\r\nassert(isequal(scrabble_scores_2(words),score))","published":true,"deleted":false,"likes_count":2,"comments_count":7,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":66,"test_suite_updated_at":"2015-02-28T02:22:30.000Z","rescore_all_solutions":false,"group_id":40,"created_at":"2015-02-26T04:07:25.000Z","updated_at":"2026-04-02T20:07:44.000Z","published_at":"2015-02-26T04:07:24.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAn\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/56-scrabble-scores\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eintroductory Cody problem\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e asks the user to score a Scrabble word. This problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eScrabble is a word board game wherein each letter tile is scored roughly according to its frequency (or lack thereof) in words. More common letters, such as vowels, are worth fewer points while difficult letters, such as Q, Z, J, and X are worth more points. The point distribution is provided\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehere\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. (Use the English points distribution.)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor this problem, you will be provided with a cell array of words (e.g., all the words from one player in a game). Write a function to calculate the total score for the set of words.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRelated problems:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePrevious problem: 1 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/56-scrabble-scores\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eSingle-word scoring\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Next problem: 3 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3048-scrabble-scores-3\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eSingle-word multiplier scoring\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":3051,"title":"Scrabble Scores - 6","description":"This problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided \u003chttp://en.wikipedia.org/wiki/Scrabble_letter_distributions#English here\u003e. (Use the English points distribution.)\r\n\r\nFor this problem, you will be provided with a character matrix representing a completed game of Scrabble. Write a function to calculate and return the total score for the entire board. Don't worry about double counting of letters or words due to tile placement—that will come in a subsequent problem. As an example, suppose you are given the following board (this is test case 1):\r\n\r\n   cat  \r\n i  p   \r\n t  poet\r\n c  l   \r\nthere   \r\n\r\nthe word cat scores 3+1+1 = 5, poet scores 3+1+1+1 = 6, there scores 1+4+1+1+1 = 8. The remaining letters (itc, p, and l) score 1+1+3, 3, and 1 which total 9 all together (since we're not double counting letters yet). The sum total is 5+6+8+9 = 28.\r\n\r\n\r\nRelated problems:\r\n\r\nPrevious problem: 5 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3050-scrabble-scores-5 Multiplayer word-set scoring\u003e. Next problem: 7 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3052-scrabble-scores-7 Multiplayer board scoring\u003e.","description_html":"\u003cp\u003eThis problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided \u003ca href = \"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\"\u003ehere\u003c/a\u003e. (Use the English points distribution.)\u003c/p\u003e\u003cp\u003eFor this problem, you will be provided with a character matrix representing a completed game of Scrabble. Write a function to calculate and return the total score for the entire board. Don't worry about double counting of letters or words due to tile placement—that will come in a subsequent problem. As an example, suppose you are given the following board (this is test case 1):\u003c/p\u003e\u003cpre\u003e   cat  \r\n i  p   \r\n t  poet\r\n c  l   \r\nthere   \u003c/pre\u003e\u003cp\u003ethe word cat scores 3+1+1 = 5, poet scores 3+1+1+1 = 6, there scores 1+4+1+1+1 = 8. The remaining letters (itc, p, and l) score 1+1+3, 3, and 1 which total 9 all together (since we're not double counting letters yet). The sum total is 5+6+8+9 = 28.\u003c/p\u003e\u003cp\u003eRelated problems:\u003c/p\u003e\u003cp\u003ePrevious problem: 5 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3050-scrabble-scores-5\"\u003eMultiplayer word-set scoring\u003c/a\u003e. Next problem: 7 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3052-scrabble-scores-7\"\u003eMultiplayer board scoring\u003c/a\u003e.\u003c/p\u003e","function_template":"function [score] = scrabble_scores_6(board)\r\n\r\nscore = 0;\r\n\r\nend\r\n","test_suite":"%%\r\nboard = [\r\n\r\n'   cat  ';\r\n' i  p   ';\r\n' t  poet';\r\n' c  l   ';\r\n'there   ';\r\n];\r\nscore = 28;\r\nassert(isequal(scrabble_scores_6(board),score))\r\n\r\n%%\r\nboard = [\r\n\r\n'stratagems';\r\n' h      a ';\r\n'hello   t ';\r\n' r      l ';\r\n'fellow  a ';\r\n'    a   b ';\r\n' users    ';\r\n];\r\nscore = 51;\r\nassert(isequal(scrabble_scores_6(board),score))\r\n\r\n%%\r\nboard = [\r\n\r\n' what   y ';\r\n'    h  do ';\r\n'  this  um';\r\n' l  n    a';\r\n' of keen t';\r\n' o   e   l';\r\n' problem a';\r\n'      noob';\r\n];\r\nscore = 72;\r\nassert(isequal(scrabble_scores_6(board),score))\r\n\r\n%%\r\nboard = [\r\n\r\n' if  you  ';\r\n'  i  u    ';\r\n'  like    ';\r\n' met  g   ';\r\n' e    it l';\r\n' e    v  i';\r\n' please  k';\r\n'      node';\r\n];\r\nscore = 56;\r\nassert(isequal(scrabble_scores_6(board),score))\r\n\r\n%%\r\nboard = [\r\n\r\n'c    flummoxes zither';\r\n'al    o      e e    e';\r\n'ba  hunting  eerie  b';\r\n'ab  a g   e    o    e';\r\n'lo  n     m g       l';\r\n' r  g      responses ';\r\n'random      n    u u ';\r\n' t  v   c  below p r ';\r\n'convention  r    e f ';\r\n' r  r   n   a   areas';\r\n' y      v c t    i c ';\r\n'   o  philosophy o em';\r\n'travel  n n r    r  e';\r\n'   e    c t         e';\r\n' word   i a    writer';\r\n'   t    n c    o    l';\r\n'p fortnight   rock  y';\r\n'i  n            h    ';\r\n'novelty m concatenate';\r\n'c e  o  a    a  s   g';\r\n'heterogeneousness   g';\r\n];\r\nscore = 364;\r\nassert(isequal(scrabble_scores_6(board),score))\r\n\r\n%% anti-cheating test case\r\nind = randi(4);\r\nswitch ind\r\ncase 1\r\nboard = [\r\n'   cat  ';\r\n' i  p   ';\r\n' t  poet';\r\n' c  l   ';\r\n'there   '];\r\nscore = 28;\r\ncase 2\r\nboard = [\r\n'stratagems';\r\n' h      a ';\r\n'hello   t ';\r\n' r      l ';\r\n'fellow  a ';\r\n'    a   b ';\r\n' users    '];\r\nscore = 51;\r\ncase 3\r\nboard = [\r\n' what   y ';\r\n'  e h  do ';\r\n'  this  um';\r\n' of n    a';\r\n'    keen t';\r\n'     e   l';\r\n' problem a';\r\n'      noob'];\r\nscore = 71;\r\ncase 4\r\nboard = [\r\n' if  you  ';\r\n'  i  u    ';\r\n'  like    ';\r\n' met  g   ';\r\n'      it l';\r\n'      v  i';\r\n' please  k';\r\n'      node'];\r\nscore = 54;\r\nend\r\nassert(isequal(scrabble_scores_6(board),score))\r\n\r\n%% anti-cheating test case (again)\r\nind = randi(4);\r\nswitch ind\r\ncase 1\r\nboard = [\r\n'   cat  ';\r\n' i  p   ';\r\n' t  poet';\r\n' c  l   ';\r\n'there   '];\r\nscore = 28;\r\ncase 2\r\nboard = [\r\n'stratagems';\r\n' h      a ';\r\n'hello   t ';\r\n' r      l ';\r\n'fellow  a ';\r\n'    a   b ';\r\n' users    '];\r\nscore = 51;\r\ncase 3\r\nboard = [\r\n' what   y ';\r\n'  e h  do ';\r\n'  this  um';\r\n' of n    a';\r\n'    keen t';\r\n'     e   l';\r\n' problem a';\r\n'      noob'];\r\nscore = 71;\r\ncase 4\r\nboard = [\r\n' if  you  ';\r\n'  i  u    ';\r\n'  like    ';\r\n' met  g   ';\r\n'      it l';\r\n'      v  i';\r\n' please  k';\r\n'      node'];\r\nscore = 54;\r\nend\r\nassert(isequal(scrabble_scores_6(board),score))\r\n\r\n%% anti-cheating test case (and a third time, to lower the chance of getting lucky)\r\nind = randi(4);\r\nswitch ind\r\ncase 1\r\nboard = [\r\n'   cat  ';\r\n' i  p   ';\r\n' t  poet';\r\n' c  l   ';\r\n'there   '];\r\nscore = 28;\r\ncase 2\r\nboard = [\r\n'stratagems';\r\n' h      a ';\r\n'hello   t ';\r\n' r      l ';\r\n'fellow  a ';\r\n'    a   b ';\r\n' users    '];\r\nscore = 51;\r\ncase 3\r\nboard = [\r\n' what   y ';\r\n'  e h  do ';\r\n'  this  um';\r\n' of n    a';\r\n'    keen t';\r\n'     e   l';\r\n' problem a';\r\n'      noob'];\r\nscore = 71;\r\ncase 4\r\nboard = [\r\n' if  you  ';\r\n'  i  u    ';\r\n'  like    ';\r\n' met  g   ';\r\n'      it l';\r\n'      v  i';\r\n' please  k';\r\n'      node'];\r\nscore = 54;\r\nend\r\nassert(isequal(scrabble_scores_6(board),score))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":34,"test_suite_updated_at":"2015-02-28T06:29:28.000Z","rescore_all_solutions":false,"group_id":40,"created_at":"2015-02-28T04:41:43.000Z","updated_at":"2026-04-02T20:14:54.000Z","published_at":"2015-02-28T04:41:43.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehere\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. (Use the English points distribution.)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor this problem, you will be provided with a character matrix representing a completed game of Scrabble. Write a function to calculate and return the total score for the entire board. Don't worry about double counting of letters or words due to tile placement—that will come in a subsequent problem. As an example, suppose you are given the following board (this is test case 1):\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[   cat  \\n i  p   \\n t  poet\\n c  l   \\nthere]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ethe word cat scores 3+1+1 = 5, poet scores 3+1+1+1 = 6, there scores 1+4+1+1+1 = 8. The remaining letters (itc, p, and l) score 1+1+3, 3, and 1 which total 9 all together (since we're not double counting letters yet). The sum total is 5+6+8+9 = 28.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRelated problems:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePrevious problem: 5 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3050-scrabble-scores-5\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMultiplayer word-set scoring\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Next problem: 7 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3052-scrabble-scores-7\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMultiplayer board scoring\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":3082,"title":"Scrabble Scores - 10","description":"This problem is very similar to the previous problem. Here, you are provided a letter of an existing word on the board from which you will play a word. The letter can reside anywhere (first to last) within the word you are playing. Write a function to find the highest scoring word, provided the letter you are building off of and the letters on your tray.\r\n\r\nRather than having to test all the possible permutations against a dictionary, you will be provided a cell array of strings containing all possible words based on the starting letter and the letters on your tray. In addition to providing the highest score, also provide the word(s) that achieve that score in a cell array. See the test suite for examples. Due to high-scoring tiles, the highest score may not be achieved by the longest word(s).\r\n\r\nRelated problems:\r\n\r\nPrevious problem: 9 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3062-scrabble-scores-9 Word score optimization (fixed first letter)\u003e. Next problem: 11 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3084-scrabble-scores-11 Word score optimization (known letter) \u0026 multipliers\u003e.","description_html":"\u003cp\u003eThis problem is very similar to the previous problem. Here, you are provided a letter of an existing word on the board from which you will play a word. The letter can reside anywhere (first to last) within the word you are playing. Write a function to find the highest scoring word, provided the letter you are building off of and the letters on your tray.\u003c/p\u003e\u003cp\u003eRather than having to test all the possible permutations against a dictionary, you will be provided a cell array of strings containing all possible words based on the starting letter and the letters on your tray. In addition to providing the highest score, also provide the word(s) that achieve that score in a cell array. See the test suite for examples. Due to high-scoring tiles, the highest score may not be achieved by the longest word(s).\u003c/p\u003e\u003cp\u003eRelated problems:\u003c/p\u003e\u003cp\u003ePrevious problem: 9 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3062-scrabble-scores-9\"\u003eWord score optimization (fixed first letter)\u003c/a\u003e. Next problem: 11 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3084-scrabble-scores-11\"\u003eWord score optimization (known letter) \u0026 multipliers\u003c/a\u003e.\u003c/p\u003e","function_template":"function [score,max_word] = scrabble_scores_10(words,existing_letter)\r\n\r\nscore = 0;\r\nmax_word = {''};\r\n\r\nend\r\n","test_suite":"%\r\nexisting_letter = 's'; %the word must contain this letter, which is in an already played word\r\ntray_letters = 'aethilm'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including the first letter with your tray letters\r\nwords = {'ae','ah','ai','al','am','as','at','eh','el','em','es','et','ha','he','hi','hm','is','it','la','li','ma','me','mi','sh','si','ta','te','ti','ahi','ahs','ail','aim','ais','ait','ale','als','alt','ami','ash','ate','eat','elm','els','ems','est','eta','eth','hae','ham','has','hat','hem','hes','het','hie','him','his','hit','ism','its','lah','lam','las','lat','lea','lei','let','lie','lis','lit','mae','mas','mat','meh','mel','met','mil','mis','sae','sal','sat','sea','sei','sel','set','sha','she','sim','sit','tae','tam','tas','tea','tel','tes','the','tie','til','tis','ahem','ahis','ails','aims','aits','ales','alit','alme','alms','alts','amie','amis','ates','east','eath','eats','elhi','elms','emit','etas','eths','haem','haes','haet','hail','hale','halm','halt','hame','hams','hast','hate','hats','heal','heat','heil','helm','hems','hest','hets','hies','hila','hilt','hims','hist','hits','ilea','isle','item','lahs','lame','lams','lase','lash','last','late','lath','lati','lats','leas','leis','lest','lets','lias','lies','lima','lime','list','lite','lits','maes','mail','male','malt','mash','mast','mate','math','mats','meal','meat','mels','melt','mesa','mesh','meta','meth','mile','mils','milt','mise','mist','mite','sail','sale','salt','same','sate','sati','seal','seam','seat','semi','seta','sham','shea','shim','sial','silt','sima','site','sith','slam','slat','slim','slit','smit','stem','tael','tail','tale','tali','tame','tams','tase','teal','team','teas','tela','tels','thae','them','this','ties','tile','tils','time','aisle','alist','almeh','almes','amies','email','emits','haems','haets','hails','hales','halms','halts','hames','haste','hates','heals','heats','heils','heist','helms','hemal','hilts','islet','istle','items','laith','lames','lathe','lathi','laths','leash','least','limas','limes','litas','lites','lithe','maile','mails','maist','males','malts','mates','maths','meals','meats','melts','metal','meths','metis','miles','milts','mites','saith','salmi','satem','selah','setal','shale','shalt','shame','sheal','shiel','slate','slime','smalt','smelt','smile','smite','smith','stale','steal','steam','stela','stile','stime','taels','tails','tales','tames','tamis','teals','teams','telia','tesla','thali','tiles','times','almehs','emails','halest','halite','hamlet','haslet','hiemal','lamest','lathes','lathis','latish','mailes','mashie','mesial','metals','misate','miseat','saithe','saltie','samiel','samite','samlet','sheila','shelta','smalti','stelai','tahsil','thalis','theism','atheism','halites','hamlets','heliast'};\r\nmax_score_corr = 12;\r\nmax_word_corr = {'atheism','hamlets'};\r\n[max_score,max_word] = scrabble_scores_10(words,existing_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n%%\r\nexisting_letter = 't'; %the word must contain this letter, which is in an already played word\r\ntray_letters = 'eodnirl'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including the first letter with your tray letters\r\nwords = {'de','do','ed','el','en','er','et','id','in','it','li','lo','ne','no','od','oe','oi','on','or','re','te','ti','to','del','den','die','din','dit','doe','dol','don','dor','dot','eld','end','eon','ern','ion','ire','led','lei','let','lid','lie','lin','lit','lot','net','nil','nit','nod','nor','not','ode','oil','old','ole','one','ore','ort','red','rei','ret','rid','rin','rod','roe','rot','ted','tel','ten','tie','til','tin','tod','toe','ton','tor','deil','deli','delt','deni','dent','diel','diet','dine','dino','dint','diol','dire','dirl','dirt','dite','doer','doit','dole','dolt','done','dore','dote','edit','enol','idle','idol','inro','into','ired','iron','lend','leno','lent','lido','lied','lien','lier','line','lino','lint','lion','lire','lite','lode','loid','loin','lone','lord','lore','lorn','loti','nerd','nide','nite','node','nodi','noel','noil','noir','nori','note','olde','orle','redo','rein','rend','reno','rent','ride','riel','rile','rind','riot','rite','rode','roil','role','rote','roti','rotl','tein','tend','tern','tide','tied','tier','tile','tine','tire','tirl','tiro','toed','toil','told','tole','tone','tore','tori','torn','trio','trod','diner','doter','droit','drone','elint','eloin','enrol','ident','idler','indol','inert','inlet','inter','intro','irone','lento','lined','liner','lirot','liter','litre','loden','loner','nerol','niter','nitre','nitro','noted','noter','oiled','oiler','olden','older','oldie','olein','oriel','redon','relit','reoil','riled','ronde','teind','teloi','tenor','tilde','tiled','tiler','tined','tired','toile','toled','tondi','toned','toner','trend','tried','trine','triol','trode','trone','dentil','dinero','dotier','editor','entoil','indole','ironed','linted','linter','loiter','neroli','norite','orient','retold','rident','rioted','rodent','roiled','rondel','tinder','tirled','toiled','toiler','tonier','trined','triode','lentoid','retinol','tendril','trindle'};\r\nmax_score_corr = 8;\r\nmax_word_corr = {'lentoid','tendril','trindle'};\r\n[max_score,max_word] = scrabble_scores_10(words,existing_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n%%\r\nexisting_letter = 'n'; %the word must contain this letter, which is in an already played word\r\ntray_letters = 'dmvxeao'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including the first letter with your tray letters\r\nwords = {'ad','ae','am','an','ax','da','de','do','ed','em','en','ex','ma','me','mo','na','ne','no','od','oe','om','on','ox','ado','and','ane','ave','avo','axe','dam','dan','den','dev','dex','doe','dom','don','emo','end','eon','mad','mae','man','max','med','men','moa','mod','mon','nae','nam','nav','nod','nom','oda','ode','oma','one','ova','van','vex','voe','vox','aeon','amen','axed','axon','dame','damn','dean','demo','deva','dome','dona','done','dove','exam','exon','made','mane','mano','mead','mean','mend','meno','moan','mode','move','moxa','name','nave','nema','node','noma','nome','nova','odea','omen','oven','oxen','vane','vena','vend','admen','amend','anode','axmen','axone','daven','demon','devon','doven','maned','maven','maxed','menad','monad','monde','moved','named','nomad','novae','vaned','venom','daemon','moaned'};\r\nmax_score_corr = 14;\r\nmax_word_corr = {'axmen'};\r\n[max_score,max_word] = scrabble_scores_10(words,existing_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n%%\r\nexisting_letter = 'z'; %the word must contain this letter, which is in an already played word\r\ntray_letters = 'aehcmdi'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including the first letter with your tray letters\r\nwords = {'ad','ae','ah','ai','am','da','de','ed','eh','em','ha','he','hi','hm','id','ma','me','mi','za','ace','adz','ahi','aid','aim','ami','cad','cam','chi','dah','dam','die','dim','edh','had','hae','ham','hem','hic','hid','hie','him','ice','ich','mac','mad','mae','med','meh','mic','mid','zed','aced','ache','acid','acme','adze','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','cazh','cedi','chad','chai','cham','chem','chez','chia','chid','dace','dame','daze','dice','dime','each','emic','hade','haed','haem','hame','haze','head','hide','hied','iced','idea','idem','mace','mach','made','maid','maze','mead','mech','mica','mice','zeda','ached','aimed','amice','amide','azide','chide','chime','demic','hazed','hemic','maced','mache','maize','mazed','media','medic','miche','chimed','haemic','miched','zaideh'};\r\nmax_score_corr = 19;\r\nmax_word_corr = {'zaideh'};\r\n[max_score,max_word] = scrabble_scores_10(words,existing_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n%% anti-cheating test case\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\texisting_letter = 's';\r\n\t\twords = {'ae','ah','ai','al','am','as','at','eh','el','em','es','et','ha','he','hi','hm','is','it','la','li','ma','me','mi','sh','si','ta','te','ti','ahi','ahs','ail','aim','ais','ait','ale','als','alt','ami','ash','ate','eat','elm','els','ems','est','eta','eth','hae','ham','has','hat','hem','hes','het','hie','him','his','hit','ism','its','lah','lam','las','lat','lea','lei','let','lie','lis','lit','mae','mas','mat','meh','mel','met','mil','mis','sae','sal','sat','sea','sei','sel','set','sha','she','sim','sit','tae','tam','tas','tea','tel','tes','the','tie','til','tis','ahem','ahis','ails','aims','aits','ales','alit','alme','alms','alts','amie','amis','ates','east','eath','eats','elhi','elms','emit','etas','eths','haem','haes','haet','hail','hale','halm','halt','hame','hams','hast','hate','hats','heal','heat','heil','helm','hems','hest','hets','hies','hila','hilt','hims','hist','hits','ilea','isle','item','lahs','lame','lams','lase','lash','last','late','lath','lati','lats','leas','leis','lest','lets','lias','lies','lima','lime','list','lite','lits','maes','mail','male','malt','mash','mast','mate','math','mats','meal','meat','mels','melt','mesa','mesh','meta','meth','mile','mils','milt','mise','mist','mite','sail','sale','salt','same','sate','sati','seal','seam','seat','semi','seta','sham','shea','shim','sial','silt','sima','site','sith','slam','slat','slim','slit','smit','stem','tael','tail','tale','tali','tame','tams','tase','teal','team','teas','tela','tels','thae','them','this','ties','tile','tils','time','aisle','alist','almeh','almes','amies','email','emits','haems','haets','hails','hales','halms','halts','hames','haste','hates','heals','heats','heils','heist','helms','hemal','hilts','islet','istle','items','laith','lames','lathe','lathi','laths','leash','least','limas','limes','litas','lites','lithe','maile','mails','maist','males','malts','mates','maths','meals','meats','melts','metal','meths','metis','miles','milts','mites','saith','salmi','satem','selah','setal','shale','shalt','shame','sheal','shiel','slate','slime','smalt','smelt','smile','smite','smith','stale','steal','steam','stela','stile','stime','taels','tails','tales','tames','tamis','teals','teams','telia','tesla','thali','tiles','times','almehs','emails','halest','halite','hamlet','haslet','hiemal','lamest','lathes','lathis','latish','mailes','mashie','mesial','metals','misate','miseat','saithe','saltie','samiel','samite','samlet','sheila','shelta','smalti','stelai','tahsil','thalis','theism','atheism','halites','hamlets','heliast'};\r\n\t\tmax_score_corr = 12;\r\n\t\tmax_word_corr = {'atheism','hamlets'};\r\n\tcase 2\r\n\t\texisting_letter = 't';\r\n\t\twords = {'de','do','ed','el','en','er','et','id','in','it','li','lo','ne','no','od','oe','oi','on','or','re','te','ti','to','del','den','die','din','dit','doe','dol','don','dor','dot','eld','end','eon','ern','ion','ire','led','lei','let','lid','lie','lin','lit','lot','net','nil','nit','nod','nor','not','ode','oil','old','ole','one','ore','ort','red','rei','ret','rid','rin','rod','roe','rot','ted','tel','ten','tie','til','tin','tod','toe','ton','tor','deil','deli','delt','deni','dent','diel','diet','dine','dino','dint','diol','dire','dirl','dirt','dite','doer','doit','dole','dolt','done','dore','dote','edit','enol','idle','idol','inro','into','ired','iron','lend','leno','lent','lido','lied','lien','lier','line','lino','lint','lion','lire','lite','lode','loid','loin','lone','lord','lore','lorn','loti','nerd','nide','nite','node','nodi','noel','noil','noir','nori','note','olde','orle','redo','rein','rend','reno','rent','ride','riel','rile','rind','riot','rite','rode','roil','role','rote','roti','rotl','tein','tend','tern','tide','tied','tier','tile','tine','tire','tirl','tiro','toed','toil','told','tole','tone','tore','tori','torn','trio','trod','diner','doter','droit','drone','elint','eloin','enrol','ident','idler','indol','inert','inlet','inter','intro','irone','lento','lined','liner','lirot','liter','litre','loden','loner','nerol','niter','nitre','nitro','noted','noter','oiled','oiler','olden','older','oldie','olein','oriel','redon','relit','reoil','riled','ronde','teind','teloi','tenor','tilde','tiled','tiler','tined','tired','toile','toled','tondi','toned','toner','trend','tried','trine','triol','trode','trone','dentil','dinero','dotier','editor','entoil','indole','ironed','linted','linter','loiter','neroli','norite','orient','retold','rident','rioted','rodent','roiled','rondel','tinder','tirled','toiled','toiler','tonier','trined','triode','lentoid','retinol','tendril','trindle'};\r\n\t\tmax_score_corr = 8;\r\n\t\tmax_word_corr = {'lentoid','tendril','trindle'};\r\n\tcase 3\r\n\t\texisting_letter = 'n';\r\n\t\twords = {'ad','ae','am','an','ax','da','de','do','ed','em','en','ex','ma','me','mo','na','ne','no','od','oe','om','on','ox','ado','and','ane','ave','avo','axe','dam','dan','den','dev','dex','doe','dom','don','emo','end','eon','mad','mae','man','max','med','men','moa','mod','mon','nae','nam','nav','nod','nom','oda','ode','oma','one','ova','van','vex','voe','vox','aeon','amen','axed','axon','dame','damn','dean','demo','deva','dome','dona','done','dove','exam','exon','made','mane','mano','mead','mean','mend','meno','moan','mode','move','moxa','name','nave','nema','node','noma','nome','nova','odea','omen','oven','oxen','vane','vena','vend','admen','amend','anode','axmen','axone','daven','demon','devon','doven','maned','maven','maxed','menad','monad','monde','moved','named','nomad','novae','vaned','venom','daemon','moaned'};\r\n\t\tmax_score_corr = 14;\r\n\t\tmax_word_corr = {'axmen'};\r\n\tcase 4\r\n\t\texisting_letter = 'z';\r\n\t\twords = {'ad','ae','ah','ai','am','da','de','ed','eh','em','ha','he','hi','hm','id','ma','me','mi','za','ace','adz','ahi','aid','aim','ami','cad','cam','chi','dah','dam','die','dim','edh','had','hae','ham','hem','hic','hid','hie','him','ice','ich','mac','mad','mae','med','meh','mic','mid','zed','aced','ache','acid','acme','adze','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','cazh','cedi','chad','chai','cham','chem','chez','chia','chid','dace','dame','daze','dice','dime','each','emic','hade','haed','haem','hame','haze','head','hide','hied','iced','idea','idem','mace','mach','made','maid','maze','mead','mech','mica','mice','zeda','ached','aimed','amice','amide','azide','chide','chime','demic','hazed','hemic','maced','mache','maize','mazed','media','medic','miche','chimed','haemic','miched','zaideh'};\r\n\t\tmax_score_corr = 19;\r\n\t\tmax_word_corr = {'zaideh'};\r\nend\r\n[max_score,max_word] = scrabble_scores_10(words,existing_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n%% anti-cheating test case\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\texisting_letter = 's';\r\n\t\twords = {'ae','ah','ai','al','am','as','at','eh','el','em','es','et','ha','he','hi','hm','is','it','la','li','ma','me','mi','sh','si','ta','te','ti','ahi','ahs','ail','aim','ais','ait','ale','als','alt','ami','ash','ate','eat','elm','els','ems','est','eta','eth','hae','ham','has','hat','hem','hes','het','hie','him','his','hit','ism','its','lah','lam','las','lat','lea','lei','let','lie','lis','lit','mae','mas','mat','meh','mel','met','mil','mis','sae','sal','sat','sea','sei','sel','set','sha','she','sim','sit','tae','tam','tas','tea','tel','tes','the','tie','til','tis','ahem','ahis','ails','aims','aits','ales','alit','alme','alms','alts','amie','amis','ates','east','eath','eats','elhi','elms','emit','etas','eths','haem','haes','haet','hail','hale','halm','halt','hame','hams','hast','hate','hats','heal','heat','heil','helm','hems','hest','hets','hies','hila','hilt','hims','hist','hits','ilea','isle','item','lahs','lame','lams','lase','lash','last','late','lath','lati','lats','leas','leis','lest','lets','lias','lies','lima','lime','list','lite','lits','maes','mail','male','malt','mash','mast','mate','math','mats','meal','meat','mels','melt','mesa','mesh','meta','meth','mile','mils','milt','mise','mist','mite','sail','sale','salt','same','sate','sati','seal','seam','seat','semi','seta','sham','shea','shim','sial','silt','sima','site','sith','slam','slat','slim','slit','smit','stem','tael','tail','tale','tali','tame','tams','tase','teal','team','teas','tela','tels','thae','them','this','ties','tile','tils','time','aisle','alist','almeh','almes','amies','email','emits','haems','haets','hails','hales','halms','halts','hames','haste','hates','heals','heats','heils','heist','helms','hemal','hilts','islet','istle','items','laith','lames','lathe','lathi','laths','leash','least','limas','limes','litas','lites','lithe','maile','mails','maist','males','malts','mates','maths','meals','meats','melts','metal','meths','metis','miles','milts','mites','saith','salmi','satem','selah','setal','shale','shalt','shame','sheal','shiel','slate','slime','smalt','smelt','smile','smite','smith','stale','steal','steam','stela','stile','stime','taels','tails','tales','tames','tamis','teals','teams','telia','tesla','thali','tiles','times','almehs','emails','halest','halite','hamlet','haslet','hiemal','lamest','lathes','lathis','latish','mailes','mashie','mesial','metals','misate','miseat','saithe','saltie','samiel','samite','samlet','sheila','shelta','smalti','stelai','tahsil','thalis','theism','atheism','halites','hamlets','heliast'};\r\n\t\tmax_score_corr = 12;\r\n\t\tmax_word_corr = {'atheism','hamlets'};\r\n\tcase 2\r\n\t\texisting_letter = 't';\r\n\t\twords = {'de','do','ed','el','en','er','et','id','in','it','li','lo','ne','no','od','oe','oi','on','or','re','te','ti','to','del','den','die','din','dit','doe','dol','don','dor','dot','eld','end','eon','ern','ion','ire','led','lei','let','lid','lie','lin','lit','lot','net','nil','nit','nod','nor','not','ode','oil','old','ole','one','ore','ort','red','rei','ret','rid','rin','rod','roe','rot','ted','tel','ten','tie','til','tin','tod','toe','ton','tor','deil','deli','delt','deni','dent','diel','diet','dine','dino','dint','diol','dire','dirl','dirt','dite','doer','doit','dole','dolt','done','dore','dote','edit','enol','idle','idol','inro','into','ired','iron','lend','leno','lent','lido','lied','lien','lier','line','lino','lint','lion','lire','lite','lode','loid','loin','lone','lord','lore','lorn','loti','nerd','nide','nite','node','nodi','noel','noil','noir','nori','note','olde','orle','redo','rein','rend','reno','rent','ride','riel','rile','rind','riot','rite','rode','roil','role','rote','roti','rotl','tein','tend','tern','tide','tied','tier','tile','tine','tire','tirl','tiro','toed','toil','told','tole','tone','tore','tori','torn','trio','trod','diner','doter','droit','drone','elint','eloin','enrol','ident','idler','indol','inert','inlet','inter','intro','irone','lento','lined','liner','lirot','liter','litre','loden','loner','nerol','niter','nitre','nitro','noted','noter','oiled','oiler','olden','older','oldie','olein','oriel','redon','relit','reoil','riled','ronde','teind','teloi','tenor','tilde','tiled','tiler','tined','tired','toile','toled','tondi','toned','toner','trend','tried','trine','triol','trode','trone','dentil','dinero','dotier','editor','entoil','indole','ironed','linted','linter','loiter','neroli','norite','orient','retold','rident','rioted','rodent','roiled','rondel','tinder','tirled','toiled','toiler','tonier','trined','triode','lentoid','retinol','tendril','trindle'};\r\n\t\tmax_score_corr = 8;\r\n\t\tmax_word_corr = {'lentoid','tendril','trindle'};\r\n\tcase 3\r\n\t\texisting_letter = 'n';\r\n\t\twords = {'ad','ae','am','an','ax','da','de','do','ed','em','en','ex','ma','me','mo','na','ne','no','od','oe','om','on','ox','ado','and','ane','ave','avo','axe','dam','dan','den','dev','dex','doe','dom','don','emo','end','eon','mad','mae','man','max','med','men','moa','mod','mon','nae','nam','nav','nod','nom','oda','ode','oma','one','ova','van','vex','voe','vox','aeon','amen','axed','axon','dame','damn','dean','demo','deva','dome','dona','done','dove','exam','exon','made','mane','mano','mead','mean','mend','meno','moan','mode','move','moxa','name','nave','nema','node','noma','nome','nova','odea','omen','oven','oxen','vane','vena','vend','admen','amend','anode','axmen','axone','daven','demon','devon','doven','maned','maven','maxed','menad','monad','monde','moved','named','nomad','novae','vaned','venom','daemon','moaned'};\r\n\t\tmax_score_corr = 14;\r\n\t\tmax_word_corr = {'axmen'};\r\n\tcase 4\r\n\t\texisting_letter = 'z';\r\n\t\twords = {'ad','ae','ah','ai','am','da','de','ed','eh','em','ha','he','hi','hm','id','ma','me','mi','za','ace','adz','ahi','aid','aim','ami','cad','cam','chi','dah','dam','die','dim','edh','had','hae','ham','hem','hic','hid','hie','him','ice','ich','mac','mad','mae','med','meh','mic','mid','zed','aced','ache','acid','acme','adze','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','cazh','cedi','chad','chai','cham','chem','chez','chia','chid','dace','dame','daze','dice','dime','each','emic','hade','haed','haem','hame','haze','head','hide','hied','iced','idea','idem','mace','mach','made','maid','maze','mead','mech','mica','mice','zeda','ached','aimed','amice','amide','azide','chide','chime','demic','hazed','hemic','maced','mache','maize','mazed','media','medic','miche','chimed','haemic','miched','zaideh'};\r\n\t\tmax_score_corr = 19;\r\n\t\tmax_word_corr = {'zaideh'};\r\nend\r\n[max_score,max_word] = scrabble_scores_10(words,existing_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":7,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":29,"test_suite_updated_at":"2015-03-17T13:21:23.000Z","rescore_all_solutions":false,"group_id":40,"created_at":"2015-03-14T18:30:00.000Z","updated_at":"2026-04-02T20:19:50.000Z","published_at":"2015-03-14T18:30:35.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem is very similar to the previous problem. Here, you are provided a letter of an existing word on the board from which you will play a word. The letter can reside anywhere (first to last) within the word you are playing. Write a function to find the highest scoring word, provided the letter you are building off of and the letters on your tray.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRather than having to test all the possible permutations against a dictionary, you will be provided a cell array of strings containing all possible words based on the starting letter and the letters on your tray. In addition to providing the highest score, also provide the word(s) that achieve that score in a cell array. See the test suite for examples. Due to high-scoring tiles, the highest score may not be achieved by the longest word(s).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRelated problems:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePrevious problem: 9 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3062-scrabble-scores-9\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWord score optimization (fixed first letter)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Next problem: 11 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3084-scrabble-scores-11\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWord score optimization (known letter) \u0026amp; multipliers\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":3050,"title":"Scrabble Scores - 5","description":"This problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided \u003chttp://en.wikipedia.org/wiki/Scrabble_letter_distributions#English here\u003e. (Use the English points distribution.)\r\n\r\nFor this problem, you will be provided with a set of words for each player in a game of Scrabble. The number of players may vary from two to four. The word set for each player will be provided in a cell array of strings; you'll need to use nargin and varargin to read in varying numbers of cell arrays for each test case. Write a function to calculate and return the total score for each player in a vector equal in length to the number of players.\r\n\r\nRelated problems:\r\n\r\nPrevious problem: 4 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3081-scrabble-scores-4 Word-set multiplier scoring\u003e. Next problem: 6 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3051-scrabble-scores-6 Board scoring\u003e.","description_html":"\u003cp\u003eThis problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided \u003ca href = \"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\"\u003ehere\u003c/a\u003e. (Use the English points distribution.)\u003c/p\u003e\u003cp\u003eFor this problem, you will be provided with a set of words for each player in a game of Scrabble. The number of players may vary from two to four. The word set for each player will be provided in a cell array of strings; you'll need to use nargin and varargin to read in varying numbers of cell arrays for each test case. Write a function to calculate and return the total score for each player in a vector equal in length to the number of players.\u003c/p\u003e\u003cp\u003eRelated problems:\u003c/p\u003e\u003cp\u003ePrevious problem: 4 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3081-scrabble-scores-4\"\u003eWord-set multiplier scoring\u003c/a\u003e. Next problem: 6 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3051-scrabble-scores-6\"\u003eBoard scoring\u003c/a\u003e.\u003c/p\u003e","function_template":"function [score] = scrabble_scores_5(varargin)\r\n\r\nscore = zeros(1,nargin);\r\n\r\nend\r\n","test_suite":"%%\r\nwords1 = {'hello','there','fellow','matlab','users'};\r\nwords2 = {'what','do','you','think','of','this','problem'};\r\nwords3 = {'if','you','like','it','please','give','it','a','like'};\r\nscore = [43 56 48];\r\nassert(isequal(scrabble_scores_5(words1,words2,words3),score))\r\n\r\n%%\r\nwords1 = {'zither','quandry','flummox','wealthy','amalgam'};\r\nwords2 = {'the','quick','brown','fox','jumps','over','a','lazy','dog'};\r\nwords3 = {'heterogeneous','homogenously','concatenate','thusly','hi'};\r\nwords4 = {'perspicacious','yes','zero','quizzical','no'};\r\nscore = [87 94 70 80];\r\nassert(isequal(scrabble_scores_5(words1,words2,words3,words4),score))\r\n\r\n%%\r\nwords1 = {'one','two','three','four','five'};\r\nwords2 = {'six','seven','eight','nine','ten'};\r\nscore = [34 34];\r\nassert(isequal(scrabble_scores_5(words1,words2),score))\r\n\r\n%%\r\nwords1 = {'random','word','generator','responses','below'};\r\nwords2 = {'contact','laboratory','overtone','writer','philosophy'};\r\nwords3 = {'hunting','convention','surface','superior','travel'};\r\nwords4 = {'convincing','hangover','fortnight','long','novelty'};\r\nscore = [48 69 57 67];\r\nassert(isequal(scrabble_scores_5(words1,words2,words3,words4),score))\r\n\r\n%%\r\nwords = { {'random','word','generator','responses','below'};\r\n {'contact','laboratory','overtone','writer','philosophy'};\r\n {'hunting','convention','surface','superior','travel'};\r\n {'convincing','hangover','fortnight','long','novelty'}; };\r\nscore = [48 69 57 67];\r\nind1 = randi(4);\r\nind2 = randi(4);\r\nassert(isequal(scrabble_scores_5(words{ind1},words{ind2}),[score(ind1) score(ind2)]))\r\n\r\n%%\r\nwords = { {'zither','quandry','flummox','wealthy','amalgam'};\r\n {'the','quick','brown','fox','jumps','over','a','lazy','dog'};\r\n {'heterogeneous','homogenously','concatenate','thusly','hi'};\r\n {'perspicacious','yes','zero','quizzical','no'}; };\r\nscore = [87 94 70 80];\r\nind1 = randi(4);\r\nind2 = randi(4);\r\nassert(isequal(scrabble_scores_5(words{ind1},words{ind2}),[score(ind1) score(ind2)]))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":0,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":36,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":40,"created_at":"2015-02-28T03:40:58.000Z","updated_at":"2026-04-02T20:13:53.000Z","published_at":"2015-02-28T03:40:58.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehere\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. (Use the English points distribution.)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor this problem, you will be provided with a set of words for each player in a game of Scrabble. The number of players may vary from two to four. The word set for each player will be provided in a cell array of strings; you'll need to use nargin and varargin to read in varying numbers of cell arrays for each test case. Write a function to calculate and return the total score for each player in a vector equal in length to the number of players.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRelated problems:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePrevious problem: 4 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3081-scrabble-scores-4\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWord-set multiplier scoring\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Next problem: 6 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3051-scrabble-scores-6\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eBoard scoring\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":3062,"title":"Scrabble Scores - 9","description":"After developing a sophisticated Scrabble scoring routine, it's time to write an optimization routine for single-word scoring. The point distribution for English is provided \u003chttp://en.wikipedia.org/wiki/Scrabble_letter_distributions#English here\u003e.\r\n\r\nFor this problem, you are provided the starting letter (from an existing word on the board) from which you will play a word. For this problem, we'll assume that that's the first letter of your new word.\r\n\r\nRather than having to test all the possible permutations against a dictionary, you will be provided a cell array of strings containing all possible words based on the letters on your tray. Write a function to determine which word would provide the highest score. Also, provide the word(s) that achieve that score in a cell array. See the test suite for examples.\r\n\r\nRelated problems:\r\n\r\nPrevious problem: 8 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3060-scrabble-scores-8 Multiplayer multiplier board scoring\u003e. Next problem: 10 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3082-scrabble-scores-10 Word score optimization (given letter)\u003e.","description_html":"\u003cp\u003eAfter developing a sophisticated Scrabble scoring routine, it's time to write an optimization routine for single-word scoring. The point distribution for English is provided \u003ca href = \"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\"\u003ehere\u003c/a\u003e.\u003c/p\u003e\u003cp\u003eFor this problem, you are provided the starting letter (from an existing word on the board) from which you will play a word. For this problem, we'll assume that that's the first letter of your new word.\u003c/p\u003e\u003cp\u003eRather than having to test all the possible permutations against a dictionary, you will be provided a cell array of strings containing all possible words based on the letters on your tray. Write a function to determine which word would provide the highest score. Also, provide the word(s) that achieve that score in a cell array. See the test suite for examples.\u003c/p\u003e\u003cp\u003eRelated problems:\u003c/p\u003e\u003cp\u003ePrevious problem: 8 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3060-scrabble-scores-8\"\u003eMultiplayer multiplier board scoring\u003c/a\u003e. Next problem: 10 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3082-scrabble-scores-10\"\u003eWord score optimization (given letter)\u003c/a\u003e.\u003c/p\u003e","function_template":"function [max_score,max_word] = scrabble_scores_9(words,first_letter)\r\n\r\nmax_score = 0;\r\nmax_word = '';\r\n\r\nend\r\n","test_suite":"%%\r\nfirst_letter = 's'; %the word must start with this letter, which is in an already played word\r\ntray_letters = 'aethilm'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including the first letter with your tray letters (though the first letter has been thrown into the mix)\r\nwords = {'ae','ah','ai','al','am','as','at','eh','el','em','es','et','ha','he','hi','hm','is','it','la','li','ma','me','mi','sh','si','ta','te','ti','ahi','ahs','ail','aim','ais','ait','ale','als','alt','ami','ash','ate','eat','elm','els','ems','est','eta','eth','hae','ham','has','hat','hem','hes','het','hie','him','his','hit','ism','its','lah','lam','las','lat','lea','lei','let','lie','lis','lit','mae','mas','mat','meh','mel','met','mil','mis','sae','sal','sat','sea','sei','sel','set','sha','she','sim','sit','tae','tam','tas','tea','tel','tes','the','tie','til','tis','ahem','ahis','ails','aims','aits','ales','alit','alme','alms','alts','amie','amis','ates','east','eath','eats','elhi','elms','emit','etas','eths','haem','haes','haet','hail','hale','halm','halt','hame','hams','hast','hate','hats','heal','heat','heil','helm','hems','hest','hets','hies','hila','hilt','hims','hist','hits','ilea','isle','item','lahs','lame','lams','lase','lash','last','late','lath','lati','lats','leas','leis','lest','lets','lias','lies','lima','lime','list','lite','lits','maes','mail','male','malt','mash','mast','mate','math','mats','meal','meat','mels','melt','mesa','mesh','meta','meth','mile','mils','milt','mise','mist','mite','sail','sale','salt','same','sate','sati','seal','seam','seat','semi','seta','sham','shea','shim','sial','silt','sima','site','sith','slam','slat','slim','slit','smit','stem','tael','tail','tale','tali','tame','tams','tase','teal','team','teas','tela','tels','thae','them','this','ties','tile','tils','time','aisle','alist','almeh','almes','amies','email','emits','haems','haets','hails','hales','halms','halts','hames','haste','hates','heals','heats','heils','heist','helms','hemal','hilts','islet','istle','items','laith','lames','lathe','lathi','laths','leash','least','limas','limes','litas','lites','lithe','maile','mails','maist','males','malts','mates','maths','meals','meats','melts','metal','meths','metis','miles','milts','mites','saith','salmi','satem','selah','setal','shale','shalt','shame','sheal','shiel','slate','slime','smalt','smelt','smile','smite','smith','stale','steal','steam','stela','stile','stime','taels','tails','tales','tames','tamis','teals','teams','telia','tesla','thali','tiles','times','almehs','emails','halest','halite','hamlet','haslet','hiemal','lamest','lathes','lathis','latish','mailes','mashie','mesial','metals','misate','miseat','saithe','saltie','samiel','samite','samlet','sheila','shelta','smalti','stelai','tahsil','thalis','theism','atheism','halites','hamlets','heliast'};\r\nmax_score_corr = 10;\r\nmax_word_corr = {'shame','smith'};\r\n[max_score,max_word] = scrabble_scores_9(words,first_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n%%\r\nfirst_letter = 't'; %the word must start with this letter, which is in an already played word\r\ntray_letters = 'eodnirl'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including the first letter with your tray letters (though the first letter has been thrown into the mix)\r\nwords = {'de','do','ed','el','en','er','et','id','in','it','li','lo','ne','no','od','oe','oi','on','or','re','te','ti','to','del','den','die','din','dit','doe','dol','don','dor','dot','eld','end','eon','ern','ion','ire','led','lei','let','lid','lie','lin','lit','lot','net','nil','nit','nod','nor','not','ode','oil','old','ole','one','ore','ort','red','rei','ret','rid','rin','rod','roe','rot','ted','tel','ten','tie','til','tin','tod','toe','ton','tor','deil','deli','delt','deni','dent','diel','diet','dine','dino','dint','diol','dire','dirl','dirt','dite','doer','doit','dole','dolt','done','dore','dote','edit','enol','idle','idol','inro','into','ired','iron','lend','leno','lent','lido','lied','lien','lier','line','lino','lint','lion','lire','lite','lode','loid','loin','lone','lord','lore','lorn','loti','nerd','nide','nite','node','nodi','noel','noil','noir','nori','note','olde','orle','redo','rein','rend','reno','rent','ride','riel','rile','rind','riot','rite','rode','roil','role','rote','roti','rotl','tein','tend','tern','tide','tied','tier','tile','tine','tire','tirl','tiro','toed','toil','told','tole','tone','tore','tori','torn','trio','trod','diner','doter','droit','drone','elint','eloin','enrol','ident','idler','indol','inert','inlet','inter','intro','irone','lento','lined','liner','lirot','liter','litre','loden','loner','nerol','niter','nitre','nitro','noted','noter','oiled','oiler','olden','older','oldie','olein','oriel','redon','relit','reoil','riled','ronde','teind','teloi','tenor','tilde','tiled','tiler','tined','tired','toile','toled','tondi','toned','toner','trend','tried','trine','triol','trode','trone','dentil','dinero','dotier','editor','entoil','indole','ironed','linted','linter','loiter','neroli','norite','orient','retold','rident','rioted','rodent','roiled','rondel','tinder','tirled','toiled','toiler','tonier','trined','triode','lentoid','retinol','tendril','trindle'};\r\nmax_score_corr = 8;\r\nmax_word_corr = {'tendril','trindle'};\r\n[max_score,max_word] = scrabble_scores_9(words,first_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n%%\r\nfirst_letter = 'n'; %the word must start with this letter, which is in an already played word\r\ntray_letters = 'dmvxeao'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including the first letter with your tray letters (though the first letter has been thrown into the mix)\r\nwords = {'ad','ae','am','an','ax','da','de','do','ed','em','en','ex','ma','me','mo','na','ne','no','od','oe','om','on','ox','ado','and','ane','ave','avo','axe','dam','dan','den','dev','dex','doe','dom','don','emo','end','eon','mad','mae','man','max','med','men','moa','mod','mon','nae','nam','nav','nod','nom','oda','ode','oma','one','ova','van','vex','voe','vox','aeon','amen','axed','axon','dame','damn','dean','demo','deva','dome','dona','done','dove','exam','exon','made','mane','mano','mead','mean','mend','meno','moan','mode','move','moxa','name','nave','nema','node','noma','nome','nova','odea','omen','oven','oxen','vane','vena','vend','admen','amend','anode','axmen','axone','daven','demon','devon','doven','maned','maven','maxed','menad','monad','monde','moved','named','nomad','novae','vaned','venom','daemon','moaned'};\r\nmax_score_corr = 8;\r\nmax_word_corr = {'named','nomad','novae'};\r\n[max_score,max_word] = scrabble_scores_9(words,first_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n%%\r\nfirst_letter = 'z'; %the word must start with this letter, which is in an already played word\r\ntray_letters = 'aehcmdi'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including the first letter with your tray letters (though the first letter has been thrown into the mix)\r\nwords = {'ad','ae','ah','ai','am','da','de','ed','eh','em','ha','he','hi','hm','id','ma','me','mi','za','ace','adz','ahi','aid','aim','ami','cad','cam','chi','dah','dam','die','dim','edh','had','hae','ham','hem','hic','hid','hie','him','ice','ich','mac','mad','mae','med','meh','mic','mid','zed','aced','ache','acid','acme','adze','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','cazh','cedi','chad','chai','cham','chem','chez','chia','chid','dace','dame','daze','dice','dime','each','emic','hade','haed','haem','hame','haze','head','hide','hied','iced','idea','idem','mace','mach','made','maid','maze','mead','mech','mica','mice','zeda','ached','aimed','amice','amide','azide','chide','chime','demic','hazed','hemic','maced','mache','maize','mazed','media','medic','miche','chimed','haemic','miched','zaideh'};\r\nmax_score_corr = 19;\r\nmax_word_corr = {'zaideh'};\r\n[max_score,max_word] = scrabble_scores_9(words,first_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n%% anti-cheating test case\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\tfirst_letter = 's';\r\n\t\twords = {'ae','ah','ai','al','am','as','at','eh','el','em','es','et','ha','he','hi','hm','is','it','la','li','ma','me','mi','sh','si','ta','te','ti','ahi','ahs','ail','aim','ais','ait','ale','als','alt','ami','ash','ate','eat','elm','els','ems','est','eta','eth','hae','ham','has','hat','hem','hes','het','hie','him','his','hit','ism','its','lah','lam','las','lat','lea','lei','let','lie','lis','lit','mae','mas','mat','meh','mel','met','mil','mis','sae','sal','sat','sea','sei','sel','set','sha','she','sim','sit','tae','tam','tas','tea','tel','tes','the','tie','til','tis','ahem','ahis','ails','aims','aits','ales','alit','alme','alms','alts','amie','amis','ates','east','eath','eats','elhi','elms','emit','etas','eths','haem','haes','haet','hail','hale','halm','halt','hame','hams','hast','hate','hats','heal','heat','heil','helm','hems','hest','hets','hies','hila','hilt','hims','hist','hits','ilea','isle','item','lahs','lame','lams','lase','lash','last','late','lath','lati','lats','leas','leis','lest','lets','lias','lies','lima','lime','list','lite','lits','maes','mail','male','malt','mash','mast','mate','math','mats','meal','meat','mels','melt','mesa','mesh','meta','meth','mile','mils','milt','mise','mist','mite','sail','sale','salt','same','sate','sati','seal','seam','seat','semi','seta','sham','shea','shim','sial','silt','sima','site','sith','slam','slat','slim','slit','smit','stem','tael','tail','tale','tali','tame','tams','tase','teal','team','teas','tela','tels','thae','them','this','ties','tile','tils','time','aisle','alist','almeh','almes','amies','email','emits','haems','haets','hails','hales','halms','halts','hames','haste','hates','heals','heats','heils','heist','helms','hemal','hilts','islet','istle','items','laith','lames','lathe','lathi','laths','leash','least','limas','limes','litas','lites','lithe','maile','mails','maist','males','malts','mates','maths','meals','meats','melts','metal','meths','metis','miles','milts','mites','saith','salmi','satem','selah','setal','shale','shalt','shame','sheal','shiel','slate','slime','smalt','smelt','smile','smite','smith','stale','steal','steam','stela','stile','stime','taels','tails','tales','tames','tamis','teals','teams','telia','tesla','thali','tiles','times','almehs','emails','halest','halite','hamlet','haslet','hiemal','lamest','lathes','lathis','latish','mailes','mashie','mesial','metals','misate','miseat','saithe','saltie','samiel','samite','samlet','sheila','shelta','smalti','stelai','tahsil','thalis','theism','atheism','halites','hamlets','heliast'};\r\n\t\tmax_score_corr = 10;\r\n\t\tmax_word_corr = {'shame','smith'};\r\n\tcase 2\r\n\t\tfirst_letter = 't';\r\n\t\twords = {'de','do','ed','el','en','er','et','id','in','it','li','lo','ne','no','od','oe','oi','on','or','re','te','ti','to','del','den','die','din','dit','doe','dol','don','dor','dot','eld','end','eon','ern','ion','ire','led','lei','let','lid','lie','lin','lit','lot','net','nil','nit','nod','nor','not','ode','oil','old','ole','one','ore','ort','red','rei','ret','rid','rin','rod','roe','rot','ted','tel','ten','tie','til','tin','tod','toe','ton','tor','deil','deli','delt','deni','dent','diel','diet','dine','dino','dint','diol','dire','dirl','dirt','dite','doer','doit','dole','dolt','done','dore','dote','edit','enol','idle','idol','inro','into','ired','iron','lend','leno','lent','lido','lied','lien','lier','line','lino','lint','lion','lire','lite','lode','loid','loin','lone','lord','lore','lorn','loti','nerd','nide','nite','node','nodi','noel','noil','noir','nori','note','olde','orle','redo','rein','rend','reno','rent','ride','riel','rile','rind','riot','rite','rode','roil','role','rote','roti','rotl','tein','tend','tern','tide','tied','tier','tile','tine','tire','tirl','tiro','toed','toil','told','tole','tone','tore','tori','torn','trio','trod','diner','doter','droit','drone','elint','eloin','enrol','ident','idler','indol','inert','inlet','inter','intro','irone','lento','lined','liner','lirot','liter','litre','loden','loner','nerol','niter','nitre','nitro','noted','noter','oiled','oiler','olden','older','oldie','olein','oriel','redon','relit','reoil','riled','ronde','teind','teloi','tenor','tilde','tiled','tiler','tined','tired','toile','toled','tondi','toned','toner','trend','tried','trine','triol','trode','trone','dentil','dinero','dotier','editor','entoil','indole','ironed','linted','linter','loiter','neroli','norite','orient','retold','rident','rioted','rodent','roiled','rondel','tinder','tirled','toiled','toiler','tonier','trined','triode','lentoid','retinol','tendril','trindle'};\r\n\t\tmax_score_corr = 8;\r\n\t\tmax_word_corr = {'tendril','trindle'};\r\n\tcase 3\r\n\t\tfirst_letter = 'n';\r\n\t\twords = {'ad','ae','am','an','ax','da','de','do','ed','em','en','ex','ma','me','mo','na','ne','no','od','oe','om','on','ox','ado','and','ane','ave','avo','axe','dam','dan','den','dev','dex','doe','dom','don','emo','end','eon','mad','mae','man','max','med','men','moa','mod','mon','nae','nam','nav','nod','nom','oda','ode','oma','one','ova','van','vex','voe','vox','aeon','amen','axed','axon','dame','damn','dean','demo','deva','dome','dona','done','dove','exam','exon','made','mane','mano','mead','mean','mend','meno','moan','mode','move','moxa','name','nave','nema','node','noma','nome','nova','odea','omen','oven','oxen','vane','vena','vend','admen','amend','anode','axmen','axone','daven','demon','devon','doven','maned','maven','maxed','menad','monad','monde','moved','named','nomad','novae','vaned','venom','daemon','moaned'};\r\n\t\tmax_score_corr = 8;\r\n\t\tmax_word_corr = {'named','nomad','novae'};\r\n\tcase 4\r\n\t\tfirst_letter = 'z';\r\n\t\twords = {'ad','ae','ah','ai','am','da','de','ed','eh','em','ha','he','hi','hm','id','ma','me','mi','za','ace','adz','ahi','aid','aim','ami','cad','cam','chi','dah','dam','die','dim','edh','had','hae','ham','hem','hic','hid','hie','him','ice','ich','mac','mad','mae','med','meh','mic','mid','zed','aced','ache','acid','acme','adze','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','cazh','cedi','chad','chai','cham','chem','chez','chia','chid','dace','dame','daze','dice','dime','each','emic','hade','haed','haem','hame','haze','head','hide','hied','iced','idea','idem','mace','mach','made','maid','maze','mead','mech','mica','mice','zeda','ached','aimed','amice','amide','azide','chide','chime','demic','hazed','hemic','maced','mache','maize','mazed','media','medic','miche','chimed','haemic','miched','zaideh'};\r\n\t\tmax_score_corr = 19;\r\n\t\tmax_word_corr = {'zaideh'};\r\nend\r\n[max_score,max_word] = scrabble_scores_9(words,first_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":3,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":29,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":40,"created_at":"2015-03-04T02:02:45.000Z","updated_at":"2026-04-02T20:19:03.000Z","published_at":"2015-03-04T02:02:45.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAfter developing a sophisticated Scrabble scoring routine, it's time to write an optimization routine for single-word scoring. The point distribution for English is provided\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehere\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor this problem, you are provided the starting letter (from an existing word on the board) from which you will play a word. For this problem, we'll assume that that's the first letter of your new word.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRather than having to test all the possible permutations against a dictionary, you will be provided a cell array of strings containing all possible words based on the letters on your tray. Write a function to determine which word would provide the highest score. Also, provide the word(s) that achieve that score in a cell array. See the test suite for examples.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRelated problems:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePrevious problem: 8 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3060-scrabble-scores-8\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMultiplayer multiplier board scoring\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Next problem: 10 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3082-scrabble-scores-10\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWord score optimization (given letter)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":3049,"title":"Scrabble Scores - 4","description":"This problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided \u003chttp://en.wikipedia.org/wiki/Scrabble_letter_distributions#English here\u003e. (Use the English points distribution.)\r\n\r\nFor this problem, you will be provided with a set of words and the accompanying bonus squares that each word covered. The words will be provided in a cell array of strings; the bonus squares will be provided in a two-level cell array of strings. Write a function to calculate the total score for the set of words using the multipliers. The multipliers are as follows:\r\n\r\n* 'DL' = double letter\r\n* 'DW' = double word\r\n* 'TL' = triple letter\r\n* 'TW' = triple word\r\n* 'QL' = quadruple letter\r\n* 'QW' = quadruple word\r\n\r\nFor those not familiar with QL and QW, those were introduced in Super Scrabble. Also, remember that the DL, TL, and QL multipliers take effect before the DW, TW, and QW multipliers. Also, multiple word multipliers can be present, having a cumulative effect (e.g., DW \u0026 TW = *6).\r\n\r\nAs an example, if the word were 'matlab' and the multiplier cell array was \r\n\r\n  {'','DW','','','','DL'}\r\n\r\n\r\nthen the score would be (3 + 1 + 1 + 1 + 1 + 2*3)*2 = 26. Each word in the set should be scored in this manner and the total score summed.\r\n\r\nThis is an old version of problem 4 in this series. It has been revised and is available here: \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3081-scrabble-scores-4 Word-set multiplier scoring\u003e.","description_html":"\u003cp\u003eThis problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided \u003ca href = \"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\"\u003ehere\u003c/a\u003e. (Use the English points distribution.)\u003c/p\u003e\u003cp\u003eFor this problem, you will be provided with a set of words and the accompanying bonus squares that each word covered. The words will be provided in a cell array of strings; the bonus squares will be provided in a two-level cell array of strings. Write a function to calculate the total score for the set of words using the multipliers. The multipliers are as follows:\u003c/p\u003e\u003cul\u003e\u003cli\u003e'DL' = double letter\u003c/li\u003e\u003cli\u003e'DW' = double word\u003c/li\u003e\u003cli\u003e'TL' = triple letter\u003c/li\u003e\u003cli\u003e'TW' = triple word\u003c/li\u003e\u003cli\u003e'QL' = quadruple letter\u003c/li\u003e\u003cli\u003e'QW' = quadruple word\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eFor those not familiar with QL and QW, those were introduced in Super Scrabble. Also, remember that the DL, TL, and QL multipliers take effect before the DW, TW, and QW multipliers. Also, multiple word multipliers can be present, having a cumulative effect (e.g., DW \u0026 TW = *6).\u003c/p\u003e\u003cp\u003eAs an example, if the word were 'matlab' and the multiplier cell array was\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e{'','DW','','','','DL'}\r\n\u003c/pre\u003e\u003cp\u003ethen the score would be (3 + 1 + 1 + 1 + 1 + 2*3)*2 = 26. Each word in the set should be scored in this manner and the total score summed.\u003c/p\u003e\u003cp\u003eThis is an old version of problem 4 in this series. It has been revised and is available here: \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3081-scrabble-scores-4\"\u003eWord-set multiplier scoring\u003c/a\u003e.\u003c/p\u003e","function_template":"function [score] = scrabble_scores_4(words,mult)\r\n\r\nscore = 0;\r\n\r\nend\r\n","test_suite":"%%\r\nwords = {'hello','there','fellow','matlab','users'};\r\nmult = {{'DW','','','','DL'} {'DW','','','','DL'} {'','DW','','','','DL'} {'','DW','','','','DL'} {'DW','','','','DL'}};\r\nscore = 106;\r\nassert(isequal(scrabble_scores_4(words,mult),score))\r\n\r\n%%\r\nwords = {'what','do','you','think','of','this','problem'};\r\nmult = {{'','DW','',''}; {'',''}; {'','DW',''}; {'','DW','','','TL'}; {'',''}; {'','DW','',''}; {'TL','','','DW','','','TL'}};\r\nscore = 148;\r\nassert(isequal(scrabble_scores_4(words,mult),score))\r\n\r\n%%\r\nwords = {'if','you','like','it','please','give','it','a','like'};\r\nmult = {{'','DW'}; {'','','QW'}; {'','DW','',''}; {'',''}; {'','DW','','','TL',''}; {'','DW','',''}; {'TL',''}; {''}; {'DW','','','TL'}};\r\nscore = 113;\r\nassert(isequal(scrabble_scores_4(words,mult),score))\r\n\r\n%%\r\nwords = {'zither','quandry','flummox','wealthy','amalgam'};\r\nmult = {{'','DW','','','','DW'}; {'QL','','','','','DW',''}; {'','DW','','','','DW',''}; {'','DW','','','','DW',''}; {'','DW','','','','DW',''}; };\r\nscore = 368;\r\nassert(isequal(scrabble_scores_4(words,mult),score))\r\n\r\n%%\r\nwords = {'heterogeneous','homogenously','concatenate','thusly','hi'};\r\nmult = {{'TL','','','','TL','','','','TW','','','','QW'}; {'','','','TL','','','','TW','','','','QW'}; {'TL','','','','TL','','','','TW','',''}; {'TL','','','','TL',''}; {'',''}; };\r\nscore = 690;\r\nassert(isequal(scrabble_scores_4(words,mult),score))\r\n\r\n%%\r\nwords = {'perspicacious','yes','zero','quizzical','no'};\r\nmult = {{'TL','','','','TL','','','','TW','','','','QW'}; {'','',''}; {'TL','','',''}; {'TL','','','','TL','','','TW',''}; {'',''}; };\r\nscore = 671;\r\nassert(isequal(scrabble_scores_4(words,mult),score))\r\n\r\n%% pangram test to help ensure letters scores are correctly assigned\r\nwords = {'the','quick','brown','fox','jumps','over','a','lazy','dog'};\r\nmult = {{'TL','',''}; {'','TL','','',''}; {'TW','','','','QW'}; {'','',''}; {'TL','','','','QL'}; {'TL','','',''}; {'TL'}; {'','','TW',''}; {'','','QW'}; };\r\nscore = 278;\r\nassert(isequal(scrabble_scores_4(words,mult),score))","published":true,"deleted":false,"likes_count":1,"comments_count":3,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":15,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2015-02-28T03:14:55.000Z","updated_at":"2025-11-01T19:19:19.000Z","published_at":"2015-02-28T03:14:55.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehere\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. (Use the English points distribution.)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor this problem, you will be provided with a set of words and the accompanying bonus squares that each word covered. The words will be provided in a cell array of strings; the bonus squares will be provided in a two-level cell array of strings. Write a function to calculate the total score for the set of words using the multipliers. The multipliers are as follows:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e'DL' = double letter\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e'DW' = double word\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e'TL' = triple letter\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e'TW' = triple word\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e'QL' = quadruple letter\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e'QW' = quadruple word\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor those not familiar with QL and QW, those were introduced in Super Scrabble. Also, remember that the DL, TL, and QL multipliers take effect before the DW, TW, and QW multipliers. Also, multiple word multipliers can be present, having a cumulative effect (e.g., DW \u0026amp; TW =\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e *\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e6).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAs an example, if the word were 'matlab' and the multiplier cell array was\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[{'','DW','','','','DL'}]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ethen the score would be (3 + 1 + 1 + 1 + 1 + 2*3)*2 = 26. Each word in the set should be scored in this manner and the total score summed.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis is an old version of problem 4 in this series. It has been revised and is available here:\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3081-scrabble-scores-4\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWord-set multiplier scoring\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":3048,"title":"Scrabble Scores - 3","description":"This problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided \u003chttp://en.wikipedia.org/wiki/Scrabble_letter_distributions#English here\u003e. (Use the English points distribution.)\r\n\r\nFor this problem, you will be provided with a word and the accompanying bonus squares that the word might have covered (in a cell array of strings). Write a function to calculate the total score for the word using the multipliers. The multipliers are as follows:\r\n\r\n* 'DL' = double letter\r\n* 'DW' = double word\r\n* 'TL' = triple letter\r\n* 'TW' = triple word\r\n* 'QL' = quadruple letter\r\n* 'QW' = quadruple word\r\n\r\nFor those not familiar with QL and QW, those were introduced in Super Scrabble. Also, remember that the DL, TL, and QL multipliers take effect before the DW, TW, and QW multipliers. Also, multiple word multipliers can be present, having a cumulative effect (e.g., DW \u0026 TW = *6).\r\n\r\nAs an example, if the word were 'matlab' and the multiplier cell array was \r\n\r\n  {'','DW','','','','DL'}\r\n\r\n\r\nthen the score would be (3 + 1 + 1 + 1 + 1 + 2*3)*2 = 26.\r\n\r\nRelated problems:\r\n\r\nPrevious problem: 2 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3047-scrabble-scores-2 Word-set scoring\u003e. Next problem: 4 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3081-scrabble-scores-4 Word-set multiplier scoring\u003e.","description_html":"\u003cp\u003eThis problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided \u003ca href = \"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\"\u003ehere\u003c/a\u003e. (Use the English points distribution.)\u003c/p\u003e\u003cp\u003eFor this problem, you will be provided with a word and the accompanying bonus squares that the word might have covered (in a cell array of strings). Write a function to calculate the total score for the word using the multipliers. The multipliers are as follows:\u003c/p\u003e\u003cul\u003e\u003cli\u003e'DL' = double letter\u003c/li\u003e\u003cli\u003e'DW' = double word\u003c/li\u003e\u003cli\u003e'TL' = triple letter\u003c/li\u003e\u003cli\u003e'TW' = triple word\u003c/li\u003e\u003cli\u003e'QL' = quadruple letter\u003c/li\u003e\u003cli\u003e'QW' = quadruple word\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eFor those not familiar with QL and QW, those were introduced in Super Scrabble. Also, remember that the DL, TL, and QL multipliers take effect before the DW, TW, and QW multipliers. Also, multiple word multipliers can be present, having a cumulative effect (e.g., DW \u0026 TW = *6).\u003c/p\u003e\u003cp\u003eAs an example, if the word were 'matlab' and the multiplier cell array was\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e{'','DW','','','','DL'}\r\n\u003c/pre\u003e\u003cp\u003ethen the score would be (3 + 1 + 1 + 1 + 1 + 2*3)*2 = 26.\u003c/p\u003e\u003cp\u003eRelated problems:\u003c/p\u003e\u003cp\u003ePrevious problem: 2 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3047-scrabble-scores-2\"\u003eWord-set scoring\u003c/a\u003e. Next problem: 4 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3081-scrabble-scores-4\"\u003eWord-set multiplier scoring\u003c/a\u003e.\u003c/p\u003e","function_template":"function [score] = scrabble_scores_3(word,mult)\r\n\r\nscore = 0;\r\n\r\nend\r\n","test_suite":"%%\r\nword = 'matlab';\r\nmult = {'','DW','','','','DL'};\r\nscore = 26;\r\nassert(isequal(scrabble_scores_3(word,mult),score))\r\n\r\n%%\r\nword = 'problem';\r\nmult = {'','','','','','',''};\r\nscore = 13;\r\nassert(isequal(scrabble_scores_3(word,mult),score))\r\n\r\n%%\r\nword = 'zither';\r\nmult = {'','DW','','','','DW'};\r\nscore = 72;\r\nassert(isequal(scrabble_scores_3(word,mult),score))\r\n\r\n%%\r\nword = 'quandry';\r\nmult = {'TL','','','','TL','',''};\r\nscore = 44;\r\nassert(isequal(scrabble_scores_3(word,mult),score))\r\n\r\n%%\r\nword = 'concatenates';\r\nmult = {'TW','','','DL','','','','TW','','','','DL'};\r\nscore = 180;\r\nassert(isequal(scrabble_scores_3(word,mult),score))\r\n\r\n%%\r\nword = 'heterogeneousness';\r\nmult = {'QW','','','DL','','','','TW','','','DL','','','TW','','',''};\r\nscore = 828;\r\nassert(isequal(scrabble_scores_3(word,mult),score))\r\n\r\n%%\r\nword = {'hello','donut','cheat','shape','quote'};\r\nmult = {'QW','','','DL',''};\r\nscore = [36 28 44 52 60];\r\nind = randi(5);\r\nassert(isequal(scrabble_scores_3(word{ind},mult),score(ind)))\r\n\r\n%%\r\nword = {'hello','donut','cheat','shape','quote'};\r\nmult = {'QL','','','','DW'};\r\nscore = [40 24 38 26 88];\r\nind = randi(5);\r\nassert(isequal(scrabble_scores_3(word{ind},mult),score(ind)))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":40,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":40,"created_at":"2015-02-26T04:46:46.000Z","updated_at":"2026-04-02T20:11:50.000Z","published_at":"2015-02-26T04:46:46.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehere\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. (Use the English points distribution.)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor this problem, you will be provided with a word and the accompanying bonus squares that the word might have covered (in a cell array of strings). Write a function to calculate the total score for the word using the multipliers. The multipliers are as follows:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e'DL' = double letter\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e'DW' = double word\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e'TL' = triple letter\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e'TW' = triple word\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e'QL' = quadruple letter\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e'QW' = quadruple word\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor those not familiar with QL and QW, those were introduced in Super Scrabble. Also, remember that the DL, TL, and QL multipliers take effect before the DW, TW, and QW multipliers. Also, multiple word multipliers can be present, having a cumulative effect (e.g., DW \u0026amp; TW =\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e *\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e6).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAs an example, if the word were 'matlab' and the multiplier cell array was\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[{'','DW','','','','DL'}]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ethen the score would be (3 + 1 + 1 + 1 + 1 + 2*3)*2 = 26.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRelated problems:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePrevious problem: 2 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3047-scrabble-scores-2\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWord-set scoring\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Next problem: 4 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3081-scrabble-scores-4\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWord-set multiplier scoring\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":3081,"title":"Scrabble Scores - 4","description":"This problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided here. (Use the English points distribution.)\r\n\r\nFor this problem, you will be provided with a set of words and the accompanying bonus squares that each word covered. The words will be provided in a cell array of strings. Write a function to calculate the total score for the set of words using the multipliers. The multipliers are as follows:\r\n\r\n * D: double word\r\n * T: triple word\r\n * Q: quadruple word\r\n * d: double letter\r\n * t: triple letter\r\n * q: quadruple letter\r\n\r\nFor those not familiar with quadruple word (Q) and quadruple letter (q), those were introduced in Super Scrabble. Also, remember that the d, t, and q multipliers take effect before the D, T, and Q multipliers. Also, multiple word multipliers can be present, having a cumulative effect (e.g., D \u0026 T = *6).\r\n\r\nAs an example, if the word were 'matlab' and the multiplier string array was\r\n\r\n  [' ','D',' ',' ',' ','d'] (or ' D   d')\r\n\r\nthen the score would be (3 + 1 + 1 + 1 + 1 + 2*3)*2 = 26. Each word in the set should be scored in this manner and the total score summed.\r\n\r\nRelated problems:\r\n\r\nPrevious problem: 3 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3048-scrabble-scores-3 Single-word multiplier scoring\u003e. Next problem: 5 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3050-scrabble-scores-5 Multiplayer word-set scoring\u003e.","description_html":"\u003cp\u003eThis problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided here. (Use the English points distribution.)\u003c/p\u003e\u003cp\u003eFor this problem, you will be provided with a set of words and the accompanying bonus squares that each word covered. The words will be provided in a cell array of strings. Write a function to calculate the total score for the set of words using the multipliers. The multipliers are as follows:\u003c/p\u003e\u003cpre\u003e * D: double word\r\n * T: triple word\r\n * Q: quadruple word\r\n * d: double letter\r\n * t: triple letter\r\n * q: quadruple letter\u003c/pre\u003e\u003cp\u003eFor those not familiar with quadruple word (Q) and quadruple letter (q), those were introduced in Super Scrabble. Also, remember that the d, t, and q multipliers take effect before the D, T, and Q multipliers. Also, multiple word multipliers can be present, having a cumulative effect (e.g., D \u0026 T = *6).\u003c/p\u003e\u003cp\u003eAs an example, if the word were 'matlab' and the multiplier string array was\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003e[' ','D',' ',' ',' ','d'] (or ' D   d')\r\n\u003c/pre\u003e\u003cp\u003ethen the score would be (3 + 1 + 1 + 1 + 1 + 2*3)*2 = 26. Each word in the set should be scored in this manner and the total score summed.\u003c/p\u003e\u003cp\u003eRelated problems:\u003c/p\u003e\u003cp\u003ePrevious problem: 3 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3048-scrabble-scores-3\"\u003eSingle-word multiplier scoring\u003c/a\u003e. Next problem: 5 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3050-scrabble-scores-5\"\u003eMultiplayer word-set scoring\u003c/a\u003e.\u003c/p\u003e","function_template":"function [score] = scrabble_scores_4_rev(words,mult)\r\n\r\nscore = 0;\r\n\r\nend\r\n","test_suite":"%\r\nwords = {'hello','there','fellow','matlab','users'};\r\nmult = {'D   d','D   d',' D   d',' D   d','D   d'};\r\nscore = 106;\r\nassert(isequal(scrabble_scores_4_rev(words,mult),score))\r\n\r\n%%\r\nwords = {'what','do','you','think','of','this','problem'};\r\nmult = {' D  ','  ',' D ',' D  t','  ',' D  ','t  D  t'};\r\nscore = 148;\r\nassert(isequal(scrabble_scores_4_rev(words,mult),score))\r\n\r\n%%\r\nwords = {'if','you','like','it','please','give','it','a','like'};\r\nmult = {' D','  Q',' D  ','  ',' D  t ',' D  ','t ',' ','D  t'};\r\nscore = 113;\r\nassert(isequal(scrabble_scores_4_rev(words,mult),score))\r\n\r\n%%\r\nwords = {'zither','quandry','flummox','wealthy','amalgam'};\r\nmult = {' D   D','q    D ',' D   D ',' D   D ',' D   D '};\r\nscore = 368;\r\nassert(isequal(scrabble_scores_4_rev(words,mult),score))\r\n\r\n%%\r\nwords = {'heterogeneous','homogenously','concatenate','thusly','hi'};\r\nmult = {'t   t   T   Q','   t   T   Q','t   t   T  ','t   t ','  '};\r\nscore = 690;\r\nassert(isequal(scrabble_scores_4_rev(words,mult),score))\r\n\r\n%%\r\nwords = {'perspicacious','yes','zero','quizzical','no'};\r\nmult = {'t   t   T   Q','   ','t   ','t   t  T ','  '};\r\nscore = 671;\r\nassert(isequal(scrabble_scores_4_rev(words,mult),score))\r\n\r\n%% pangram test to help ensure letters scores are correctly assigned\r\nwords = {'the','quick','brown','fox','jumps','over','a','lazy','dog'};\r\nmult = {'t  ',' t   ','T   Q','   ','t   q','t   ','t','  T ','  Q'};\r\nscore = 278;\r\nassert(isequal(scrabble_scores_4_rev(words,mult),score))\r\n\r\n%% anti-cheating case\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\twords = {'hello','there','fellow','matlab','users'};\r\n\t\tmult = {'D   d','D   d',' D   d',' D   d','D   d'};\r\n\t\tscore = 106;\r\n\tcase 2\r\n\t\twords = {'if','you','like','it','please','give','it','a','like'};\r\n\t\tmult = {' D','  Q',' D  ','  ',' D  t ',' D  ','t ',' ','D  t'};\r\n\t\tscore = 113;\r\n\tcase 3\r\n\t\twords = {'heterogeneous','homogenously','concatenate','thusly','hi'};\r\n\t\tmult = {'t   t   T   Q','   t   T   Q','t   t   T  ','t   t ','  '};\r\n\t\tscore = 690;\r\n\tcase 4\r\n\t\twords = {'the','quick','brown','fox','jumps','over','a','lazy','dog'};\r\n\t\tmult = {'t  ',' t   ','T   Q','   ','t   q','t   ','t','  T ','  Q'};\r\n\t\tscore = 278;\r\nend\r\nassert(isequal(scrabble_scores_4_rev(words,mult),score))\r\n\r\n%% anti-cheating case\r\nind = randi(4);\r\nswitch ind\r\n\tcase 1\r\n\t\twords = {'what','do','you','think','of','this','problem'};\r\n\t\tmult = {' D  ','  ',' D ',' D  t','  ',' D  ','t  D  t'};\r\n\t\tscore = 148;\r\n\tcase 2\r\n\t\twords = {'perspicacious','yes','zero','quizzical','no'};\r\n\t\tmult = {'t   t   T   Q','   ','t   ','t   t  T ','  '};\r\n\t\tscore = 671;\r\n\tcase 3\r\n\t\twords = {'heterogeneous','homogenously','concatenate','thusly','hi'};\r\n\t\tmult = {'t   t   T   Q','   t   T   Q','t   t   T  ','t   t ','  '};\r\n\t\tscore = 690;\r\n\tcase 4\r\n\t\twords = {'zither','quandry','flummox','wealthy','amalgam'};\r\n\t\tmult = {' D   D','q    D ',' D   D ',' D   D ',' D   D '};\r\n\t\tscore = 368;\r\nend\r\nassert(isequal(scrabble_scores_4_rev(words,mult),score))","published":true,"deleted":false,"likes_count":1,"comments_count":4,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":34,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":40,"created_at":"2015-03-14T18:10:41.000Z","updated_at":"2026-04-02T20:12:58.000Z","published_at":"2015-03-14T18:10:41.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided here. (Use the English points distribution.)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor this problem, you will be provided with a set of words and the accompanying bonus squares that each word covered. The words will be provided in a cell array of strings. Write a function to calculate the total score for the set of words using the multipliers. The multipliers are as follows:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ * D: double word\\n * T: triple word\\n * Q: quadruple word\\n * d: double letter\\n * t: triple letter\\n * q: quadruple letter]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor those not familiar with quadruple word (Q) and quadruple letter (q), those were introduced in Super Scrabble. Also, remember that the d, t, and q multipliers take effect before the D, T, and Q multipliers. Also, multiple word multipliers can be present, having a cumulative effect (e.g., D \u0026amp; T =\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e *\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e6).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAs an example, if the word were 'matlab' and the multiplier string array was\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[[' ','D',' ',' ',' ','d'] (or ' D   d')]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ethen the score would be (3 + 1 + 1 + 1 + 1 + 2*3)*2 = 26. Each word in the set should be scored in this manner and the total score summed.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRelated problems:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePrevious problem: 3 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3048-scrabble-scores-3\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eSingle-word multiplier scoring\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Next problem: 5 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3050-scrabble-scores-5\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMultiplayer word-set scoring\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":3102,"title":"Rumis Scorer 4","description":"This problem is very similar to \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3101-rumis-scorer-3 Rumis Scorer 3\u003e. The main difference with this problem is that the board will not be completely filled in. In other words, the maximum heights designated by the stencil will not necessarily be occupied. Write a function to count the squares visible when viewed from above to determine who won each round (the stencil may or may not be helpful). See the test suite for additional examples (including test cases 1 and 2, which represent the completed boards shown below).\r\n\r\n\u003c\u003chttp://www.exodusbooks.com/Samples/Games/RumisPisacBig.jpg\u003e\u003e\r\n\r\n\u003c\u003chttp://cf.geekdo-images.com/images/pic1111321_md.jpg\u003e\u003e","description_html":"\u003cp\u003eThis problem is very similar to \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3101-rumis-scorer-3\"\u003eRumis Scorer 3\u003c/a\u003e. The main difference with this problem is that the board will not be completely filled in. In other words, the maximum heights designated by the stencil will not necessarily be occupied. Write a function to count the squares visible when viewed from above to determine who won each round (the stencil may or may not be helpful). See the test suite for additional examples (including test cases 1 and 2, which represent the completed boards shown below).\u003c/p\u003e\u003cimg src = \"http://www.exodusbooks.com/Samples/Games/RumisPisacBig.jpg\"\u003e\u003cimg src = \"http://cf.geekdo-images.com/images/pic1111321_md.jpg\"\u003e","function_template":"function [winner] = rumis_scorer4(board,stencil)\r\n\r\nwinner = '';\r\n\r\nend\r\n","test_suite":"%% first board shown above\r\nclear board stencil\r\nstencil = [\r\n\t1 1 1 1 1 1 1 1;\r\n\t2 2 2 2 2 2 2 2;\r\n\t0 3 3 3 3 3 3 0;\r\n\t0 4 4 4 4 4 4 0;\r\n\t0 0 5 5 5 5 0 0;\r\n\t0 0 6 6 6 6 0 0;\r\n\t0 0 0 7 7 0 0 0;\r\n\t0 0 0 8 8 0 0 0;\r\n\t];\r\nboard(:,:,1) = ['bbbbyyyy';'bbrryyyg';' bbrryy ';' bbryyg ';'  bbgg  ';'  bbbg  ';'   yy   ';'   yb   '];\r\nboard(:,:,2) = ['        ';'bbrryyyg';' brryyg ';' brrygg ';'  bbrg  ';'   bbg  ';'   by   ';'   yy   '];\r\nboard(:,:,3) = ['        ';'        ';' brry g ';' bbrygg ';'  brrg  ';'   brg  ';'   br   ';'   bb   '];\r\nboard(:,:,4) = ['        ';'        ';' b      ';' bb ygg ';'  bryg  ';'   rrg  ';'   rr   ';'   br   '];\r\nboard(:,:,5) = ['        ';'        ';'        ';'        ';'   ggg  ';'   ggy  ';'   gg   ';'   rr   '];\r\nboard(:,:,6) = ['        ';'        ';'        ';'        ';'        ';'   gyy  ';'   gr   ';'   gr   '];\r\nboard(:,:,7) = ['        ';'        ';'        ';'        ';'        ';'        ';'   gg   ';'   gr   '];\r\nboard(:,:,8) = ['        ';'        ';'        ';'        ';'        ';'        ';'        ';'    r   '];\r\n%yellow wins 12 to 11 (g,b) to 6 (r)\r\nassert(isequal(rumis_scorer4(board,stencil),'y'))\r\n\r\n%% second board shown above\r\nclear board stencil\r\nstencil = [\r\n\t2 2 2 2 2 2;\r\n\t3 3 3 3 3 3;\r\n\t4 4 4 4 4 4;\r\n\t5 5 5 5 5 5;\r\n\t5 5 5 5 5 5;\r\n\t5 5 5 5 5 5;\r\n\t5 5 5 5 5 5;\r\n\t4 4 4 4 4 4;\r\n\t3 3 3 3 3 3;\r\n\t2 2 2 2 2 2;\r\n\t];\r\nboard(:,:,1) = ['rrrrbb';'ggrbbb';'ggrrpb';'ggrpbb';'grrppb';'oorrpb';'ooppbb';'ooybbp';'ooyypp';'yyyypp'];\r\nboard(:,:,2) = ['grrr b';'ggrbpb';'ggrrpb';'rrrbpb';'grbbpp';'ooobpb';'ooyyyb';'oooyyb';'oooypp';'yyyypp'];\r\nboard(:,:,3) = ['      ';'ggrbbb';'ggrrpb';'rrrbbb';'grpbbp';'grppbb';'gyyypb';'ogoypb';'ooo pp';'      '];\r\nboard(:,:,4) = ['      ';'      ';'ggrrpb';'rrrbpb';'grpbpp';' rbbbb';' yyybb';'ogoypp';'      ';'      '];\r\nboard(:,:,5) = ['      ';'      ';'      ';'rrrbbb';' rpppp';' r  bb';' y y b';'      ';'      ';'      '];\r\n%blue wins 15 to 11 (r,p) to 9 (y,g) to 5 (o)\r\nassert(isequal(rumis_scorer4(board,stencil),'b'))\r\n\r\n%%\r\nclear board stencil\r\nstencil = [\r\n\t1 2 3 4 4 4 4 4;\r\n\t1 2 3 4 4 4 4 4;\r\n\t1 2 3 4 4 4 4 4;\r\n\t1 2 3 4 4 4 4 4;\r\n\t0 0 0 0 3 3 3 3;\r\n\t0 0 0 0 2 2 2 2;\r\n\t0 0 0 0 1 1 1 1;\r\n\t];\r\nboard(:,:,1) = ['rrbrrbbr';'rbrrbbrb';'bbrrbbrb';'rbrrbrbr';'    brbr';'    rrbr';'    bbbr'];\r\nboard(:,:,2) = ['  brbbrb';' rrbbbbr';' brbbrbr';' brbbrbr';'    rbrb';'    brb ';'        '];\r\nboard(:,:,3) = ['  brbbrr';'   bbbbr';'  rbbrbr';'   brrrr';'    bb r';'        ';'        '];\r\nboard(:,:,4) = ['   rbbr ';'   rbbbr';'   brrbr';'   rbrr ';'        ';'        ';'        '];\r\n%red wins 25 to 19\r\nassert(isequal(rumis_scorer4(board,stencil),'r'))\r\n\r\n%%\r\nclear board stencil\r\nstencil = [\r\n\t1 1 1 1 1 1 1 1;\r\n\t1 2 2 2 2 2 2 1;\r\n\t1 2 3 3 3 3 2 1;\r\n\t1 2 3 4 4 3 2 1;\r\n\t1 2 3 4 4 3 2 1;\r\n\t1 2 3 3 3 3 2 1;\r\n\t1 2 2 2 2 2 2 1;\r\n\t1 1 1 1 1 1 1 1;\r\n\t];\r\nboard(:,:,1) = ['yyyyybrr';'yyrrbbyr';'yryyyrrr';'yryyrrrr';'yyyrrrbb';'yrrrrbbb';'yyrrrgbb';'yyrrgggb'];\r\nboard(:,:,2) = ['        ';' r yb b ';'  yyybb ';'  rygrr ';' ryyggr ';' ggygrr ';' ggyggb ';'        '];\r\nboard(:,:,3) = ['        ';'        ';'  ggy   ';'  gb r  ';'  ggbr  ';'  ggrr  ';'        ';'        '];\r\nboard(:,:,4) = ['        ';'        ';'        ';'   b    ';'   b    ';'        ';'        ';'        '];\r\n%red wins 19 to 16 (y) to 15 (g) to 14 (b)\r\nassert(isequal(rumis_scorer4(board,stencil),'r'))\r\n\r\n%%\r\nclear board stencil\r\nstencil = [\r\n\t0 0 0 0 1 0 0 0 0;\r\n\t0 0 0 1 2 1 0 0 0;\r\n\t0 0 1 2 3 2 1 0 0;\r\n\t0 1 2 3 4 3 2 1 0;\r\n\t1 2 3 4 5 4 3 2 1;\r\n\t0 1 2 3 4 3 2 1 0;\r\n\t0 0 1 2 3 2 1 0 0;\r\n\t0 0 0 1 2 1 0 0 0;\r\n\t0 0 0 0 1 0 0 0 0;\r\n\t];\r\nboard(:,:,1) = ['    o    ';'   oob   ';'  oobbp  ';' obbbppp ';'obboopppo';' oobbbpp ';'  ooooo  ';'   opo   ';'    o    '];\r\nboard(:,:,2) = ['         ';'    o    ';'   bbb   ';'    bbp  ';'  obbppp ';'  obbbp  ';'   bbb   ';'         ';'         '];\r\nboard(:,:,3) = ['         ';'         ';'    b    ';'    bb   ';'  o bbp  ';'     b   ';'         ';'         ';'         '];\r\nboard(:,:,4) = ['         ';'         ';'         ';'    b    ';'    o    ';'         ';'         ';'         ';'         '];\r\nboard(:,:,5) = ['         ';'         ';'         ';'         ';'    o    ';'         ';'         ';'         ';'         '];\r\n%blue wins 17 to 16 (o) to 8 (p)\r\nassert(isequal(rumis_scorer4(board,stencil),'b'))\r\n\r\n%%\r\nclear board stencil\r\nstencil = [\r\n\t2 2 3 3 3 3 2 2;\r\n\t2 2 4 4 4 4 2 2;\r\n\t3 4 5 6 6 5 4 3;\r\n\t3 4 6 7 7 6 4 3;\r\n\t3 4 6 7 7 6 4 3;\r\n\t3 4 5 6 6 5 4 3;\r\n\t2 2 4 4 4 4 2 2;\r\n\t2 2 3 3 3 3 2 2;\r\n\t];\r\nboard(:,:,1) = ['rryyobpg';'ryyyobpg';'ryyoobbg';'rryoobbg';'ryyybbgg';'yyybbggg';'ybbbbggg';'yyyyyggg'];\r\nboard(:,:,2) = ['ryyooopp';'rrryyppp';'rryooogg';'rrrroobb';'ryyybggg';'rybbbbbg';'bgyyyggg';'byygyygg'];\r\nboard(:,:,3) = ['  yyoo  ';'  ryyp  ';'rrroobgg';'rrryobbb';'ryyyoppp';'rrrorybg';' gyybo  ';'  oyb   '];\r\nboard(:,:,4) = ['        ';'  yybp  ';' robop  ';'  gbboo ';' boybo  ';' rbggpp ';'  ybbo  ';'        '];\r\nboard(:,:,5) = ['        ';'        ';'   boo  ';'  ggbb  ';'  oyyy  ';'   ppp  ';'        ';'        '];\r\nboard(:,:,6) = ['        ';'        ';'   oo   ';'  g bb  ';'  ooyy  ';'    p   ';'        ';'        '];\r\nboard(:,:,7) = ['        ';'        ';'        ';'    o   ';'   oy   ';'        ';'        ';'        '];\r\n%orange wins 12 to 11 (y,p) to 10 (r,g,b)\r\nassert(isequal(rumis_scorer4(board,stencil),'o'))\r\n\r\n%% anti-cheating case\r\nind = randi(6);\r\nswitch ind\r\n\tcase 1\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t1 1 1 1 1 1 1 1;\r\n\t\t\t2 2 2 2 2 2 2 2;\r\n\t\t\t0 3 3 3 3 3 3 0;\r\n\t\t\t0 4 4 4 4 4 4 0;\r\n\t\t\t0 0 5 5 5 5 0 0;\r\n\t\t\t0 0 6 6 6 6 0 0;\r\n\t\t\t0 0 0 7 7 0 0 0;\r\n\t\t\t0 0 0 8 8 0 0 0;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['bbbbyyyy';'bbrryyyg';' bbrryy ';' bbryyg ';'  bbgg  ';'  bbbg  ';'   yy   ';'   yb   '];\r\n\t\tboard(:,:,2) = ['        ';'bbrryyyg';' brryyg ';' brrygg ';'  bbrg  ';'   bbg  ';'   by   ';'   yy   '];\r\n\t\tboard(:,:,3) = ['        ';'        ';' brry g ';' bbrygg ';'  brrg  ';'   brg  ';'   br   ';'   bb   '];\r\n\t\tboard(:,:,4) = ['        ';'        ';' b      ';' bb ygg ';'  bryg  ';'   rrg  ';'   rr   ';'   br   '];\r\n\t\tboard(:,:,5) = ['        ';'        ';'        ';'        ';'   ggg  ';'   ggy  ';'   gg   ';'   rr   '];\r\n\t\tboard(:,:,6) = ['        ';'        ';'        ';'        ';'        ';'   gyy  ';'   gr   ';'   gr   '];\r\n\t\tboard(:,:,7) = ['        ';'        ';'        ';'        ';'        ';'        ';'   gg   ';'   gr   '];\r\n\t\tboard(:,:,8) = ['        ';'        ';'        ';'        ';'        ';'        ';'        ';'    r   '];\r\n\t\tassert(isequal(rumis_scorer4(board,stencil),'y'))\r\n\tcase 2\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t2 2 2 2 2 2;\r\n\t\t\t3 3 3 3 3 3;\r\n\t\t\t4 4 4 4 4 4;\r\n\t\t\t5 5 5 5 5 5;\r\n\t\t\t5 5 5 5 5 5;\r\n\t\t\t5 5 5 5 5 5;\r\n\t\t\t5 5 5 5 5 5;\r\n\t\t\t4 4 4 4 4 4;\r\n\t\t\t3 3 3 3 3 3;\r\n\t\t\t2 2 2 2 2 2;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['rrrrbb';'ggrbbb';'ggrrpb';'ggrpbb';'grrppb';'oorrpb';'ooppbb';'ooybbp';'ooyypp';'yyyypp'];\r\n\t\tboard(:,:,2) = ['grrr b';'ggrbpb';'ggrrpb';'rrrbpb';'grbbpp';'ooobpb';'ooyyyb';'oooyyb';'oooypp';'yyyypp'];\r\n\t\tboard(:,:,3) = ['      ';'ggrbbb';'ggrrpb';'rrrbbb';'grpbbp';'grppbb';'gyyypb';'ogoypb';'ooo pp';'      '];\r\n\t\tboard(:,:,4) = ['      ';'      ';'ggrrpb';'rrrbpb';'grpbpp';' rbbbb';' yyybb';'ogoypp';'      ';'      '];\r\n\t\tboard(:,:,5) = ['      ';'      ';'      ';'rrrbbb';' rpppp';' r  bb';' y y b';'      ';'      ';'      '];\r\n\t\tassert(isequal(rumis_scorer4(board,stencil),'b'))\r\n\tcase 3\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t0 0 0 0 3 3 3 3;\r\n\t\t\t0 0 0 0 2 2 2 2;\r\n\t\t\t0 0 0 0 1 1 1 1;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['rrbrrbbr';'rbrrbbrb';'bbrrbbrb';'rbrrbrbr';'    brbr';'    rrbr';'    bbbr'];\r\n\t\tboard(:,:,2) = ['  brbbrb';' rrbbbbr';' brbbrbr';' brbbrbr';'    rbrb';'    brb ';'        '];\r\n\t\tboard(:,:,3) = ['  brbbrr';'   bbbbr';'  rbbrbr';'   brrrr';'    bb r';'        ';'        '];\r\n\t\tboard(:,:,4) = ['   rbbr ';'   rbbbr';'   brrbr';'   rbrr ';'        ';'        ';'        '];\r\n\t\tassert(isequal(rumis_scorer4(board,stencil),'r'))\r\n\tcase 4\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t1 1 1 1 1 1 1 1;\r\n\t\t\t1 2 2 2 2 2 2 1;\r\n\t\t\t1 2 3 3 3 3 2 1;\r\n\t\t\t1 2 3 4 4 3 2 1;\r\n\t\t\t1 2 3 4 4 3 2 1;\r\n\t\t\t1 2 3 3 3 3 2 1;\r\n\t\t\t1 2 2 2 2 2 2 1;\r\n\t\t\t1 1 1 1 1 1 1 1;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['yyyyybrr';'yyrrbbyr';'yryyyrrr';'yryyrrrr';'yyyrrrbb';'yrrrrbbb';'yyrrrgbb';'yyrrgggb'];\r\n\t\tboard(:,:,2) = ['        ';' r yb b ';'  yyybb ';'  rygrr ';' ryyggr ';' ggygrr ';' ggyggb ';'        '];\r\n\t\tboard(:,:,3) = ['        ';'        ';'  ggy   ';'  gb r  ';'  ggbr  ';'  ggrr  ';'        ';'        '];\r\n\t\tboard(:,:,4) = ['        ';'        ';'        ';'   b    ';'   b    ';'        ';'        ';'        '];\r\n\t\tassert(isequal(rumis_scorer4(board,stencil),'r'))\r\n\tcase 5\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t0 0 0 0 1 0 0 0 0;\r\n\t\t\t0 0 0 1 2 1 0 0 0;\r\n\t\t\t0 0 1 2 3 2 1 0 0;\r\n\t\t\t0 1 2 3 4 3 2 1 0;\r\n\t\t\t1 2 3 4 5 4 3 2 1;\r\n\t\t\t0 1 2 3 4 3 2 1 0;\r\n\t\t\t0 0 1 2 3 2 1 0 0;\r\n\t\t\t0 0 0 1 2 1 0 0 0;\r\n\t\t\t0 0 0 0 1 0 0 0 0;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['    o    ';'   oob   ';'  oobbp  ';' obbbppp ';'obboopppo';' oobbbpp ';'  ooooo  ';'   opo   ';'    o    '];\r\n\t\tboard(:,:,2) = ['         ';'    o    ';'   bbb   ';'    bbp  ';'  obbppp ';'  obbbp  ';'   bbb   ';'         ';'         '];\r\n\t\tboard(:,:,3) = ['         ';'         ';'    b    ';'    bb   ';'  o bbp  ';'     b   ';'         ';'         ';'         '];\r\n\t\tboard(:,:,4) = ['         ';'         ';'         ';'    b    ';'    o    ';'         ';'         ';'         ';'         '];\r\n\t\tboard(:,:,5) = ['         ';'         ';'         ';'         ';'    o    ';'         ';'         ';'         ';'         '];\r\n\t\tassert(isequal(rumis_scorer4(board,stencil),'b'))\r\n\tcase 6\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t2 2 3 3 3 3 2 2;\r\n\t\t\t2 2 4 4 4 4 2 2;\r\n\t\t\t3 4 5 6 6 5 4 3;\r\n\t\t\t3 4 6 7 7 6 4 3;\r\n\t\t\t3 4 6 7 7 6 4 3;\r\n\t\t\t3 4 5 6 6 5 4 3;\r\n\t\t\t2 2 4 4 4 4 2 2;\r\n\t\t\t2 2 3 3 3 3 2 2;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['rryyobpg';'ryyyobpg';'ryyoobbg';'rryoobbg';'ryyybbgg';'yyybbggg';'ybbbbggg';'yyyyyggg'];\r\n\t\tboard(:,:,2) = ['ryyooopp';'rrryyppp';'rryooogg';'rrrroobb';'ryyybggg';'rybbbbbg';'bgyyyggg';'byygyygg'];\r\n\t\tboard(:,:,3) = ['  yyoo  ';'  ryyp  ';'rrroobgg';'rrryobbb';'ryyyoppp';'rrrorybg';' gyybo  ';'  oyb   '];\r\n\t\tboard(:,:,4) = ['        ';'  yybp  ';' robop  ';'  gbboo ';' boybo  ';' rbggpp ';'  ybbo  ';'        '];\r\n\t\tboard(:,:,5) = ['        ';'        ';'   boo  ';'  ggbb  ';'  oyyy  ';'   ppp  ';'        ';'        '];\r\n\t\tboard(:,:,6) = ['        ';'        ';'   oo   ';'  g bb  ';'  ooyy  ';'    p   ';'        ';'        '];\r\n\t\tboard(:,:,7) = ['        ';'        ';'        ';'    o   ';'   oy   ';'        ';'        ';'        '];\r\n\t\tassert(isequal(rumis_scorer4(board,stencil),'o'))\r\nend\r\n\r\n%% anti-cheating case\r\nind = randi(6);\r\nswitch ind\r\n\tcase 1\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t1 1 1 1 1 1 1 1;\r\n\t\t\t2 2 2 2 2 2 2 2;\r\n\t\t\t0 3 3 3 3 3 3 0;\r\n\t\t\t0 4 4 4 4 4 4 0;\r\n\t\t\t0 0 5 5 5 5 0 0;\r\n\t\t\t0 0 6 6 6 6 0 0;\r\n\t\t\t0 0 0 7 7 0 0 0;\r\n\t\t\t0 0 0 8 8 0 0 0;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['bbbbyyyy';'bbrryyyg';' bbrryy ';' bbryyg ';'  bbgg  ';'  bbbg  ';'   yy   ';'   yb   '];\r\n\t\tboard(:,:,2) = ['        ';'bbrryyyg';' brryyg ';' brrygg ';'  bbrg  ';'   bbg  ';'   by   ';'   yy   '];\r\n\t\tboard(:,:,3) = ['        ';'        ';' brry g ';' bbrygg ';'  brrg  ';'   brg  ';'   br   ';'   bb   '];\r\n\t\tboard(:,:,4) = ['        ';'        ';' b      ';' bb ygg ';'  bryg  ';'   rrg  ';'   rr   ';'   br   '];\r\n\t\tboard(:,:,5) = ['        ';'        ';'        ';'        ';'   ggg  ';'   ggy  ';'   gg   ';'   rr   '];\r\n\t\tboard(:,:,6) = ['        ';'        ';'        ';'        ';'        ';'   gyy  ';'   gr   ';'   gr   '];\r\n\t\tboard(:,:,7) = ['        ';'        ';'        ';'        ';'        ';'        ';'   gg   ';'   gr   '];\r\n\t\tboard(:,:,8) = ['        ';'        ';'        ';'        ';'        ';'        ';'        ';'    r   '];\r\n\t\tassert(isequal(rumis_scorer4(board,stencil),'y'))\r\n\tcase 2\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t2 2 2 2 2 2;\r\n\t\t\t3 3 3 3 3 3;\r\n\t\t\t4 4 4 4 4 4;\r\n\t\t\t5 5 5 5 5 5;\r\n\t\t\t5 5 5 5 5 5;\r\n\t\t\t5 5 5 5 5 5;\r\n\t\t\t5 5 5 5 5 5;\r\n\t\t\t4 4 4 4 4 4;\r\n\t\t\t3 3 3 3 3 3;\r\n\t\t\t2 2 2 2 2 2;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['rrrrbb';'ggrbbb';'ggrrpb';'ggrpbb';'grrppb';'oorrpb';'ooppbb';'ooybbp';'ooyypp';'yyyypp'];\r\n\t\tboard(:,:,2) = ['grrr b';'ggrbpb';'ggrrpb';'rrrbpb';'grbbpp';'ooobpb';'ooyyyb';'oooyyb';'oooypp';'yyyypp'];\r\n\t\tboard(:,:,3) = ['      ';'ggrbbb';'ggrrpb';'rrrbbb';'grpbbp';'grppbb';'gyyypb';'ogoypb';'ooo pp';'      '];\r\n\t\tboard(:,:,4) = ['      ';'      ';'ggrrpb';'rrrbpb';'grpbpp';' rbbbb';' yyybb';'ogoypp';'      ';'      '];\r\n\t\tboard(:,:,5) = ['      ';'      ';'      ';'rrrbbb';' rpppp';' r  bb';' y y b';'      ';'      ';'      '];\r\n\t\tassert(isequal(rumis_scorer4(board,stencil),'b'))\r\n\tcase 3\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t1 2 3 4 4 4 4 4;\r\n\t\t\t0 0 0 0 3 3 3 3;\r\n\t\t\t0 0 0 0 2 2 2 2;\r\n\t\t\t0 0 0 0 1 1 1 1;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['rrbrrbbr';'rbrrbbrb';'bbrrbbrb';'rbrrbrbr';'    brbr';'    rrbr';'    bbbr'];\r\n\t\tboard(:,:,2) = ['  brbbrb';' rrbbbbr';' brbbrbr';' brbbrbr';'    rbrb';'    brb ';'        '];\r\n\t\tboard(:,:,3) = ['  brbbrr';'   bbbbr';'  rbbrbr';'   brrrr';'    bb r';'        ';'        '];\r\n\t\tboard(:,:,4) = ['   rbbr ';'   rbbbr';'   brrbr';'   rbrr ';'        ';'        ';'        '];\r\n\t\tassert(isequal(rumis_scorer4(board,stencil),'r'))\r\n\tcase 4\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t1 1 1 1 1 1 1 1;\r\n\t\t\t1 2 2 2 2 2 2 1;\r\n\t\t\t1 2 3 3 3 3 2 1;\r\n\t\t\t1 2 3 4 4 3 2 1;\r\n\t\t\t1 2 3 4 4 3 2 1;\r\n\t\t\t1 2 3 3 3 3 2 1;\r\n\t\t\t1 2 2 2 2 2 2 1;\r\n\t\t\t1 1 1 1 1 1 1 1;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['yyyyybrr';'yyrrbbyr';'yryyyrrr';'yryyrrrr';'yyyrrrbb';'yrrrrbbb';'yyrrrgbb';'yyrrgggb'];\r\n\t\tboard(:,:,2) = ['        ';' r yb b ';'  yyybb ';'  rygrr ';' ryyggr ';' ggygrr ';' ggyggb ';'        '];\r\n\t\tboard(:,:,3) = ['        ';'        ';'  ggy   ';'  gb r  ';'  ggbr  ';'  ggrr  ';'        ';'        '];\r\n\t\tboard(:,:,4) = ['        ';'        ';'        ';'   b    ';'   b    ';'        ';'        ';'        '];\r\n\t\tassert(isequal(rumis_scorer4(board,stencil),'r'))\r\n\tcase 5\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t0 0 0 0 1 0 0 0 0;\r\n\t\t\t0 0 0 1 2 1 0 0 0;\r\n\t\t\t0 0 1 2 3 2 1 0 0;\r\n\t\t\t0 1 2 3 4 3 2 1 0;\r\n\t\t\t1 2 3 4 5 4 3 2 1;\r\n\t\t\t0 1 2 3 4 3 2 1 0;\r\n\t\t\t0 0 1 2 3 2 1 0 0;\r\n\t\t\t0 0 0 1 2 1 0 0 0;\r\n\t\t\t0 0 0 0 1 0 0 0 0;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['    o    ';'   oob   ';'  oobbp  ';' obbbppp ';'obboopppo';' oobbbpp ';'  ooooo  ';'   opo   ';'    o    '];\r\n\t\tboard(:,:,2) = ['         ';'    o    ';'   bbb   ';'    bbp  ';'  obbppp ';'  obbbp  ';'   bbb   ';'         ';'         '];\r\n\t\tboard(:,:,3) = ['         ';'         ';'    b    ';'    bb   ';'  o bbp  ';'     b   ';'         ';'         ';'         '];\r\n\t\tboard(:,:,4) = ['         ';'         ';'         ';'    b    ';'    o    ';'         ';'         ';'         ';'         '];\r\n\t\tboard(:,:,5) = ['         ';'         ';'         ';'         ';'    o    ';'         ';'         ';'         ';'         '];\r\n\t\tassert(isequal(rumis_scorer4(board,stencil),'b'))\r\n\tcase 6\r\n\t\tclear board stencil\r\n\t\tstencil = [\r\n\t\t\t2 2 3 3 3 3 2 2;\r\n\t\t\t2 2 4 4 4 4 2 2;\r\n\t\t\t3 4 5 6 6 5 4 3;\r\n\t\t\t3 4 6 7 7 6 4 3;\r\n\t\t\t3 4 6 7 7 6 4 3;\r\n\t\t\t3 4 5 6 6 5 4 3;\r\n\t\t\t2 2 4 4 4 4 2 2;\r\n\t\t\t2 2 3 3 3 3 2 2;\r\n\t\t\t];\r\n\t\tboard(:,:,1) = ['rryyobpg';'ryyyobpg';'ryyoobbg';'rryoobbg';'ryyybbgg';'yyybbggg';'ybbbbggg';'yyyyyggg'];\r\n\t\tboard(:,:,2) = ['ryyooopp';'rrryyppp';'rryooogg';'rrrroobb';'ryyybggg';'rybbbbbg';'bgyyyggg';'byygyygg'];\r\n\t\tboard(:,:,3) = ['  yyoo  ';'  ryyp  ';'rrroobgg';'rrryobbb';'ryyyoppp';'rrrorybg';' gyybo  ';'  oyb   '];\r\n\t\tboard(:,:,4) = ['        ';'  yybp  ';' robop  ';'  gbboo ';' boybo  ';' rbggpp ';'  ybbo  ';'        '];\r\n\t\tboard(:,:,5) = ['        ';'        ';'   boo  ';'  ggbb  ';'  oyyy  ';'   ppp  ';'        ';'        '];\r\n\t\tboard(:,:,6) = ['        ';'        ';'   oo   ';'  g bb  ';'  ooyy  ';'    p   ';'        ';'        '];\r\n\t\tboard(:,:,7) = ['        ';'        ';'        ';'    o   ';'   oy   ';'        ';'        ';'        '];\r\n\t\tassert(isequal(rumis_scorer4(board,stencil),'o'))\r\nend\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":25,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2015-03-21T03:35:46.000Z","updated_at":"2025-11-03T11:20:28.000Z","published_at":"2015-03-21T03:35:45.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/media/image1.JPEG\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/media/image1.png\"}],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem is very similar to\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3101-rumis-scorer-3\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eRumis Scorer 3\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. The main difference with this problem is that the board will not be completely filled in. In other words, the maximum heights designated by the stencil will not necessarily be occupied. Write a function to count the squares visible when viewed from above to determine who won each round (the stencil may or may not be helpful). See the test suite for additional examples (including test cases 1 and 2, which represent the completed boards shown below).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"-1\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId2\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"},{\"partUri\":\"/media/image1.JPEG\",\"contentType\":\"image/JPEG\",\"content\":\"data:image/JPEG;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAIqAoEDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKhnuobdS0jhQPU1yGu/ELTdLUqsoeTsq8k0Budk8qRjLsAPeq/8AaVpu2+eufrXh2r+PdX1RiID9niPc8tWE2p6jkMLybd67qwliacWdlPA1pq9rep9LJKkgyjAj2p9eE6F4+1LSmVbwmaL+8Oo/CvU9D8XafrEKmOZdx7ZrSE4zV4nNUpzpu0lY6OikVlcZU5FLVkBRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABUN3L5Ns8noKmqlq3/ACDJv92gDw7xX4uv7/U7i1imMMEbbSVPLf4VzkMKOS4JLHqWOSaZqIJ1W8/66mo1LR8qa8mvOUpNXPp8DhacaUZpatF0RAClCjHNQpdjb8/GKhmvAvIPFYJNnVKNmW2VApyeagS6ls5RNaytE4/iBxn61nPfMzYQE+9IA8gy7HHpWsbxd7mU6Uais1c9k+H/AI1l1SU2dycyIB83Y16gOQDXzz8Ovk8TKBwNv9a+hV+4PpXqUZOUE2fN4qmqdaUI7IWiiitDnCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKpat/wAgyb/dq7VLVv8AkGTf7tAHzPf86vej/pqaQr8opNQP/E4vR/02NN38Yrxa6/eP1Pr8C/3EfRDbg7YSKypmYuq54HatG4lHl1lSSASA1dJGlZl6NFGKnJwKoxz88mrHmhhSlF3Jg1Y674dnPidf93+tfQy/cH0r53+HJB8Tqf8AZ/rX0Qv3B9K9Kh/DR8zjv94l/XQWiiitjkCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooqGe5it0LyOAB60ATVjeINTtrTTJvNkUfL61zHiH4gwWpa3sv3s3TC9vqa801bVL7VHZ72Usp6Rj7o/xrKpWjDfcTkkctqF+h1G7mAJV5CVPqKp/wBoeZ0q7fxrMdrKPqKxpbKSEkxnctcS5Ztt7s9rC46KjGHYsvcFlPeqsj9OaiWbAIYEH3qOVxwc1ooWOydZSV0ywsp3VN9q2Dms/wAznjmp4reSVvn+UGnKK6mUsVGmtWdBoOvtouqQ3qKzgcOF9K9/8N+PtM1qBNsyh8YIJ5FfP+mQwwghgDV8WcYkWa1laCXsyHFOFdR0toeFiK6qVXLufUEcySqGRgQfSn14HonxB1TQ5lg1ANNCOPMX+or1fQvGWnazCrRzKWPbNdUZqSuiE7nS0UiurjKnIpaoAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigCjqt+mnWbzOcADNeOa94n1DV5GCyNFbHoFPzMP6V6L8QHKeHZipwdpryQFfssYB52jNcONrypcqj1Im2loVAQowFwKinkOzireR3qvLCWX5cEVwc6ZgnqYsyljVR+BzzWlPHgnOaoSJ1wK2i7msZWKcsccwwyYPrVCXTiZMJLlc/lWk0bMPao9mDiuiMrbGyrzStcghsFTBHze9WhG24ZpYwV5Gc/SrKDdjjmok2ZyqN7li1T5T3NXkHy46Gq0IAQ4/KpmmVUznms7sxbLBTKjdz7mq6u1hP9ospmimHPyng/UVG1yzcDgVHvAjYnnimuZaoIt3PfvAWrzavocMs5HmFBux611tcB8K1/wCKchb1UGu/r1FsdIUUUUwCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKRmCjJOBWHq/iiw0qJjJMu4ds0AbbOqDLEAVCt9bM20Srn6155c6rrmvk+QDZWp/jkHzsPZf8aYdFZYgYL64S4XnzS2cn3HT8sV5dfOMJRnyOV35a2NI0pSVz00EEZBzS15xa+KdT0RxHqsPmQD/l4i5XHv6V2em69ZalErwzKc+9ehSrU60eem7ohprRmL8Q/wDkXJ/9w141C48pOe1eyfEIg+G5sH+A14rCcQp7iuHMFfl+ZnMtE54FJypytNVsDnpQG5zmvNSM2hkqpM+1l21UlsBglcEVbPzOT/k005Uk5rVNoztbYxntiGIxgUwQLu6VrviXqOagktnX5gM1sp9w5iiIQDhR2qVUC88YoLBM5P4VExLN/s1aTY7tkxlVELAAntUPmF1DN94jpSXB2wcDmoVbMa+taKKBIsZ4HtUczFIXbttpykBeaiuXb7LKfRapIrqe/fC9Nvhi2/65j+VdzXHfDmPZ4bgH+wK7GvQOgKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAprttQt6CnVFc/wDHtJ/umgDitY1bUdRuZLXT3WKNDtkmbnafQDuapWeh21vIJ5S1zc/89ZuSPoOg/CmaKxafU8nn7Wf/AEBa1x1NfDZxmOIlXnQ5rRXRfqddKmrJhtApCmad1OKCMYFeIpG5E0QcEEAj0NZM+gIshuNOlazn6/J9wn3X/DFbfSm4Jz2rooYmrQlzUnZicVJanBeKdW8Rtp7WE9qHVhjzo2yCP51xkepRK4hmUow45Fe0SojKQygj3FcnrfhG01LcyL5UnYqK92Gcqs1GuvmjCeEbV4s5UqAgYHINV3YqTUN7pOr6I7ZR5YQeD7VWg1KOcFZPkbHc13wipLmi7o4JwlB2ki4rtknNK0mR1qsWAPB/Wonkx3rRRuzJstBwCD1xVi7uvMtiVAUgc4rLEueQac837kiq9nqjNsqryCT1NKSCCemKjz8wOTRuzkDpXVY1FuB+561EoIQYolf5Cp6duaqTXix4VAXfpx2qknsBeV8KSxAA9ap3V2GhdYwWB4LU2G2nmfM7EA87Qalu4xHbKijALD+dUrJlRWp9MeAl2+HYB/siuprm/BS7fD8H+6K6Suw3CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKiuf+PaT/AHTUtRXP/HtJ/umgDznRP9dqf/X4f/QFrXU5asfRf9bqf/X4f/QFrXU881+c5r/vtT1O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\"},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAADAFBMVEV4eHiTk5P29vaBgYGcnJzAwMC3t7eKiorS0tLt7e3b29vk5OTJycn///9vb28AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD61b95AAAAyklEQVR42q2SSQ6FIAxAWzQxkcj976lEE5R+hojQOmw+Cxa8RwcoGnhf6oNDD0AvGL8j/E2wC+JiXwSaAKbbatGkLjBrX13szynmtPXnKc2eCRiMGQtXxrq2hmZRuuXx6SVdPlPpopeC387sFMMIwdsyAMFAEcHuptW5oIaKYgjHBBoZ512snMeJ8g7o0DmA5jwKXRdqy9W6gfMzhd7iMOySlxq0qn/z4leR43HNQ8WrLtYi1Dz+pnjsmt/8ZsulwLgQOOeC4EyQHH5z1GUZiLNTtwAAAABJRU5ErkJggg==\"}]}"},{"id":3097,"title":"Scrabble Scores - 12","description":"This problem builds directly off of Scrabble Scores - 10. Here, you are provided an existing word on the board from which you will play a word. The letter can reside anywhere (first to last) within the existing word and within the word that you are playing. Write a function to find the highest scoring word, provided any letter from the existing word that you are building off of and the letters on your tray.\r\nRather than having to test all the possible permutations against a dictionary, you will be provided a double-level cell array of strings containing all possible words based each starting letter in the existing word and the letters on your tray (a cell array for each letter in the existing word). (The word lists purposefully omit smaller words to prevent the test cases from being too large.) In addition to providing the highest score, also provide the word(s) that achieve that score in a cell array. See the test suite for examples. Due to high-scoring tiles, the highest score may not be achieved by the longest word(s).\r\nRelated problems:\r\nPrevious problem: 11 - Word score optimization (known letter \u0026 multipliers). Next problem: 13 - Word score optimization (first word \u0026 multipliers).","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 279px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 139.5px; transform-origin: 407px 139.5px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 84px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 42px; text-align: left; transform-origin: 384px 42px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 104px 8px; transform-origin: 104px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThis problem builds directly off of\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/3082-scrabble-scores-10\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eScrabble Scores - 10\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 209px 8px; transform-origin: 209px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e. Here, you are provided an existing word on the board from which you will play a word. The letter can reside anywhere (first to last) within the existing word and within the word that you are playing. Write a function to find the highest scoring word, provided any letter from the existing word that you are building off of and the letters on your tray.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 105px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 52.5px; text-align: left; transform-origin: 384px 52.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 382.5px 8px; transform-origin: 382.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eRather than having to test all the possible permutations against a dictionary, you will be provided a double-level cell array of strings containing all possible words based each starting letter in the existing word and the letters on your tray (a cell array for each letter in the existing word). (The word lists purposefully omit smaller words to prevent the test cases from being too large.) In addition to providing the highest score, also provide the word(s) that achieve that score in a cell array. See the test suite for examples. Due to high-scoring tiles, the highest score may not be achieved by the longest word(s).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 57.5px 8px; transform-origin: 57.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eRelated problems:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 71px 8px; transform-origin: 71px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003ePrevious problem: 11 -\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/3084-scrabble-scores-11\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eWord score optimization (known letter \u0026amp; multipliers)\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 61.5px 8px; transform-origin: 61.5px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e. Next problem: 13 -\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/3098-scrabble-scores-13\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eWord score optimization (first word \u0026amp; multipliers)\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 2px 8px; transform-origin: 2px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function [score,max_word] = scrabble_scores_12(words, first_word)\r\n\r\nscore = 0;\r\nmax_word = {''};\r\n\r\nend\r\n","test_suite":"%%\r\nfirst_word = 'start'; %the starting word; the new word must be played off of a letter in this word\r\ntray_letters = 'aethilm'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including each letter of the starting word combined with your tray letters\r\nclear words\r\nwords{1} = {'aisle','alist','almeh','almes','amies','email','emits','haems','haets','hails','hales','halms','halts','hames','haste','hates','heals','heats','heils','heist','helms','hemal','hilts','islet','istle','items','laith','lames','lathe','lathi','laths','leash','least','limas','limes','litas','lites','lithe','maile','mails','maist','males','malts','mates','maths','meals','meats','melts','metal','meths','metis','miles','milts','mites','saith','salmi','satem','selah','setal','shale','shalt','shame','sheal','shiel','slate','slime','smalt','smelt','smile','smite','smith','stale','steal','steam','stela','stile','stime','taels','tails','tales','tames','tamis','teals','teams','telia','tesla','thali','tiles','times','almehs','emails','halest','halite','hamlet','haslet','hiemal','lamest','lathes','lathis','latish','mailes','mashie','mesial','metals','misate','miseat','saithe','saltie','samiel','samite','samlet','sheila','shelta','smalti','stelai','tahsil','thalis','theism','atheism','halites','hamlets','heliast'};\r\nwords{2} = {'almeh','atilt','email','hemal','laith','lathe','lathi','latte','lithe','maile','matte','metal','telia','thali','theta','tilth','tithe','title','halite','hamlet','hiemal'};\r\nwords{3} = {'alate','almah','almeh','email','halma','hamal','hemal','laith','lamia','lathe','lathi','lithe','maile','metal','tamal','telia','thali','althea','haemal','halite','hamate','hamlet','hiatal','hiemal','lamiae','malate','maltha','meatal','tamale','hematal','thalami'};\r\nwords{4} = {'aimer','airth','alert','almeh','alter','amrit','ariel','armet','artel','earth','email','haler','harem','hater','heart','hemal','herma','hilar','ihram','irate','ither','laith','lamer','later','lathe','lathi','liter','lithe','litre','maile','mater','merit','metal','miler','mirth','miter','mitre','ramet','ramie','ratel','rathe','realm','relit','remit','retia','taler','tamer','telia','terai','thali','tharm','their','therm','thirl','tiler','timer','trail','trial','armlet','hailer','halier','halite','halter','hamlet','hermai','hermit','hiemal','imaret','lather','lither','mailer','matier','milter','mither','mitral','ramtil','remail','retail','retial','tailer','thairm','thaler','thiram','tramel','lathier','maltier','marlite','thermal'};\r\nwords{5} = {'almeh','atilt','email','hemal','laith','lathe','lathi','latte','lithe','maile','matte','metal','telia','thali','theta','tilth','tithe','title','halite','hamlet','hiemal'};\r\nmax_score_corr = 12;\r\nmax_word_corr = {'atheism','hamlets','hematal','thalami','thermal'};\r\n[max_score,max_word] = scrabble_scores_12(words,first_word);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n%%\r\nfirst_word = 'thinning'; %the starting word; the new word must be played off of a letter in this word\r\ntray_letters = 'eodnirl'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including each letter of the starting word combined with your tray letters\r\nclear words\r\nwords{1} = {'diner','doter','droit','drone','elint','eloin','enrol','ident','idler','indol','inert','inlet','inter','intro','irone','lento','lined','liner','lirot','liter','litre','loden','loner','nerol','niter','nitre','nitro','noted','noter','oiled','oiler','olden','older','oldie','olein','oriel','redon','relit','reoil','riled','ronde','teind','teloi','tenor','tilde','tiled','tiler','tined','tired','toile','toled','tondi','toned','toner','trend','tried','trine','triol','trode','trone','dentil','dinero','dotier','editor','entoil','indole','ironed','linted','linter','loiter','neroli','norite','orient','retold','rident','rioted','rodent','roiled','rondel','tinder','tirled','toiled','toiler','tonier','trined','triode','lentoid','retinol','tendril','trindle'};\r\nwords{2} = {'dhole','diner','drone','eloin','enrol','helio','heron','hider','hired','holed','honed','honer','horde','idler','indol','irone','lined','liner','loden','loner','nerol','oiled','oiler','olden','older','oldie','olein','oriel','redon','reoil','rhino','riled','ronde','dehorn','dinero','heroin','hinder','hoiden','holden','holder','holier','hondle','honied','horned','indole','ironed','neroli','roiled','rondel','hordein','inholder'};\r\nwords{3} = {'diner','drone','eloin','enrol','idler','indie','indol','indri','iodin','irone','lined','liner','loden','loner','nerol','oiled','oiler','olden','older','oldie','olein','oriel','redon','reoil','riled','ronde','dinero','indole','inlier','iodine','ironed','linier','neroli','oilier','roiled','rondel'};\r\nwords{4} = {'diner','donne','drone','eloin','enrol','idler','indol','inned','inner','irone','lined','linen','liner','loden','loner','nerol','niner','oiled','oiler','olden','older','oldie','olein','oriel','redon','renin','reoil','riled','ronde','ronin','dinero','dinner','endrin','indole','ironed','linden','neroli','online','roiled','rondel','ronnel'};\r\nwords{4} = {'diner','donne','drone','eloin','enrol','idler','indol','inned','inner','irone','lined','linen','liner','loden','loner','nerol','niner','oiled','oiler','olden','older','oldie','olein','oriel','redon','renin','reoil','riled','ronde','ronin','dinero','dinner','endrin','indole','ironed','linden','neroli','online','roiled','rondel','ronnel'};\r\nwords{3} = {'diner','drone','eloin','enrol','idler','indie','indol','indri','iodin','irone','lined','liner','loden','loner','nerol','oiled','oiler','olden','older','oldie','olein','oriel','redon','reoil','riled','ronde','dinero','indole','inlier','iodine','ironed','linier','neroli','oilier','roiled','rondel'};\r\nwords{4} = {'diner','donne','drone','eloin','enrol','idler','indol','inned','inner','irone','lined','linen','liner','loden','loner','nerol','niner','oiled','oiler','olden','older','oldie','olein','oriel','redon','renin','reoil','riled','ronde','ronin','dinero','dinner','endrin','indole','ironed','linden','neroli','online','roiled','rondel','ronnel'};\r\nwords{8} = {'deign','diner','dinge','dingo','dirge','dogie','doing','drone','eloin','enrol','gelid','genro','geoid','giron','glide','goner','gored','gride','grind','groin','idler','indol','ingle','irone','liger','lined','liner','lingo','loden','lodge','login','loner','longe','nerol','ogled','ogler','oiled','oiler','olden','older','oldie','olein','oriel','redon','reign','renig','reoil','ridge','riled','ronde','dinero','dinger','dingle','doling','dongle','eloign','engild','engird','eringo','gilder','girdle','girned','glider','golden','golder','ignore','indole','ironed','legion','linger','lodger','logier','longed','longer','neroli','reding','regild','region','ridgel','ringed','roiled','rondel','eroding','glenoid','gloried','godlier','groined','ignored','lording','negroid','redoing'};\r\nmax_score_corr = 12;\r\nmax_word_corr = {'inholder'};\r\n[max_score,max_word] = scrabble_scores_12(words,first_word);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n%%\r\nfirst_word = 'novels'; %the starting word; the new word must be played off of a letter in this word\r\ntray_letters = 'dmvxeao'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including each letter of the starting word combined with your tray letters\r\nclear words\r\nwords{1} = {'ad','ae','am','an','ax','da','de','do','ed','em','en','ex','ma','me','mo','na','ne','no','od','oe','om','on','ox','ado','and','ane','ave','avo','axe','dam','dan','den','dev','dex','doe','dom','don','emo','end','eon','mad','mae','man','max','med','men','moa','mod','mon','nae','nam','nav','nod','nom','oda','ode','oma','one','ova','van','vex','voe','vox','aeon','amen','axed','axon','dame','damn','dean','demo','deva','dome','dona','done','dove','exam','exon','made','mane','mano','mead','mean','mend','meno','moan','mode','move','moxa','name','nave','nema','node','noma','nome','nova','odea','omen','oven','oxen','vane','vena','vend','admen','amend','anode','axmen','axone','daven','demon','devon','doven','maned','maven','maxed','menad','monad','monde','moved','named','nomad','novae','vaned','venom','daemon','moaned'};\r\nwords{2} = {'ad','ae','am','ax','da','de','do','ed','em','ex','ma','me','mo','od','oe','om','ox','ado','ave','avo','axe','dam','dev','dex','doe','dom','emo','mad','mae','max','med','moa','mod','moo','oda','ode','oma','ova','oxo','vex','voe','vox','axed','dame','demo','deva','dome','doom','dove','exam','made','mead','mode','mood','move','moxa','odea','maxed','mooed','moved'};\r\nwords{3} = {'ad','ae','am','ax','da','de','do','ed','em','ex','ma','me','mo','od','oe','om','ox','ado','ave','avo','axe','dam','dev','dex','doe','dom','emo','mad','mae','max','med','moa','mod','oda','ode','oma','ova','vav','vex','voe','vox','axed','dame','demo','deva','dome','dove','exam','made','mead','mode','move','moxa','odea','maxed','moved'};\r\nwords{4} = {'ad','ae','am','ax','da','de','do','ed','em','ex','ma','me','mo','od','oe','om','ox','ado','ave','avo','axe','dam','dee','dev','dex','doe','dom','eme','emo','eve','mad','mae','max','med','moa','mod','oda','ode','oma','ova','vee','vex','voe','vox','axed','dame','deem','deme','demo','deva','dome','dove','eave','exam','exed','made','mead','meed','mode','move','moxa','odea','adeem','deave','eaved','edema','evade','maxed','moved','vexed','oedema'};\r\nwords{5} = {'ad','ae','al','am','ax','da','de','do','ed','el','em','ex','la','lo','ma','me','mo','od','oe','om','ox','ado','ale','ave','avo','axe','dal','dam','del','dev','dex','doe','dol','dom','eld','elm','emo','lad','lam','lav','lax','lea','led','lev','lex','lox','mad','mae','max','med','mel','moa','mod','mol','oda','ode','old','ole','oma','ova','vex','voe','vox','alme','aloe','axed','axel','axle','dale','dame','deal','demo','deva','dole','dome','dove','exam','lade','lame','lave','lead','leva','levo','load','loam','lode','love','made','male','mead','meal','meld','mode','mola','mold','mole','move','moxa','odea','olde','olea','oval','vale','veal','vela','veld','vole','amole','axled','dolma','domal','laevo','lamed','laved','loved','loxed','maxed','medal','modal','model','moved','voled','voxel','loamed'};\r\nwords{6} = {'ad','ae','am','as','ax','da','de','do','ed','em','es','ex','ma','me','mo','od','oe','om','os','ox','so','ado','ads','ave','avo','axe','dam','das','dev','dex','doe','dom','dos','eds','emo','ems','mad','mae','mas','max','med','moa','mod','mos','oda','ode','ods','oes','oma','oms','ose','ova','sad','sae','sax','sea','sev','sex','sod','som','sox','vas','vex','voe','vox','ados','aves','avos','axed','axes','dame','dams','demo','deva','devs','does','dome','doms','dosa','dose','dove','emos','exam','made','mads','maes','mead','meds','mesa','moas','mode','mods','move','moxa','odas','odea','odes','omas','oxes','sade','same','save','seam','soda','soma','some','vase','voes','dames','demos','devas','domes','doves','exams','maxed','maxes','meads','modes','moved','moves','moxas','oaves','saved','soave','vadose','vamose','vamosed'};\r\nmax_score_corr = 16;\r\nmax_word_corr = {'vexed'};\r\n[max_score,max_word] = scrabble_scores_12(words,first_word);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n%%\r\nfirst_word = 'zoologist'; %the starting word; the new word must be played off of a letter in this word\r\ntray_letters = 'aehcmdi'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including each letter of the starting word combined with your tray letters\r\nclear words\r\nwords{1} = {'aced','ache','acid','acme','adze','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','cazh','cedi','chad','chai','cham','chem','chez','chia','chid','dace','dame','daze','dice','dime','each','emic','hade','haed','haem','hame','haze','head','hide','hied','iced','idea','idem','mace','mach','made','maid','maze','mead','mech','mica','mice','zeda','ached','aimed','amice','amide','azide','chide','chime','demic','hazed','hemic','maced','mache','maize','mazed','media','medic','miche','chimed','haemic','miched','zaideh'};\r\nwords{2} = {'aced','ache','acid','acme','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','camo','cedi','chad','chai','cham','chao','chem','chia','chid','ciao','coda','code','coed','coma','come','dace','dame','deco','demo','dice','dime','dome','each','echo','emic','hade','haed','haem','hame','head','hide','hied','hoed','homa','home','iced','idea','idem','mace','mach','made','maid','mead','mech','mica','mice','mode','modi','oche','odah','odea','odic','ohed','ohia','ached','aimed','amice','amide','amido','cameo','chemo','chiao','chide','chime','comae','demic','demoi','domic','hemic','homed','homie','maced','mache','macho','mahoe','media','medic','miche','mocha','mochi','ohmic','chimed','codeia','cohead','comade','haemic','hemoid','medico','miched','modica','haemoid'};\r\nwords{2} = {'aced','ache','acid','acme','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','camo','cedi','chad','chai','cham','chao','chem','chia','chid','ciao','coda','code','coed','coma','come','dace','dame','deco','demo','dice','dime','dome','each','echo','emic','hade','haed','haem','hame','head','hide','hied','hoed','homa','home','iced','idea','idem','mace','mach','made','maid','mead','mech','mica','mice','mode','modi','oche','odah','odea','odic','ohed','ohia','ached','aimed','amice','amide','amido','cameo','chemo','chiao','chide','chime','comae','demic','demoi','domic','hemic','homed','homie','maced','mache','macho','mahoe','media','medic','miche','mocha','mochi','ohmic','chimed','codeia','cohead','comade','haemic','hemoid','medico','miched','modica','haemoid'};\r\nwords{4} = {'aced','ache','acid','acme','ahed','ahem','aide','alec','alme','amid','amie','cade','cadi','caid','calm','came','cami','cedi','ceil','chad','chai','cham','chem','chia','chid','clad','clam','dace','dahl','dale','dame','deal','deil','deli','dhal','dial','dice','diel','dime','each','elhi','emic','hade','haed','haem','hail','hale','halm','hame','head','heal','heil','held','helm','hide','hied','hila','iced','idea','idem','idle','ilea','lace','lade','laic','laid','lame','lead','lech','lice','lich','lied','lima','lime','mace','mach','made','maid','mail','male','mead','meal','mech','meld','mica','mice','mild','mile','ached','ailed','aimed','alcid','almeh','amice','amide','camel','chela','chide','chiel','child','chile','chime','clade','claim','clime','decal','demic','email','haled','halid','hemal','hemic','ideal','ileac','laced','laich','lamed','leach','limed','maced','mache','macle','maile','malic','medal','media','medic','melic','miche','milch','calmed','chield','childe','chimed','chimla','haemic','hailed','halide','heliac','hiemal','lamedh','macled','mailed','malice','medial','miched','camelid','claimed','decimal','declaim','medical'};\r\nwords{2} = {'aced','ache','acid','acme','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','camo','cedi','chad','chai','cham','chao','chem','chia','chid','ciao','coda','code','coed','coma','come','dace','dame','deco','demo','dice','dime','dome','each','echo','emic','hade','haed','haem','hame','head','hide','hied','hoed','homa','home','iced','idea','idem','mace','mach','made','maid','mead','mech','mica','mice','mode','modi','oche','odah','odea','odic','ohed','ohia','ached','aimed','amice','amide','amido','cameo','chemo','chiao','chide','chime','comae','demic','demoi','domic','hemic','homed','homie','maced','mache','macho','mahoe','media','medic','miche','mocha','mochi','ohmic','chimed','codeia','cohead','comade','haemic','hemoid','medico','miched','modica','haemoid'};\r\nwords{6} = {'aced','ache','acid','acme','aged','ahed','ahem','aide','amid','amie','cade','cadi','cage','caid','came','cami','cedi','chad','chai','cham','chem','chia','chid','dace','dame','dice','dime','each','egad','emic','gach','gadi','gaed','game','gied','hade','haed','haem','hame','head','hide','hied','iced','idea','idem','mace','mach','made','mage','magi','maid','mead','mech','mega','mica','mice','ached','aimed','amice','amide','cadge','caged','chide','chime','demic','gamed','gamic','hemic','image','maced','mache','magic','media','medic','miche','midge','chimed','degami','gached','haemic','imaged','miched'};\r\nwords{7} = {'aced','ache','acid','acme','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','cedi','chad','chai','cham','chem','chia','chid','dace','dame','dice','dime','each','emic','hade','haed','haem','hame','head','hide','hied','iced','idea','idem','imid','mace','mach','made','maid','mead','mech','mica','mice','midi','ached','aimed','amice','amici','amide','chide','chime','demic','hemic','imide','maced','mache','media','medic','medii','miche','amidic','chimed','haemic','miched'};\r\nwords{8} = {'aced','aces','ache','acid','acme','ahed','ahem','ahis','aide','aids','aims','amid','amie','amis','asci','cade','cadi','cads','caid','came','cami','cams','case','cash','cedi','chad','chai','cham','chem','chia','chid','chis','dace','dahs','dais','dame','dams','dash','desi','dice','dies','dime','dims','disc','dish','each','edhs','emic','hade','haed','haem','haes','hame','hams','head','hems','hide','hied','hies','hims','iced','ices','ichs','idea','idem','ides','mace','mach','macs','made','mads','maes','maid','mash','mead','mech','meds','mesa','mesh','mica','mice','mics','mids','mise','sade','sadi','said','same','scad','scam','seam','semi','shad','sham','shea','shed','shim','sice','side','sidh','sima','ached','aches','acids','acmes','aides','aimed','amice','amide','amids','amies','asdic','ashed','aside','cades','cadis','caids','cames','camis','cased','cedis','chads','chais','chams','chase','chasm','chems','chias','chide','chime','daces','dames','dashi','deash','deism','demic','deshi','dices','dimes','disme','emics','hades','haems','hames','heads','hemic','hides','ideas','maced','maces','mache','machs','maids','meads','mechs','media','medic','mesic','micas','miche','sadhe','saice','shade','shame','shied','sidhe','amices','amides','camise','cashed','chaise','chased','chiasm','chides','chimed','chimes','emdash','haemic','maches','mashed','mashie','medias','medics','miched','miches','sachem','samech','schema','shamed','simcha','chamise','chasmed'};\r\nwords{9} = {'aced','ache','acid','acme','adit','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','cate','cedi','chad','chai','cham','chat','chem','chia','chid','chit','cite','dace','dame','date','dice','diet','dime','dita','dite','each','eath','echt','edit','emic','emit','etch','etic','hade','haed','haem','haet','hame','hate','head','heat','hide','hied','iced','idea','idem','itch','item','mace','mach','made','maid','mate','math','mead','meat','mech','meta','meth','mica','mice','mite','tace','tach','tame','team','tech','thae','them','tide','tied','time','ached','acted','admit','aimed','aitch','amice','amide','cadet','cheat','chide','chime','cited','death','demic','demit','dicta','ditch','edict','ethic','hated','hemic','maced','mache','match','mated','media','medic','miche','tache','tamed','teach','theca','timed','chimed','dacite','detach','haemic','itched','miched','hematic','matched'};\r\nmax_score_corr = 19;\r\nmax_word_corr = {'zaideh'};\r\n[max_score,max_word] = scrabble_scores_12(words,first_word);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n%% anti-cheating test case\r\nind = randi(2);\r\nswitch ind\r\n\tcase 1\r\n\t\tfirst_word = 'start'; %the starting word; the new word must be played off of a letter in this word\r\n\t\ttray_letters = 'aethilm'; %your tray letters; informational (not part of the problem)\r\n\t\t%all possible words, including each letter of the starting word combined with your tray letters\r\n\t\tclear words\r\n\t\twords{1} = {'aisle','alist','almeh','almes','amies','email','emits','haems','haets','hails','hales','halms','halts','hames','haste','hates','heals','heats','heils','heist','helms','hemal','hilts','islet','istle','items','laith','lames','lathe','lathi','laths','leash','least','limas','limes','litas','lites','lithe','maile','mails','maist','males','malts','mates','maths','meals','meats','melts','metal','meths','metis','miles','milts','mites','saith','salmi','satem','selah','setal','shale','shalt','shame','sheal','shiel','slate','slime','smalt','smelt','smile','smite','smith','stale','steal','steam','stela','stile','stime','taels','tails','tales','tames','tamis','teals','teams','telia','tesla','thali','tiles','times','almehs','emails','halest','halite','hamlet','haslet','hiemal','lamest','lathes','lathis','latish','mailes','mashie','mesial','metals','misate','miseat','saithe','saltie','samiel','samite','samlet','sheila','shelta','smalti','stelai','tahsil','thalis','theism','atheism','halites','hamlets','heliast'};\r\n\t\twords{2} = {'almeh','atilt','email','hemal','laith','lathe','lathi','latte','lithe','maile','matte','metal','telia','thali','theta','tilth','tithe','title','halite','hamlet','hiemal'};\r\n\t\twords{3} = {'alate','almah','almeh','email','halma','hamal','hemal','laith','lamia','lathe','lathi','lithe','maile','metal','tamal','telia','thali','althea','haemal','halite','hamate','hamlet','hiatal','hiemal','lamiae','malate','maltha','meatal','tamale','hematal','thalami'};\r\n\t\twords{4} = {'aimer','airth','alert','almeh','alter','amrit','ariel','armet','artel','earth','email','haler','harem','hater','heart','hemal','herma','hilar','ihram','irate','ither','laith','lamer','later','lathe','lathi','liter','lithe','litre','maile','mater','merit','metal','miler','mirth','miter','mitre','ramet','ramie','ratel','rathe','realm','relit','remit','retia','taler','tamer','telia','terai','thali','tharm','their','therm','thirl','tiler','timer','trail','trial','armlet','hailer','halier','halite','halter','hamlet','hermai','hermit','hiemal','imaret','lather','lither','mailer','matier','milter','mither','mitral','ramtil','remail','retail','retial','tailer','thairm','thaler','thiram','tramel','lathier','maltier','marlite','thermal'};\r\n\t\twords{5} = {'almeh','atilt','email','hemal','laith','lathe','lathi','latte','lithe','maile','matte','metal','telia','thali','theta','tilth','tithe','title','halite','hamlet','hiemal'};\r\n\t\tmax_score_corr = 12;\r\n\t\tmax_word_corr = {'atheism','hamlets','hematal','thalami','thermal'};\r\n\tcase 2\r\n\t\tfirst_word = 'thinning'; %the starting word; the new word must be played off of a letter in this word\r\n\t\ttray_letters = 'eodnirl'; %your tray letters; informational (not part of the problem)\r\n\t\t%all possible words, including each letter of the starting word combined with your tray letters\r\n\t\tclear words\r\n\t\twords{1} = {'diner','doter','droit','drone','elint','eloin','enrol','ident','idler','indol','inert','inlet','inter','intro','irone','lento','lined','liner','lirot','liter','litre','loden','loner','nerol','niter','nitre','nitro','noted','noter','oiled','oiler','olden','older','oldie','olein','oriel','redon','relit','reoil','riled','ronde','teind','teloi','tenor','tilde','tiled','tiler','tined','tired','toile','toled','tondi','toned','toner','trend','tried','trine','triol','trode','trone','dentil','dinero','dotier','editor','entoil','indole','ironed','linted','linter','loiter','neroli','norite','orient','retold','rident','rioted','rodent','roiled','rondel','tinder','tirled','toiled','toiler','tonier','trined','triode','lentoid','retinol','tendril','trindle'};\r\n\t\twords{2} = {'dhole','diner','drone','eloin','enrol','helio','heron','hider','hired','holed','honed','honer','horde','idler','indol','irone','lined','liner','loden','loner','nerol','oiled','oiler','olden','older','oldie','olein','oriel','redon','reoil','rhino','riled','ronde','dehorn','dinero','heroin','hinder','hoiden','holden','holder','holier','hondle','honied','horned','indole','ironed','neroli','roiled','rondel','hordein','inholder'};\r\n\t\twords{3} = {'diner','drone','eloin','enrol','idler','indie','indol','indri','iodin','irone','lined','liner','loden','loner','nerol','oiled','oiler','olden','older','oldie','olein','oriel','redon','reoil','riled','ronde','dinero','indole','inlier','iodine','ironed','linier','neroli','oilier','roiled','rondel'};\r\n\t\twords{4} = {'diner','donne','drone','eloin','enrol','idler','indol','inned','inner','irone','lined','linen','liner','loden','loner','nerol','niner','oiled','oiler','olden','older','oldie','olein','oriel','redon','renin','reoil','riled','ronde','ronin','dinero','dinner','endrin','indole','ironed','linden','neroli','online','roiled','rondel','ronnel'};\r\n\t\twords{4} = {'diner','donne','drone','eloin','enrol','idler','indol','inned','inner','irone','lined','linen','liner','loden','loner','nerol','niner','oiled','oiler','olden','older','oldie','olein','oriel','redon','renin','reoil','riled','ronde','ronin','dinero','dinner','endrin','indole','ironed','linden','neroli','online','roiled','rondel','ronnel'};\r\n\t\twords{3} = {'diner','drone','eloin','enrol','idler','indie','indol','indri','iodin','irone','lined','liner','loden','loner','nerol','oiled','oiler','olden','older','oldie','olein','oriel','redon','reoil','riled','ronde','dinero','indole','inlier','iodine','ironed','linier','neroli','oilier','roiled','rondel'};\r\n\t\twords{4} = {'diner','donne','drone','eloin','enrol','idler','indol','inned','inner','irone','lined','linen','liner','loden','loner','nerol','niner','oiled','oiler','olden','older','oldie','olein','oriel','redon','renin','reoil','riled','ronde','ronin','dinero','dinner','endrin','indole','ironed','linden','neroli','online','roiled','rondel','ronnel'};\r\n\t\twords{8} = {'deign','diner','dinge','dingo','dirge','dogie','doing','drone','eloin','enrol','gelid','genro','geoid','giron','glide','goner','gored','gride','grind','groin','idler','indol','ingle','irone','liger','lined','liner','lingo','loden','lodge','login','loner','longe','nerol','ogled','ogler','oiled','oiler','olden','older','oldie','olein','oriel','redon','reign','renig','reoil','ridge','riled','ronde','dinero','dinger','dingle','doling','dongle','eloign','engild','engird','eringo','gilder','girdle','girned','glider','golden','golder','ignore','indole','ironed','legion','linger','lodger','logier','longed','longer','neroli','reding','regild','region','ridgel','ringed','roiled','rondel','eroding','glenoid','gloried','godlier','groined','ignored','lording','negroid','redoing'};\r\n\t\tmax_score_corr = 12;\r\n\t\tmax_word_corr = {'inholder'};\r\nend\r\n[max_score,max_word] = scrabble_scores_12(words,first_word);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n%% anti-cheating test case\r\nind = randi(2);\r\nswitch ind\r\n\tcase 1\r\n\t\tfirst_word = 'novels'; %the starting word; the new word must be played off of a letter in this word\r\n\t\ttray_letters = 'dmvxeao'; %your tray letters; informational (not part of the problem)\r\n\t\t%all possible words, including each letter of the starting word combined with your tray letters\r\n\t\tclear words\r\n\t\twords{1} = {'ad','ae','am','an','ax','da','de','do','ed','em','en','ex','ma','me','mo','na','ne','no','od','oe','om','on','ox','ado','and','ane','ave','avo','axe','dam','dan','den','dev','dex','doe','dom','don','emo','end','eon','mad','mae','man','max','med','men','moa','mod','mon','nae','nam','nav','nod','nom','oda','ode','oma','one','ova','van','vex','voe','vox','aeon','amen','axed','axon','dame','damn','dean','demo','deva','dome','dona','done','dove','exam','exon','made','mane','mano','mead','mean','mend','meno','moan','mode','move','moxa','name','nave','nema','node','noma','nome','nova','odea','omen','oven','oxen','vane','vena','vend','admen','amend','anode','axmen','axone','daven','demon','devon','doven','maned','maven','maxed','menad','monad','monde','moved','named','nomad','novae','vaned','venom','daemon','moaned'};\r\n\t\twords{2} = {'ad','ae','am','ax','da','de','do','ed','em','ex','ma','me','mo','od','oe','om','ox','ado','ave','avo','axe','dam','dev','dex','doe','dom','emo','mad','mae','max','med','moa','mod','moo','oda','ode','oma','ova','oxo','vex','voe','vox','axed','dame','demo','deva','dome','doom','dove','exam','made','mead','mode','mood','move','moxa','odea','maxed','mooed','moved'};\r\n\t\twords{3} = {'ad','ae','am','ax','da','de','do','ed','em','ex','ma','me','mo','od','oe','om','ox','ado','ave','avo','axe','dam','dev','dex','doe','dom','emo','mad','mae','max','med','moa','mod','oda','ode','oma','ova','vav','vex','voe','vox','axed','dame','demo','deva','dome','dove','exam','made','mead','mode','move','moxa','odea','maxed','moved'};\r\n\t\twords{4} = {'ad','ae','am','ax','da','de','do','ed','em','ex','ma','me','mo','od','oe','om','ox','ado','ave','avo','axe','dam','dee','dev','dex','doe','dom','eme','emo','eve','mad','mae','max','med','moa','mod','oda','ode','oma','ova','vee','vex','voe','vox','axed','dame','deem','deme','demo','deva','dome','dove','eave','exam','exed','made','mead','meed','mode','move','moxa','odea','adeem','deave','eaved','edema','evade','maxed','moved','vexed','oedema'};\r\n\t\twords{5} = {'ad','ae','al','am','ax','da','de','do','ed','el','em','ex','la','lo','ma','me','mo','od','oe','om','ox','ado','ale','ave','avo','axe','dal','dam','del','dev','dex','doe','dol','dom','eld','elm','emo','lad','lam','lav','lax','lea','led','lev','lex','lox','mad','mae','max','med','mel','moa','mod','mol','oda','ode','old','ole','oma','ova','vex','voe','vox','alme','aloe','axed','axel','axle','dale','dame','deal','demo','deva','dole','dome','dove','exam','lade','lame','lave','lead','leva','levo','load','loam','lode','love','made','male','mead','meal','meld','mode','mola','mold','mole','move','moxa','odea','olde','olea','oval','vale','veal','vela','veld','vole','amole','axled','dolma','domal','laevo','lamed','laved','loved','loxed','maxed','medal','modal','model','moved','voled','voxel','loamed'};\r\n\t\twords{6} = {'ad','ae','am','as','ax','da','de','do','ed','em','es','ex','ma','me','mo','od','oe','om','os','ox','so','ado','ads','ave','avo','axe','dam','das','dev','dex','doe','dom','dos','eds','emo','ems','mad','mae','mas','max','med','moa','mod','mos','oda','ode','ods','oes','oma','oms','ose','ova','sad','sae','sax','sea','sev','sex','sod','som','sox','vas','vex','voe','vox','ados','aves','avos','axed','axes','dame','dams','demo','deva','devs','does','dome','doms','dosa','dose','dove','emos','exam','made','mads','maes','mead','meds','mesa','moas','mode','mods','move','moxa','odas','odea','odes','omas','oxes','sade','same','save','seam','soda','soma','some','vase','voes','dames','demos','devas','domes','doves','exams','maxed','maxes','meads','modes','moved','moves','moxas','oaves','saved','soave','vadose','vamose','vamosed'};\r\n\t\tmax_score_corr = 16;\r\n\t\tmax_word_corr = {'vexed'};\r\n\tcase 2\r\n\t\tfirst_word = 'thinning'; %the starting word; the new word must be played off of a letter in this word\r\n\t\ttray_letters = 'eodnirl'; %your tray letters; informational (not part of the problem)\r\n\t\t%all possible words, including each letter of the starting word combined with your tray letters\r\n\t\tclear words\r\n\t\twords{1} = {'diner','doter','droit','drone','elint','eloin','enrol','ident','idler','indol','inert','inlet','inter','intro','irone','lento','lined','liner','lirot','liter','litre','loden','loner','nerol','niter','nitre','nitro','noted','noter','oiled','oiler','olden','older','oldie','olein','oriel','redon','relit','reoil','riled','ronde','teind','teloi','tenor','tilde','tiled','tiler','tined','tired','toile','toled','tondi','toned','toner','trend','tried','trine','triol','trode','trone','dentil','dinero','dotier','editor','entoil','indole','ironed','linted','linter','loiter','neroli','norite','orient','retold','rident','rioted','rodent','roiled','rondel','tinder','tirled','toiled','toiler','tonier','trined','triode','lentoid','retinol','tendril','trindle'};\r\n\t\twords{2} = {'dhole','diner','drone','eloin','enrol','helio','heron','hider','hired','holed','honed','honer','horde','idler','indol','irone','lined','liner','loden','loner','nerol','oiled','oiler','olden','older','oldie','olein','oriel','redon','reoil','rhino','riled','ronde','dehorn','dinero','heroin','hinder','hoiden','holden','holder','holier','hondle','honied','horned','indole','ironed','neroli','roiled','rondel','hordein','inholder'};\r\n\t\twords{3} = {'diner','drone','eloin','enrol','idler','indie','indol','indri','iodin','irone','lined','liner','loden','loner','nerol','oiled','oiler','olden','older','oldie','olein','oriel','redon','reoil','riled','ronde','dinero','indole','inlier','iodine','ironed','linier','neroli','oilier','roiled','rondel'};\r\n\t\twords{4} = {'diner','donne','drone','eloin','enrol','idler','indol','inned','inner','irone','lined','linen','liner','loden','loner','nerol','niner','oiled','oiler','olden','older','oldie','olein','oriel','redon','renin','reoil','riled','ronde','ronin','dinero','dinner','endrin','indole','ironed','linden','neroli','online','roiled','rondel','ronnel'};\r\n\t\twords{4} = {'diner','donne','drone','eloin','enrol','idler','indol','inned','inner','irone','lined','linen','liner','loden','loner','nerol','niner','oiled','oiler','olden','older','oldie','olein','oriel','redon','renin','reoil','riled','ronde','ronin','dinero','dinner','endrin','indole','ironed','linden','neroli','online','roiled','rondel','ronnel'};\r\n\t\twords{3} = {'diner','drone','eloin','enrol','idler','indie','indol','indri','iodin','irone','lined','liner','loden','loner','nerol','oiled','oiler','olden','older','oldie','olein','oriel','redon','reoil','riled','ronde','dinero','indole','inlier','iodine','ironed','linier','neroli','oilier','roiled','rondel'};\r\n\t\twords{4} = {'diner','donne','drone','eloin','enrol','idler','indol','inned','inner','irone','lined','linen','liner','loden','loner','nerol','niner','oiled','oiler','olden','older','oldie','olein','oriel','redon','renin','reoil','riled','ronde','ronin','dinero','dinner','endrin','indole','ironed','linden','neroli','online','roiled','rondel','ronnel'};\r\n\t\twords{8} = {'deign','diner','dinge','dingo','dirge','dogie','doing','drone','eloin','enrol','gelid','genro','geoid','giron','glide','goner','gored','gride','grind','groin','idler','indol','ingle','irone','liger','lined','liner','lingo','loden','lodge','login','loner','longe','nerol','ogled','ogler','oiled','oiler','olden','older','oldie','olein','oriel','redon','reign','renig','reoil','ridge','riled','ronde','dinero','dinger','dingle','doling','dongle','eloign','engild','engird','eringo','gilder','girdle','girned','glider','golden','golder','ignore','indole','ironed','legion','linger','lodger','logier','longed','longer','neroli','reding','regild','region','ridgel','ringed','roiled','rondel','eroding','glenoid','gloried','godlier','groined','ignored','lording','negroid','redoing'};\r\n\t\tmax_score_corr = 12;\r\n\t\tmax_word_corr = {'inholder'};\r\nend\r\n[max_score,max_word] = scrabble_scores_12(words,first_word);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n%% anti-cheating test case\r\nind = randi(2);\r\nswitch ind\r\n\tcase 1\r\n\t\tfirst_word = 'start'; %the starting word; the new word must be played off of a letter in this word\r\n\t\ttray_letters = 'aethilm'; %your tray letters; informational (not part of the problem)\r\n\t\t%all possible words, including each letter of the starting word combined with your tray letters\r\n\t\tclear words\r\n\t\twords{1} = {'aisle','alist','almeh','almes','amies','email','emits','haems','haets','hails','hales','halms','halts','hames','haste','hates','heals','heats','heils','heist','helms','hemal','hilts','islet','istle','items','laith','lames','lathe','lathi','laths','leash','least','limas','limes','litas','lites','lithe','maile','mails','maist','males','malts','mates','maths','meals','meats','melts','metal','meths','metis','miles','milts','mites','saith','salmi','satem','selah','setal','shale','shalt','shame','sheal','shiel','slate','slime','smalt','smelt','smile','smite','smith','stale','steal','steam','stela','stile','stime','taels','tails','tales','tames','tamis','teals','teams','telia','tesla','thali','tiles','times','almehs','emails','halest','halite','hamlet','haslet','hiemal','lamest','lathes','lathis','latish','mailes','mashie','mesial','metals','misate','miseat','saithe','saltie','samiel','samite','samlet','sheila','shelta','smalti','stelai','tahsil','thalis','theism','atheism','halites','hamlets','heliast'};\r\n\t\twords{2} = {'almeh','atilt','email','hemal','laith','lathe','lathi','latte','lithe','maile','matte','metal','telia','thali','theta','tilth','tithe','title','halite','hamlet','hiemal'};\r\n\t\twords{3} = {'alate','almah','almeh','email','halma','hamal','hemal','laith','lamia','lathe','lathi','lithe','maile','metal','tamal','telia','thali','althea','haemal','halite','hamate','hamlet','hiatal','hiemal','lamiae','malate','maltha','meatal','tamale','hematal','thalami'};\r\n\t\twords{4} = {'aimer','airth','alert','almeh','alter','amrit','ariel','armet','artel','earth','email','haler','harem','hater','heart','hemal','herma','hilar','ihram','irate','ither','laith','lamer','later','lathe','lathi','liter','lithe','litre','maile','mater','merit','metal','miler','mirth','miter','mitre','ramet','ramie','ratel','rathe','realm','relit','remit','retia','taler','tamer','telia','terai','thali','tharm','their','therm','thirl','tiler','timer','trail','trial','armlet','hailer','halier','halite','halter','hamlet','hermai','hermit','hiemal','imaret','lather','lither','mailer','matier','milter','mither','mitral','ramtil','remail','retail','retial','tailer','thairm','thaler','thiram','tramel','lathier','maltier','marlite','thermal'};\r\n\t\twords{5} = {'almeh','atilt','email','hemal','laith','lathe','lathi','latte','lithe','maile','matte','metal','telia','thali','theta','tilth','tithe','title','halite','hamlet','hiemal'};\r\n\t\tmax_score_corr = 12;\r\n\t\tmax_word_corr = {'atheism','hamlets','hematal','thalami','thermal'};\r\n\tcase 2\r\n\t\tfirst_word = 'thinning'; %the starting word; the new word must be played off of a letter in this word\r\n\t\ttray_letters = 'eodnirl'; %your tray letters; informational (not part of the problem)\r\n\t\t%all possible words, including each letter of the starting word combined with your tray letters\r\n\t\tclear words\r\n\t\twords{1} = {'diner','doter','droit','drone','elint','eloin','enrol','ident','idler','indol','inert','inlet','inter','intro','irone','lento','lined','liner','lirot','liter','litre','loden','loner','nerol','niter','nitre','nitro','noted','noter','oiled','oiler','olden','older','oldie','olein','oriel','redon','relit','reoil','riled','ronde','teind','teloi','tenor','tilde','tiled','tiler','tined','tired','toile','toled','tondi','toned','toner','trend','tried','trine','triol','trode','trone','dentil','dinero','dotier','editor','entoil','indole','ironed','linted','linter','loiter','neroli','norite','orient','retold','rident','rioted','rodent','roiled','rondel','tinder','tirled','toiled','toiler','tonier','trined','triode','lentoid','retinol','tendril','trindle'};\r\n\t\twords{2} = {'dhole','diner','drone','eloin','enrol','helio','heron','hider','hired','holed','honed','honer','horde','idler','indol','irone','lined','liner','loden','loner','nerol','oiled','oiler','olden','older','oldie','olein','oriel','redon','reoil','rhino','riled','ronde','dehorn','dinero','heroin','hinder','hoiden','holden','holder','holier','hondle','honied','horned','indole','ironed','neroli','roiled','rondel','hordein','inholder'};\r\n\t\twords{3} = {'diner','drone','eloin','enrol','idler','indie','indol','indri','iodin','irone','lined','liner','loden','loner','nerol','oiled','oiler','olden','older','oldie','olein','oriel','redon','reoil','riled','ronde','dinero','indole','inlier','iodine','ironed','linier','neroli','oilier','roiled','rondel'};\r\n\t\twords{4} = {'diner','donne','drone','eloin','enrol','idler','indol','inned','inner','irone','lined','linen','liner','loden','loner','nerol','niner','oiled','oiler','olden','older','oldie','olein','oriel','redon','renin','reoil','riled','ronde','ronin','dinero','dinner','endrin','indole','ironed','linden','neroli','online','roiled','rondel','ronnel'};\r\n\t\twords{4} = {'diner','donne','drone','eloin','enrol','idler','indol','inned','inner','irone','lined','linen','liner','loden','loner','nerol','niner','oiled','oiler','olden','older','oldie','olein','oriel','redon','renin','reoil','riled','ronde','ronin','dinero','dinner','endrin','indole','ironed','linden','neroli','online','roiled','rondel','ronnel'};\r\n\t\twords{3} = {'diner','drone','eloin','enrol','idler','indie','indol','indri','iodin','irone','lined','liner','loden','loner','nerol','oiled','oiler','olden','older','oldie','olein','oriel','redon','reoil','riled','ronde','dinero','indole','inlier','iodine','ironed','linier','neroli','oilier','roiled','rondel'};\r\n\t\twords{4} = {'diner','donne','drone','eloin','enrol','idler','indol','inned','inner','irone','lined','linen','liner','loden','loner','nerol','niner','oiled','oiler','olden','older','oldie','olein','oriel','redon','renin','reoil','riled','ronde','ronin','dinero','dinner','endrin','indole','ironed','linden','neroli','online','roiled','rondel','ronnel'};\r\n\t\twords{8} = {'deign','diner','dinge','dingo','dirge','dogie','doing','drone','eloin','enrol','gelid','genro','geoid','giron','glide','goner','gored','gride','grind','groin','idler','indol','ingle','irone','liger','lined','liner','lingo','loden','lodge','login','loner','longe','nerol','ogled','ogler','oiled','oiler','olden','older','oldie','olein','oriel','redon','reign','renig','reoil','ridge','riled','ronde','dinero','dinger','dingle','doling','dongle','eloign','engild','engird','eringo','gilder','girdle','girned','glider','golden','golder','ignore','indole','ironed','legion','linger','lodger','logier','longed','longer','neroli','reding','regild','region','ridgel','ringed','roiled','rondel','eroding','glenoid','gloried','godlier','groined','ignored','lording','negroid','redoing'};\r\n\t\tmax_score_corr = 12;\r\n\t\tmax_word_corr = {'inholder'};\r\nend\r\n[max_score,max_word] = scrabble_scores_12(words,first_word);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":26769,"edited_by":223089,"edited_at":"2022-09-11T10:44:01.000Z","deleted_by":null,"deleted_at":null,"solvers_count":24,"test_suite_updated_at":"2022-09-11T10:44:01.000Z","rescore_all_solutions":false,"group_id":40,"created_at":"2015-03-20T01:12:13.000Z","updated_at":"2026-04-02T08:29:22.000Z","published_at":"2015-03-20T01:12:13.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem builds directly off of\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3082-scrabble-scores-10\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eScrabble Scores - 10\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Here, you are provided an existing word on the board from which you will play a word. The letter can reside anywhere (first to last) within the existing word and within the word that you are playing. Write a function to find the highest scoring word, provided any letter from the existing word that you are building off of and the letters on your tray.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRather than having to test all the possible permutations against a dictionary, you will be provided a double-level cell array of strings containing all possible words based each starting letter in the existing word and the letters on your tray (a cell array for each letter in the existing word). (The word lists purposefully omit smaller words to prevent the test cases from being too large.) In addition to providing the highest score, also provide the word(s) that achieve that score in a cell array. See the test suite for examples. Due to high-scoring tiles, the highest score may not be achieved by the longest word(s).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRelated problems:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePrevious problem: 11 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3084-scrabble-scores-11\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWord score optimization (known letter \u0026amp; multipliers)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Next problem: 13 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3098-scrabble-scores-13\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWord score optimization (first word \u0026amp; multipliers)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":3052,"title":"Scrabble Scores - 7","description":"This problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided \u003chttp://en.wikipedia.org/wiki/Scrabble_letter_distributions#English here\u003e. (Use the English points distribution.)\r\n\r\nFor this problem, you will be provided with a character matrix representing a completed game of Scrabble. You will also be provided with the number of players (two to four) and an order array denoting the order of word placement.\r\n\r\nThe order array is a one-dimensional cell array equal in size to the number of turns in the game. Within each cell element, the coordinates of the currently played word will map the letters placed for each move as row,column or word beginning and row,column of word ending. Since words can only be placed horizontally or vertically, one set of indices (row or column) will be static within each element. \r\n\r\nAs an example, suppose you are given the following board (this is test case 1):\r\n\r\n   cat  \r\n i  p   \r\n t  poet\r\n c  l   \r\nthere  \r\n\r\nThe accompanying order array will have a form like the following: \r\n\r\n  order(1) = {[2,2; 5,2]};\r\n  order(2) = {[5,1; 5,5]};\r\n  order(3) = {[1,5; 5,5]};\r\n  order(4) = {[3,5; 3,8]};\r\n  order(5) = {[1,4; 1,6]};\r\n\r\nsignifying that the first word is itch, the second word is there, and so on with apple, poet, and cat. For this case, there are two players, and we will assume (for all cases) that no one passes a turn. Therefore, words 1, 3, and 5 belong to player one, totaling 1+1+3+4, 1+3+3+1+1, and 3+1+1, which sums to 23. Words 2 and 4 belong to player one, totaling 1+4+1+1+1 and 3+1+1+1, which sums to 14. Therefore, the function should return [23 14].\r\n\r\nIf there had been three players, words 1 and 4 would belong to player one, words 2 and 5 to player two, and word 3 to player three.\r\n\r\nFinally, the order array will include all scored words for each turn. For instance, if a word starting with S was played off of an existing word, the order array for that turn will have two index sets, as both words would be scored. The order array element will have dimensions 2 x 2 x n where n is the number of words scored on the given turn.\r\n\r\nWrite a function to calculate and return the total score for each player for the provided Scrabble boards.\r\n\r\nRelated problems:\r\n\r\nPrevious problem: 6 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3051-scrabble-scores-6 Board scoring\u003e. Next problem: 8 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3060-scrabble-scores-8 Multiplayer multiplier board scoring\u003e.","description_html":"\u003cp\u003eThis problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided \u003ca href = \"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\"\u003ehere\u003c/a\u003e. (Use the English points distribution.)\u003c/p\u003e\u003cp\u003eFor this problem, you will be provided with a character matrix representing a completed game of Scrabble. You will also be provided with the number of players (two to four) and an order array denoting the order of word placement.\u003c/p\u003e\u003cp\u003eThe order array is a one-dimensional cell array equal in size to the number of turns in the game. Within each cell element, the coordinates of the currently played word will map the letters placed for each move as row,column or word beginning and row,column of word ending. Since words can only be placed horizontally or vertically, one set of indices (row or column) will be static within each element.\u003c/p\u003e\u003cp\u003eAs an example, suppose you are given the following board (this is test case 1):\u003c/p\u003e\u003cpre\u003e   cat  \r\n i  p   \r\n t  poet\r\n c  l   \r\nthere  \u003c/pre\u003e\u003cp\u003eThe accompanying order array will have a form like the following:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eorder(1) = {[2,2; 5,2]};\r\norder(2) = {[5,1; 5,5]};\r\norder(3) = {[1,5; 5,5]};\r\norder(4) = {[3,5; 3,8]};\r\norder(5) = {[1,4; 1,6]};\r\n\u003c/pre\u003e\u003cp\u003esignifying that the first word is itch, the second word is there, and so on with apple, poet, and cat. For this case, there are two players, and we will assume (for all cases) that no one passes a turn. Therefore, words 1, 3, and 5 belong to player one, totaling 1+1+3+4, 1+3+3+1+1, and 3+1+1, which sums to 23. Words 2 and 4 belong to player one, totaling 1+4+1+1+1 and 3+1+1+1, which sums to 14. Therefore, the function should return [23 14].\u003c/p\u003e\u003cp\u003eIf there had been three players, words 1 and 4 would belong to player one, words 2 and 5 to player two, and word 3 to player three.\u003c/p\u003e\u003cp\u003eFinally, the order array will include all scored words for each turn. For instance, if a word starting with S was played off of an existing word, the order array for that turn will have two index sets, as both words would be scored. The order array element will have dimensions 2 x 2 x n where n is the number of words scored on the given turn.\u003c/p\u003e\u003cp\u003eWrite a function to calculate and return the total score for each player for the provided Scrabble boards.\u003c/p\u003e\u003cp\u003eRelated problems:\u003c/p\u003e\u003cp\u003ePrevious problem: 6 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3051-scrabble-scores-6\"\u003eBoard scoring\u003c/a\u003e. Next problem: 8 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3060-scrabble-scores-8\"\u003eMultiplayer multiplier board scoring\u003c/a\u003e.\u003c/p\u003e","function_template":"function [score] = scrabble_scores_7(board,n_pl,order)\r\n\r\nscore = zeros(1,n_pl);\r\n\r\nend\r\n\r\n","test_suite":"%%\r\nboard = [\r\n\r\n'   cat  ';\r\n' i  p   ';\r\n' t  poet';\r\n' c  l   ';\r\n'there   ';\r\n];\r\nn_pl = 2;\r\norder = cell(1,5);\r\norder(1) = {[2,2; 5,2]};\r\norder(2) = {[5,1; 5,5]};\r\norder(3) = {[1,5; 5,5]};\r\norder(4) = {[3,5; 3,8]};\r\norder(5) = {[1,4; 1,6]};\r\nscore = [23 14];\r\nassert(isequal(scrabble_scores_7(board,n_pl,order),score))\r\n\r\n%%\r\nboard = [\r\n\r\n'stratagems';\r\n' h      a ';\r\n'hello   t ';\r\n' r      l ';\r\n'fellow  a ';\r\n'    a   b ';\r\n' users    ';\r\n];\r\nn_pl = 2;\r\norder = cell(1,7);\r\norder(1) = {[1,1; 1,10]};\r\norder(2) = {[1,9; 6,9]};\r\norder(3) = {[1,2; 5,2]};\r\norder(4) = {[5,1; 5,6]};\r\norder(5) = {[5,5; 7,5]};\r\norder(6) = {[3,1; 3,5]};\r\norder(7) = {[7,2; 7,6]};\r\nscore = [29 30];\r\nassert(isequal(scrabble_scores_7(board,n_pl,order),score))\r\n\r\n%%\r\nboard = [\r\n\r\n' what   y ';\r\n'    h  do ';\r\n'  this  um';\r\n' l  n    a';\r\n' of keen t';\r\n' o   e   l';\r\n' problem a';\r\n'      noob';\r\n];\r\nn_pl = 3;\r\norder = cell(1,12);\r\norder(1) = {[1,2; 1,5]};\r\norder(2) = {[1,5; 5,5]};\r\norder(3) = {[3,3; 3,7]};\r\norder(4) = {[5,5; 5,8]};\r\norder(5) = {[5,6; 7,6]};\r\norder(6) = {[7,2; 7,8]};\r\norder(7) = {[4,2; 7,2]};\r\nm_words(:,:,1) = [8,7; 8,10];\r\nm_words(:,:,2) = [7,7; 8,7];\r\nm_words(:,:,3) = [7,8; 8,8];\r\norder(8) = {m_words};\r\norder(9) = {[3,10; 8,10]};\r\nclear m_words\r\nm_words(:,:,1) = [1,9; 3,9];\r\nm_words(:,:,2) = [3,9; 3,10];\r\norder(10) = {m_words};\r\norder(11) = {[5,2; 5,3]};\r\norder(12) = {[2,8; 2,9]};\r\nscore = [34 32 33];\r\nassert(isequal(scrabble_scores_7(board,n_pl,order),score))\r\n\r\n%%\r\nboard = [\r\n\r\n' if  you  ';\r\n'  i  u    ';\r\n'  like    ';\r\n' met  g   ';\r\n' e    it l';\r\n' e    v  i';\r\n' please  k';\r\n'      node';\r\n];\r\nn_pl = 2;\r\norder = cell(1,12);\r\norder(1) = {[1,2; 1,3]};\r\norder(2) = {[1,3; 4,3]};\r\norder(3) = {[3,3; 3,6]};\r\norder(4) = {[1,6; 3,6]};\r\norder(5) = {[1,6; 1,8]};\r\nm_words(:,:,1) = [4,2; 4,4];\r\nm_words(:,:,2) = [3,4; 4,4];\r\norder(6) = {m_words};\r\norder(7) = {[4,2; 7,2]};\r\norder(8) = {[7,2; 7,7]};\r\norder(9) = {[4,7; 7,7]};\r\nm_words(:,:,1) = [8,7; 8,10];\r\nm_words(:,:,2) = [4,7; 8,7];\r\norder(10) = {m_words};\r\norder(11) = {[5,10; 8,10]};\r\norder(12) = {[5,7; 5,8]};\r\nscore = [43 44];\r\nassert(isequal(scrabble_scores_7(board,n_pl,order),score))\r\n\r\n%%\r\nboard = [\r\n\r\n'c    flummoxes zither';\r\n'al    o      e e    e';\r\n'ba  hunting  eerie  b';\r\n'ab  a g   e    o    e';\r\n'lo  n     m g       l';\r\n' r  g      responses ';\r\n'random      n    u u ';\r\n' t  v   c  below p r ';\r\n'convention  r    e f ';\r\n' r  r   n   a   areas';\r\n' y      v c t    i c ';\r\n'   o  philosophy o em';\r\n'travel  n n r    r  e';\r\n'   e    c t         e';\r\n' word   i a    writer';\r\n'   t    n c    o    l';\r\n'p fortnight   rock  y';\r\n'i  n            h    ';\r\n'novelty m concatenate';\r\n'c e  o  a    a  s   g';\r\n'heterogeneousness   g';\r\n];\r\nn_pl = 4;\r\norder = cell(1,41);\r\norder(1) = {[12,7; 12,16]};\r\norder(2) = {[5,13; 13,13]};\r\norder(3) = {[8,9; 17,9]};\r\norder(4) = {[11,11; 17,11]};\r\norder(5) = {[17,3; 17,11]};\r\norder(6) = {[8,12; 8,16]};\r\norder(7) = {[6,12; 6,20]};\r\norder(8) = {[6,18; 13,18]};\r\norder(9) = {[10,17; 10,21]};\r\norder(10) = {[9,1; 9,10]};\r\norder(11) = {[12,4; 19,4]};\r\norder(12) = {[2,2; 11,2]};\r\norder(13) = {[7,1; 7,6]};\r\norder(14) = {[13,1; 13,6]};\r\norder(15) = {[15,2; 15,5]};\r\norder(16) = {[19,1; 19,7]};\r\norder(17) = {[3,5; 10,5]};\r\norder(18) = {[3,5; 3,11]};\r\nm_words(:,:,1) = [1,1; 5,1];\r\nm_words(:,:,2) = [2,1; 2,2];\r\nm_words(:,:,3) = [3,1; 3,2];\r\nm_words(:,:,4) = [4,1; 4,2];\r\nm_words(:,:,5) = [5,1; 5,2];\r\norder(19) = {m_words};\r\norder(20) = {[17,1; 21,1]};\r\norder(21) = {[21,1; 21,17]};\r\norder(22) = {[6,20; 12,20]};\r\nclear m_words\r\nm_words(:,:,1) = [12,21; 17,21];\r\nm_words(:,:,2) = [12,20; 12,21];\r\norder(23) = {m_words};\r\norder(24) = {[15,16; 15,21]};\r\norder(25) = {[3,11; 5,11]};\r\norder(26) = {[17,17; 21,17]};\r\norder(27) = {[17,15; 17,18]};\r\norder(28) = {[19,11; 19,21]};\r\norder(29) = {[19,14; 21,14]};\r\norder(30) = {[1,7; 4,7]};\r\norder(31) = {[1,6; 1,14]};\r\norder(32) = {[19,21; 21,21]};\r\norder(33) = {[19,6; 21,6]};\r\norder(34) = {[1,14; 3,14]};\r\norder(35) = {[3,14; 3,18]};\r\norder(36) = {[1,16; 4,16]};\r\norder(37) = {[1,16; 1,21]};\r\norder(38) = {[1,21; 5,21]};\r\norder(39) = {[19,3; 21,3]};\r\norder(40) = {[19,9; 21,9]};\r\norder(41) = {[15,16; 17,16]};\r\n\r\nscore = [127 92 128 108];\r\nassert(isequal(scrabble_scores_7(board,n_pl,order),score))\r\n\r\n%% anti-cheating test case (random number of players from random board)\r\nind = randi(4);\r\nind2 = randi(3)+1;\r\nswitch ind\r\ncase 1\r\nboard = [\r\n\r\n'   cat  ';\r\n' i  p   ';\r\n' t  poet';\r\n' c  l   ';\r\n'there   ';\r\n];\r\norder = cell(1,5);\r\norder(1) = {[2,2; 5,2]};\r\norder(2) = {[5,1; 5,5]};\r\norder(3) = {[1,5; 5,5]};\r\norder(4) = {[3,5; 3,8]};\r\norder(5) = {[1,4; 1,6]};\r\nswitch ind2\r\n\tcase 2\r\n\t\tn_pl = 2;\r\n\t\tscore = [23 14];\r\n\tcase 3\r\n\t\tn_pl = 3;\r\n\t\tscore = [15 13 9];\r\n\tcase 4\r\n\t\tn_pl = 4;\r\n\t\tscore = [14 8 9 6];\r\nend\r\ncase 2\r\nboard = [\r\n'stratagems';\r\n' h      a ';\r\n'hello   t ';\r\n' r      l ';\r\n'fellow  a ';\r\n'    a   b ';\r\n' users    '];\r\norder = cell(1,7);\r\norder(1) = {[1,1; 1,10]};\r\norder(2) = {[1,9; 6,9]};\r\norder(3) = {[1,2; 5,2]};\r\norder(4) = {[5,1; 5,6]};\r\norder(5) = {[5,5; 7,5]};\r\norder(6) = {[3,1; 3,5]};\r\norder(7) = {[7,2; 7,6]};\r\nswitch ind2\r\n\tcase 2\r\n\t\tn_pl = 2;\r\n\t\tscore = [29 30];\r\n\tcase 3\r\n\t\tn_pl = 3;\r\n\t\tscore = [30 13 16];\r\n\tcase 4\r\n\t\tn_pl = 4;\r\n\t\tscore = [16 18 13 12];\r\nend\r\ncase 3\r\nboard = [\r\n\r\n' what   y ';\r\n'    h  do ';\r\n'  this  um';\r\n' l  n    a';\r\n' of keen t';\r\n' o   e   l';\r\n' problem a';\r\n'      noob';\r\n];\r\norder = cell(1,12);\r\norder(1) = {[1,2; 1,5]};\r\norder(2) = {[1,5; 5,5]};\r\norder(3) = {[3,3; 3,7]};\r\norder(4) = {[5,5; 5,8]};\r\norder(5) = {[5,6; 7,6]};\r\norder(6) = {[7,2; 7,8]};\r\norder(7) = {[4,2; 7,2]};\r\nm_words(:,:,1) = [8,7; 8,10];\r\nm_words(:,:,2) = [7,7; 8,7];\r\nm_words(:,:,3) = [7,8; 8,8];\r\norder(8) = {m_words};\r\norder(9) = {[3,10; 8,10]};\r\nclear m_words\r\nm_words(:,:,1) = [1,9; 3,9];\r\nm_words(:,:,2) = [3,9; 3,10];\r\norder(10) = {m_words};\r\norder(11) = {[5,2; 5,3]};\r\norder(12) = {[2,8; 2,9]};\r\nswitch ind2\r\n\tcase 2\r\n\t\tn_pl = 2;\r\n\t\tscore = [41 58];\r\n\tcase 3\r\n\t\tn_pl = 3;\r\n\t\tscore = [34 32 33];\r\n\tcase 4\r\n\t\tn_pl = 4;\r\n\t\tscore = [23 35 18 23];\r\nend\r\ncase 4\r\nboard = [\r\n\r\n' if  you  ';\r\n'  i  u    ';\r\n'  like    ';\r\n' met  g   ';\r\n' e    it l';\r\n' e    v  i';\r\n' please  k';\r\n'      node';\r\n];\r\norder = cell(1,12);\r\norder(1) = {[1,2; 1,3]};\r\norder(2) = {[1,3; 4,3]};\r\norder(3) = {[3,3; 3,6]};\r\norder(4) = {[1,6; 3,6]};\r\norder(5) = {[1,6; 1,8]};\r\nm_words(:,:,1) = [4,2; 4,4];\r\nm_words(:,:,2) = [3,4; 4,4];\r\norder(6) = {m_words};\r\norder(7) = {[4,2; 7,2]};\r\norder(8) = {[7,2; 7,7]};\r\norder(9) = {[4,7; 7,7]};\r\nm_words(:,:,1) = [8,7; 8,10];\r\nm_words(:,:,2) = [4,7; 8,7];\r\norder(10) = {m_words};\r\norder(11) = {[5,10; 8,10]};\r\norder(12) = {[5,7; 5,8]};\r\nswitch ind2\r\n\tcase 2\r\n\t\tn_pl = 2;\r\n\t\tscore = [43 44];\r\n\tcase 3\r\n\t\tn_pl = 3;\r\n\t\tscore = [33 29 25];\r\n\tcase 4\r\n\t\tn_pl = 4;\r\n\t\tscore = [19 28 24 16];\r\nend\r\nend\r\nassert(isequal(scrabble_scores_7(board,n_pl,order),score))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":5,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":29,"test_suite_updated_at":"2015-03-01T04:17:41.000Z","rescore_all_solutions":false,"group_id":40,"created_at":"2015-02-28T06:51:37.000Z","updated_at":"2026-04-02T20:16:13.000Z","published_at":"2015-03-01T04:17:41.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehere\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. (Use the English points distribution.)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor this problem, you will be provided with a character matrix representing a completed game of Scrabble. You will also be provided with the number of players (two to four) and an order array denoting the order of word placement.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe order array is a one-dimensional cell array equal in size to the number of turns in the game. Within each cell element, the coordinates of the currently played word will map the letters placed for each move as row,column or word beginning and row,column of word ending. Since words can only be placed horizontally or vertically, one set of indices (row or column) will be static within each element.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAs an example, suppose you are given the following board (this is test case 1):\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[   cat  \\n i  p   \\n t  poet\\n c  l   \\nthere]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe accompanying order array will have a form like the following:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[order(1) = {[2,2; 5,2]};\\norder(2) = {[5,1; 5,5]};\\norder(3) = {[1,5; 5,5]};\\norder(4) = {[3,5; 3,8]};\\norder(5) = {[1,4; 1,6]};]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003esignifying that the first word is itch, the second word is there, and so on with apple, poet, and cat. For this case, there are two players, and we will assume (for all cases) that no one passes a turn. Therefore, words 1, 3, and 5 belong to player one, totaling 1+1+3+4, 1+3+3+1+1, and 3+1+1, which sums to 23. Words 2 and 4 belong to player one, totaling 1+4+1+1+1 and 3+1+1+1, which sums to 14. Therefore, the function should return [23 14].\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf there had been three players, words 1 and 4 would belong to player one, words 2 and 5 to player two, and word 3 to player three.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFinally, the order array will include all scored words for each turn. For instance, if a word starting with S was played off of an existing word, the order array for that turn will have two index sets, as both words would be scored. The order array element will have dimensions 2 x 2 x n where n is the number of words scored on the given turn.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite a function to calculate and return the total score for each player for the provided Scrabble boards.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRelated problems:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePrevious problem: 6 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3051-scrabble-scores-6\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eBoard scoring\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Next problem: 8 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3060-scrabble-scores-8\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMultiplayer multiplier board scoring\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":3084,"title":"Scrabble Scores - 11","description":"This problem builds on the previous problem, wherein you were provided a letter of an existing word on the board and from which you played a word to find the highest scoring word. See the previous problem for more details.\r\n\r\nNow, you will be provided a multiplier character array that represents the fifteen possible squares that can be played on, ranging from seven above the existing letter (in which case the existing letter is the last letter in an eight-letter word) to seven below the existing letter (in which case the existing letter is the first letter in an eight-letter word) with the existing letter fixed in the 8th position. The multipliers are the same as in previous problems:\r\n\r\n * D: double word\r\n * T: triple word\r\n * Q: quadruple word\r\n * d: double letter\r\n * t: triple letter\r\n * q: quadruple letter\r\n\r\nThe center multiplier square will be left blank, since it's already covered by a tile. Write a routine to determine the highest scoring word(s) based on the multiplier squares.\r\n\r\nOnce again, you will be provided a cell array of strings containing all possible words based on the existing letter and the letters on your tray. In addition to providing the highest score, also provide the word(s) that achieve that score in a cell array. See the test suite for examples. Due to high-scoring tiles, the highest score may not be achieved by the longest word(s).\r\n\r\nRelated problems:\r\n\r\nPrevious problem: 10 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3082-scrabble-scores-10 Word score optimization (known letter)\u003e. Next problem: 12 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3097-scrabble-scores-12 Word score optimization (first word)\u003e.","description_html":"\u003cp\u003eThis problem builds on the previous problem, wherein you were provided a letter of an existing word on the board and from which you played a word to find the highest scoring word. See the previous problem for more details.\u003c/p\u003e\u003cp\u003eNow, you will be provided a multiplier character array that represents the fifteen possible squares that can be played on, ranging from seven above the existing letter (in which case the existing letter is the last letter in an eight-letter word) to seven below the existing letter (in which case the existing letter is the first letter in an eight-letter word) with the existing letter fixed in the 8th position. The multipliers are the same as in previous problems:\u003c/p\u003e\u003cpre\u003e * D: double word\r\n * T: triple word\r\n * Q: quadruple word\r\n * d: double letter\r\n * t: triple letter\r\n * q: quadruple letter\u003c/pre\u003e\u003cp\u003eThe center multiplier square will be left blank, since it's already covered by a tile. Write a routine to determine the highest scoring word(s) based on the multiplier squares.\u003c/p\u003e\u003cp\u003eOnce again, you will be provided a cell array of strings containing all possible words based on the existing letter and the letters on your tray. In addition to providing the highest score, also provide the word(s) that achieve that score in a cell array. See the test suite for examples. Due to high-scoring tiles, the highest score may not be achieved by the longest word(s).\u003c/p\u003e\u003cp\u003eRelated problems:\u003c/p\u003e\u003cp\u003ePrevious problem: 10 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3082-scrabble-scores-10\"\u003eWord score optimization (known letter)\u003c/a\u003e. Next problem: 12 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3097-scrabble-scores-12\"\u003eWord score optimization (first word)\u003c/a\u003e.\u003c/p\u003e","function_template":"function [score,max_word] = scrabble_scores_11(words,mult,existing_letter)\r\n\r\nscore = 0;\r\nmax_word = {''};\r\n\r\nend","test_suite":"%%\r\nexisting_letter = 's'; %the word must contain this letter, which is in an already played word\r\ntray_letters = 'aethilm'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including the first letter with your tray letters\r\nwords = {'ae','ah','ai','al','am','as','at','eh','el','em','es','et','ha','he','hi','hm','is','it','la','li','ma','me','mi','sh','si','ta','te','ti','ahi','ahs','ail','aim','ais','ait','ale','als','alt','ami','ash','ate','eat','elm','els','ems','est','eta','eth','hae','ham','has','hat','hem','hes','het','hie','him','his','hit','ism','its','lah','lam','las','lat','lea','lei','let','lie','lis','lit','mae','mas','mat','meh','mel','met','mil','mis','sae','sal','sat','sea','sei','sel','set','sha','she','sim','sit','tae','tam','tas','tea','tel','tes','the','tie','til','tis','ahem','ahis','ails','aims','aits','ales','alit','alme','alms','alts','amie','amis','ates','east','eath','eats','elhi','elms','emit','etas','eths','haem','haes','haet','hail','hale','halm','halt','hame','hams','hast','hate','hats','heal','heat','heil','helm','hems','hest','hets','hies','hila','hilt','hims','hist','hits','ilea','isle','item','lahs','lame','lams','lase','lash','last','late','lath','lati','lats','leas','leis','lest','lets','lias','lies','lima','lime','list','lite','lits','maes','mail','male','malt','mash','mast','mate','math','mats','meal','meat','mels','melt','mesa','mesh','meta','meth','mile','mils','milt','mise','mist','mite','sail','sale','salt','same','sate','sati','seal','seam','seat','semi','seta','sham','shea','shim','sial','silt','sima','site','sith','slam','slat','slim','slit','smit','stem','tael','tail','tale','tali','tame','tams','tase','teal','team','teas','tela','tels','thae','them','this','ties','tile','tils','time','aisle','alist','almeh','almes','amies','email','emits','haems','haets','hails','hales','halms','halts','hames','haste','hates','heals','heats','heils','heist','helms','hemal','hilts','islet','istle','items','laith','lames','lathe','lathi','laths','leash','least','limas','limes','litas','lites','lithe','maile','mails','maist','males','malts','mates','maths','meals','meats','melts','metal','meths','metis','miles','milts','mites','saith','salmi','satem','selah','setal','shale','shalt','shame','sheal','shiel','slate','slime','smalt','smelt','smile','smite','smith','stale','steal','steam','stela','stile','stime','taels','tails','tales','tames','tamis','teals','teams','telia','tesla','thali','tiles','times','almehs','emails','halest','halite','hamlet','haslet','hiemal','lamest','lathes','lathis','latish','mailes','mashie','mesial','metals','misate','miseat','saithe','saltie','samiel','samite','samlet','sheila','shelta','smalti','stelai','tahsil','thalis','theism','atheism','halites','hamlets','heliast'};\r\nmult = ' T   d   d   T '; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\nmax_score_corr = 39;\r\nmax_word_corr = {'hamlets'};\r\n[max_score,max_word] = scrabble_scores_11(words,mult,existing_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n\r\n%%\r\nind = randi(4);\r\nexisting_letter = 's'; %the word must contain this letter, which is in an already played word\r\ntray_letters = 'aethilm'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including the first letter with your tray letters\r\nwords = {'ae','ah','ai','al','am','as','at','eh','el','em','es','et','ha','he','hi','hm','is','it','la','li','ma','me','mi','sh','si','ta','te','ti','ahi','ahs','ail','aim','ais','ait','ale','als','alt','ami','ash','ate','eat','elm','els','ems','est','eta','eth','hae','ham','has','hat','hem','hes','het','hie','him','his','hit','ism','its','lah','lam','las','lat','lea','lei','let','lie','lis','lit','mae','mas','mat','meh','mel','met','mil','mis','sae','sal','sat','sea','sei','sel','set','sha','she','sim','sit','tae','tam','tas','tea','tel','tes','the','tie','til','tis','ahem','ahis','ails','aims','aits','ales','alit','alme','alms','alts','amie','amis','ates','east','eath','eats','elhi','elms','emit','etas','eths','haem','haes','haet','hail','hale','halm','halt','hame','hams','hast','hate','hats','heal','heat','heil','helm','hems','hest','hets','hies','hila','hilt','hims','hist','hits','ilea','isle','item','lahs','lame','lams','lase','lash','last','late','lath','lati','lats','leas','leis','lest','lets','lias','lies','lima','lime','list','lite','lits','maes','mail','male','malt','mash','mast','mate','math','mats','meal','meat','mels','melt','mesa','mesh','meta','meth','mile','mils','milt','mise','mist','mite','sail','sale','salt','same','sate','sati','seal','seam','seat','semi','seta','sham','shea','shim','sial','silt','sima','site','sith','slam','slat','slim','slit','smit','stem','tael','tail','tale','tali','tame','tams','tase','teal','team','teas','tela','tels','thae','them','this','ties','tile','tils','time','aisle','alist','almeh','almes','amies','email','emits','haems','haets','hails','hales','halms','halts','hames','haste','hates','heals','heats','heils','heist','helms','hemal','hilts','islet','istle','items','laith','lames','lathe','lathi','laths','leash','least','limas','limes','litas','lites','lithe','maile','mails','maist','males','malts','mates','maths','meals','meats','melts','metal','meths','metis','miles','milts','mites','saith','salmi','satem','selah','setal','shale','shalt','shame','sheal','shiel','slate','slime','smalt','smelt','smile','smite','smith','stale','steal','steam','stela','stile','stime','taels','tails','tales','tames','tamis','teals','teams','telia','tesla','thali','tiles','times','almehs','emails','halest','halite','hamlet','haslet','hiemal','lamest','lathes','lathis','latish','mailes','mashie','mesial','metals','misate','miseat','saithe','saltie','samiel','samite','samlet','sheila','shelta','smalti','stelai','tahsil','thalis','theism','atheism','halites','hamlets','heliast'};\r\nswitch ind\r\n\tcase 1\r\n\t\tmult = ' T   d   d   T '; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 39;\r\n\t\tmax_word_corr = {'hamlets'};\r\n\tcase 2\r\n\t\tmult = 'T  D  d d  D  T'; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 32;\r\n\t\tmax_word_corr = {'atheism'};\r\n\tcase 3\r\n\t\tmult = 'Q  t  T T  t  Q'; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 153;\r\n\t\tmax_word_corr = {'halest'};\r\n\tcase 4\r\n\t\tmult = 'Q t T d d T t Q'; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 60;\r\n\t\tmax_word_corr = {'heliast'};\r\nend\r\n[max_score,max_word] = scrabble_scores_11(words,mult,existing_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n\r\n%%\r\nind = randi(4);\r\nexisting_letter = 't'; %the word must contain this letter, which is in an already played word\r\ntray_letters = 'eodnirl'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including the first letter with your tray letters\r\nwords = {'de','do','ed','el','en','er','et','id','in','it','li','lo','ne','no','od','oe','oi','on','or','re','te','ti','to','del','den','die','din','dit','doe','dol','don','dor','dot','eld','end','eon','ern','ion','ire','led','lei','let','lid','lie','lin','lit','lot','net','nil','nit','nod','nor','not','ode','oil','old','ole','one','ore','ort','red','rei','ret','rid','rin','rod','roe','rot','ted','tel','ten','tie','til','tin','tod','toe','ton','tor','deil','deli','delt','deni','dent','diel','diet','dine','dino','dint','diol','dire','dirl','dirt','dite','doer','doit','dole','dolt','done','dore','dote','edit','enol','idle','idol','inro','into','ired','iron','lend','leno','lent','lido','lied','lien','lier','line','lino','lint','lion','lire','lite','lode','loid','loin','lone','lord','lore','lorn','loti','nerd','nide','nite','node','nodi','noel','noil','noir','nori','note','olde','orle','redo','rein','rend','reno','rent','ride','riel','rile','rind','riot','rite','rode','roil','role','rote','roti','rotl','tein','tend','tern','tide','tied','tier','tile','tine','tire','tirl','tiro','toed','toil','told','tole','tone','tore','tori','torn','trio','trod','diner','doter','droit','drone','elint','eloin','enrol','ident','idler','indol','inert','inlet','inter','intro','irone','lento','lined','liner','lirot','liter','litre','loden','loner','nerol','niter','nitre','nitro','noted','noter','oiled','oiler','olden','older','oldie','olein','oriel','redon','relit','reoil','riled','ronde','teind','teloi','tenor','tilde','tiled','tiler','tined','tired','toile','toled','tondi','toned','toner','trend','tried','trine','triol','trode','trone','dentil','dinero','dotier','editor','entoil','indole','ironed','linted','linter','loiter','neroli','norite','orient','retold','rident','rioted','rodent','roiled','rondel','tinder','tirled','toiled','toiler','tonier','trined','triode','lentoid','retinol','tendril','trindle'};\r\nswitch ind\r\n\tcase 1\r\n\t\tmult = ' T   d   d   T '; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 27;\r\n\t\tmax_word_corr = {'tendril','trindle'};\r\n\tcase 2\r\n\t\tmult = 'T  D  d d  D  T'; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 18;\r\n\t\tmax_word_corr = {'retinol','tendril','trindle'};\r\n\tcase 3\r\n\t\tmult = 'Q  t  T T  t  Q'; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 81;\r\n\t\tmax_word_corr = {'retinol'};\r\n\tcase 4\r\n\t\tmult = 'Q t T d d T t Q'; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 90;\r\n\t\tmax_word_corr = {'lentoid'};\r\nend\r\n[max_score,max_word] = scrabble_scores_11(words,mult,existing_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n\r\n%% anti-cheating test case 3\r\nind = randi(4);\r\nexisting_letter = 'n'; %the word must contain this letter, which is in an already played word\r\ntray_letters = 'dmvxeao'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including the first letter with your tray letters\r\nwords = {'ad','ae','am','an','ax','da','de','do','ed','em','en','ex','ma','me','mo','na','ne','no','od','oe','om','on','ox','ado','and','ane','ave','avo','axe','dam','dan','den','dev','dex','doe','dom','don','emo','end','eon','mad','mae','man','max','med','men','moa','mod','mon','nae','nam','nav','nod','nom','oda','ode','oma','one','ova','van','vex','voe','vox','aeon','amen','axed','axon','dame','damn','dean','demo','deva','dome','dona','done','dove','exam','exon','made','mane','mano','mead','mean','mend','meno','moan','mode','move','moxa','name','nave','nema','node','noma','nome','nova','odea','omen','oven','oxen','vane','vena','vend','admen','amend','anode','axmen','axone','daven','demon','devon','doven','maned','maven','maxed','menad','monad','monde','moved','named','nomad','novae','vaned','venom','daemon','moaned'};\r\nswitch ind\r\n\tcase 1\r\n\t\tmult = ' T   d   d   T '; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 20;\r\n\t\tmax_word_corr = {'axone'};\r\n\tcase 2\r\n\t\tmult = 'T  D  d d  D  T'; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 30;\r\n\t\tmax_word_corr = {'axmen'};\r\n\tcase 3\r\n\t\tmult = 'Q  t  T T  t  Q'; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 108;\r\n\t\tmax_word_corr = {'axone'};\r\n\tcase 4\r\n\t\tmult = 'Q t T d d T t Q'; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 45;\r\n\t\tmax_word_corr = {'axmen'};\r\nend\r\n[max_score,max_word] = scrabble_scores_11(words,mult,existing_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n\r\n\r\n%% anti-cheating test case 4\r\nind = randi(4);\r\nexisting_letter = 'z'; %the word must contain this letter, which is in an already played word\r\ntray_letters = 'aehcmdi'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including the first letter with your tray letters\r\nwords = {'ad','ae','ah','ai','am','da','de','ed','eh','em','ha','he','hi','hm','id','ma','me','mi','za','ace','adz','ahi','aid','aim','ami','cad','cam','chi','dah','dam','die','dim','edh','had','hae','ham','hem','hic','hid','hie','him','ice','ich','mac','mad','mae','med','meh','mic','mid','zed','aced','ache','acid','acme','adze','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','cazh','cedi','chad','chai','cham','chem','chez','chia','chid','dace','dame','daze','dice','dime','each','emic','hade','haed','haem','hame','haze','head','hide','hied','iced','idea','idem','mace','mach','made','maid','maze','mead','mech','mica','mice','zeda','ached','aimed','amice','amide','azide','chide','chime','demic','hazed','hemic','maced','mache','maize','mazed','media','medic','miche','chimed','haemic','miched','zaideh'};\r\nswitch ind\r\n\tcase 1\r\n\t\tmult = ' T   d   d   T '; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 24;\r\n\t\tmax_word_corr = {'hazed'};\r\n\tcase 2\r\n\t\tmult = 'T  D  d d  D  T'; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 40;\r\n\t\tmax_word_corr = {'zaideh'};\r\n\tcase 3\r\n\t\tmult = 'Q  t  T T  t  Q'; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 162;\r\n\t\tmax_word_corr = {'cazh','hazed'};\r\n\tcase 4\r\n\t\tmult = 'Q t T d d T t Q'; %all possible multiplier squares, from seven above the first letter (meaning your word would end with the first letter) to seven below the first letter (meaning your word would start with the first letter)\r\n\t\tmax_score_corr = 84;\r\n\t\tmax_word_corr = {'zaideh'};\r\nend\r\n[max_score,max_word] = scrabble_scores_11(words,mult,existing_letter);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(max_word,max_word_corr))\r\n","published":true,"deleted":false,"likes_count":2,"comments_count":7,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":24,"test_suite_updated_at":"2015-03-17T13:10:14.000Z","rescore_all_solutions":false,"group_id":40,"created_at":"2015-03-15T00:22:34.000Z","updated_at":"2026-04-02T20:21:03.000Z","published_at":"2015-03-17T01:47:42.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem builds on the previous problem, wherein you were provided a letter of an existing word on the board and from which you played a word to find the highest scoring word. See the previous problem for more details.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eNow, you will be provided a multiplier character array that represents the fifteen possible squares that can be played on, ranging from seven above the existing letter (in which case the existing letter is the last letter in an eight-letter word) to seven below the existing letter (in which case the existing letter is the first letter in an eight-letter word) with the existing letter fixed in the 8th position. The multipliers are the same as in previous problems:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ * D: double word\\n * T: triple word\\n * Q: quadruple word\\n * d: double letter\\n * t: triple letter\\n * q: quadruple letter]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe center multiplier square will be left blank, since it's already covered by a tile. Write a routine to determine the highest scoring word(s) based on the multiplier squares.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eOnce again, you will be provided a cell array of strings containing all possible words based on the existing letter and the letters on your tray. In addition to providing the highest score, also provide the word(s) that achieve that score in a cell array. See the test suite for examples. Due to high-scoring tiles, the highest score may not be achieved by the longest word(s).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRelated problems:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePrevious problem: 10 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3082-scrabble-scores-10\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWord score optimization (known letter)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Next problem: 12 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3097-scrabble-scores-12\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWord score optimization (first word)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":3098,"title":"Scrabble Scores - 13","description":"This problem integrates components of \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3084-scrabble-scores-11 Scrabble Scores - 11\u003e and \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3097-scrabble-scores-12 Scrabble Scores - 12\u003e. Here, you are provided an existing word on the board from which you will play a word. The letter can reside anywhere (first to last) within the existing word and within the word that you are playing. In addition, multipliers from the board are provided. Write a function to find the highest scoring word, provided any letter from the existing word that you are building off of, the letters on your tray, and the multipliers (provided in specific locations; see below).\r\n\r\nRather than having to test all the possible permutations against a dictionary, you will be provided a double-level cell array of strings containing all possible words based each starting letter in the existing word and the letters on your tray (a cell array for each letter in the existing word). (The word lists purposefully omit smaller words to prevent the test cases from being too large.) In addition to providing the highest score, also provide the word(s) that achieve that score in a cell array. See the test suite for examples. Due to high-scoring tiles, the highest score may not be achieved by the longest word(s).\r\n\r\nYou will be provided a multiplier character array that represents the fifteen possible squares that can be played on for each letter in the existing word, ranging from seven above each existing letter (in which case the existing letter is the last letter in an eight-letter word) to seven below each existing letter (in which case the existing letter is the first letter in an eight-letter word) with the existing letter fixed in the 8th (column) position. The array will have the same number of rows as the length of the existing word (which is located along the middle of the array). The multipliers are the same as in previous problems:\r\n\r\n * D: double word\r\n * T: triple word\r\n * Q: quadruple word\r\n * d: double letter\r\n * t: triple letter\r\n * q: quadruple letter\r\n\r\nThe center multiplier square will be left blank, since it's already covered by a tile.\r\n\r\nRelated problems:\r\n\r\nPrevious problem: 12 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3097-scrabble-scores-12 Word score optimization (first word)\u003e.","description_html":"\u003cp\u003eThis problem integrates components of \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3084-scrabble-scores-11\"\u003eScrabble Scores - 11\u003c/a\u003e and \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3097-scrabble-scores-12\"\u003eScrabble Scores - 12\u003c/a\u003e. Here, you are provided an existing word on the board from which you will play a word. The letter can reside anywhere (first to last) within the existing word and within the word that you are playing. In addition, multipliers from the board are provided. Write a function to find the highest scoring word, provided any letter from the existing word that you are building off of, the letters on your tray, and the multipliers (provided in specific locations; see below).\u003c/p\u003e\u003cp\u003eRather than having to test all the possible permutations against a dictionary, you will be provided a double-level cell array of strings containing all possible words based each starting letter in the existing word and the letters on your tray (a cell array for each letter in the existing word). (The word lists purposefully omit smaller words to prevent the test cases from being too large.) In addition to providing the highest score, also provide the word(s) that achieve that score in a cell array. See the test suite for examples. Due to high-scoring tiles, the highest score may not be achieved by the longest word(s).\u003c/p\u003e\u003cp\u003eYou will be provided a multiplier character array that represents the fifteen possible squares that can be played on for each letter in the existing word, ranging from seven above each existing letter (in which case the existing letter is the last letter in an eight-letter word) to seven below each existing letter (in which case the existing letter is the first letter in an eight-letter word) with the existing letter fixed in the 8th (column) position. The array will have the same number of rows as the length of the existing word (which is located along the middle of the array). The multipliers are the same as in previous problems:\u003c/p\u003e\u003cpre\u003e * D: double word\r\n * T: triple word\r\n * Q: quadruple word\r\n * d: double letter\r\n * t: triple letter\r\n * q: quadruple letter\u003c/pre\u003e\u003cp\u003eThe center multiplier square will be left blank, since it's already covered by a tile.\u003c/p\u003e\u003cp\u003eRelated problems:\u003c/p\u003e\u003cp\u003ePrevious problem: 12 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3097-scrabble-scores-12\"\u003eWord score optimization (first word)\u003c/a\u003e.\u003c/p\u003e","function_template":"function [score,max_word] = scrabble_scores_13(words,mult,first_word)\r\n\r\nscore = 0;\r\nmax_word = {''};\r\n\r\nend","test_suite":"%%\r\nfirst_word = 'start'; %the starting word; the new word must be played off of a letter in this word\r\ntray_letters = 'aethilm'; %your tray letters; informational (not part of the problem)\r\nmult = [' T   d   d   T ';'  d   t t   d  ';' D   t   t   D ';'  d   t t   d  ';' T   d   d   T '];\r\n%all possible words, including each letter of the starting word combined with your tray letters\r\nclear words\r\nwords{1} = {'aisle','alist','almeh','almes','amies','email','emits','haems','haets','hails','hales','halms','halts','hames','haste','hates','heals','heats','heils','heist','helms','hemal','hilts','islet','istle','items','laith','lames','lathe','lathi','laths','leash','least','limas','limes','litas','lites','lithe','maile','mails','maist','males','malts','mates','maths','meals','meats','melts','metal','meths','metis','miles','milts','mites','saith','salmi','satem','selah','setal','shale','shalt','shame','sheal','shiel','slate','slime','smalt','smelt','smile','smite','smith','stale','steal','steam','stela','stile','stime','taels','tails','tales','tames','tamis','teals','teams','telia','tesla','thali','tiles','times','almehs','emails','halest','halite','hamlet','haslet','hiemal','lamest','lathes','lathis','latish','mailes','mashie','mesial','metals','misate','miseat','saithe','saltie','samiel','samite','samlet','sheila','shelta','smalti','stelai','tahsil','thalis','theism','atheism','halites','hamlets','heliast'};\r\nwords{2} = {'almeh','atilt','email','hemal','laith','lathe','lathi','latte','lithe','maile','matte','metal','telia','thali','theta','tilth','tithe','title','halite','hamlet','hiemal'};\r\nwords{3} = {'alate','almah','almeh','email','halma','hamal','hemal','laith','lamia','lathe','lathi','lithe','maile','metal','tamal','telia','thali','althea','haemal','halite','hamate','hamlet','hiatal','hiemal','lamiae','malate','maltha','meatal','tamale','hematal','thalami'};\r\nwords{4} = {'aimer','airth','alert','almeh','alter','amrit','ariel','armet','artel','earth','email','haler','harem','hater','heart','hemal','herma','hilar','ihram','irate','ither','laith','lamer','later','lathe','lathi','liter','lithe','litre','maile','mater','merit','metal','miler','mirth','miter','mitre','ramet','ramie','ratel','rathe','realm','relit','remit','retia','taler','tamer','telia','terai','thali','tharm','their','therm','thirl','tiler','timer','trail','trial','armlet','hailer','halier','halite','halter','hamlet','hermai','hermit','hiemal','imaret','lather','lither','mailer','matier','milter','mither','mitral','ramtil','remail','retail','retial','tailer','thairm','thaler','thiram','tramel','lathier','maltier','marlite','thermal'};\r\nwords{5} = {'almeh','atilt','email','hemal','laith','lathe','lathi','latte','lithe','maile','matte','metal','telia','thali','theta','tilth','tithe','title','halite','hamlet','hiemal'};\r\nmax_score_corr = 39;\r\nmax_word_corr = {'hamlets'};\r\n[max_score,max_word] = scrabble_scores_13(words,mult,first_word);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(sort(max_word),sort(max_word_corr)))\r\n\r\n%%\r\nfirst_word = 'start'; %the starting word; the new word must be played off of a letter in this word\r\ntray_letters = 'aethilm'; %your tray letters; informational (not part of the problem)\r\nmult = ['T   d     d   T';'   d       d   ';'  D   d d   D  ';'   d       d   ';'T   d     d   T'];\r\n%all possible words, including each letter of the starting word combined with your tray letters\r\nclear words\r\nwords{1} = {'aisle','alist','almeh','almes','amies','email','emits','haems','haets','hails','hales','halms','halts','hames','haste','hates','heals','heats','heils','heist','helms','hemal','hilts','islet','istle','items','laith','lames','lathe','lathi','laths','leash','least','limas','limes','litas','lites','lithe','maile','mails','maist','males','malts','mates','maths','meals','meats','melts','metal','meths','metis','miles','milts','mites','saith','salmi','satem','selah','setal','shale','shalt','shame','sheal','shiel','slate','slime','smalt','smelt','smile','smite','smith','stale','steal','steam','stela','stile','stime','taels','tails','tales','tames','tamis','teals','teams','telia','tesla','thali','tiles','times','almehs','emails','halest','halite','hamlet','haslet','hiemal','lamest','lathes','lathis','latish','mailes','mashie','mesial','metals','misate','miseat','saithe','saltie','samiel','samite','samlet','sheila','shelta','smalti','stelai','tahsil','thalis','theism','atheism','halites','hamlets','heliast'};\r\nwords{2} = {'almeh','atilt','email','hemal','laith','lathe','lathi','latte','lithe','maile','matte','metal','telia','thali','theta','tilth','tithe','title','halite','hamlet','hiemal'};\r\nwords{3} = {'alate','almah','almeh','email','halma','hamal','hemal','laith','lamia','lathe','lathi','lithe','maile','metal','tamal','telia','thali','althea','haemal','halite','hamate','hamlet','hiatal','hiemal','lamiae','malate','maltha','meatal','tamale','hematal','thalami'};\r\nwords{4} = {'aimer','airth','alert','almeh','alter','amrit','ariel','armet','artel','earth','email','haler','harem','hater','heart','hemal','herma','hilar','ihram','irate','ither','laith','lamer','later','lathe','lathi','liter','lithe','litre','maile','mater','merit','metal','miler','mirth','miter','mitre','ramet','ramie','ratel','rathe','realm','relit','remit','retia','taler','tamer','telia','terai','thali','tharm','their','therm','thirl','tiler','timer','trail','trial','armlet','hailer','halier','halite','halter','hamlet','hermai','hermit','hiemal','imaret','lather','lither','mailer','matier','milter','mither','mitral','ramtil','remail','retail','retial','tailer','thairm','thaler','thiram','tramel','lathier','maltier','marlite','thermal'};\r\nwords{5} = {'almeh','atilt','email','hemal','laith','lathe','lathi','latte','lithe','maile','matte','metal','telia','thali','theta','tilth','tithe','title','halite','hamlet','hiemal'};\r\nmax_score_corr = 30;\r\nmax_word_corr = {'maltha'};\r\n[max_score,max_word] = scrabble_scores_13(words,mult,first_word);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(sort(max_word),sort(max_word_corr)))\r\n\r\n%%\r\nfirst_word = 'start'; %the starting word; the new word must be played off of a letter in this word\r\ntray_letters = 'aethilm'; %your tray letters; informational (not part of the problem)\r\nmult = [' T  d t t d  T ';'D  t d   d t  D';' T d t   t d T ';'D  t d   d t  D';' T  d t t d  T '];\r\n%all possible words, including each letter of the starting word combined with your tray letters\r\nclear words\r\nwords{1} = {'aisle','alist','almeh','almes','amies','email','emits','haems','haets','hails','hales','halms','halts','hames','haste','hates','heals','heats','heils','heist','helms','hemal','hilts','islet','istle','items','laith','lames','lathe','lathi','laths','leash','least','limas','limes','litas','lites','lithe','maile','mails','maist','males','malts','mates','maths','meals','meats','melts','metal','meths','metis','miles','milts','mites','saith','salmi','satem','selah','setal','shale','shalt','shame','sheal','shiel','slate','slime','smalt','smelt','smile','smite','smith','stale','steal','steam','stela','stile','stime','taels','tails','tales','tames','tamis','teals','teams','telia','tesla','thali','tiles','times','almehs','emails','halest','halite','hamlet','haslet','hiemal','lamest','lathes','lathis','latish','mailes','mashie','mesial','metals','misate','miseat','saithe','saltie','samiel','samite','samlet','sheila','shelta','smalti','stelai','tahsil','thalis','theism','atheism','halites','hamlets','heliast'};\r\nwords{2} = {'almeh','atilt','email','hemal','laith','lathe','lathi','latte','lithe','maile','matte','metal','telia','thali','theta','tilth','tithe','title','halite','hamlet','hiemal'};\r\nwords{3} = {'alate','almah','almeh','email','halma','hamal','hemal','laith','lamia','lathe','lathi','lithe','maile','metal','tamal','telia','thali','althea','haemal','halite','hamate','hamlet','hiatal','hiemal','lamiae','malate','maltha','meatal','tamale','hematal','thalami'};\r\nwords{4} = {'aimer','airth','alert','almeh','alter','amrit','ariel','armet','artel','earth','email','haler','harem','hater','heart','hemal','herma','hilar','ihram','irate','ither','laith','lamer','later','lathe','lathi','liter','lithe','litre','maile','mater','merit','metal','miler','mirth','miter','mitre','ramet','ramie','ratel','rathe','realm','relit','remit','retia','taler','tamer','telia','terai','thali','tharm','their','therm','thirl','tiler','timer','trail','trial','armlet','hailer','halier','halite','halter','hamlet','hermai','hermit','hiemal','imaret','lather','lither','mailer','matier','milter','mither','mitral','ramtil','remail','retail','retial','tailer','thairm','thaler','thiram','tramel','lathier','maltier','marlite','thermal'};\r\nwords{5} = {'almeh','atilt','email','hemal','laith','lathe','lathi','latte','lithe','maile','matte','metal','telia','thali','theta','tilth','tithe','title','halite','hamlet','hiemal'};\r\nmax_score_corr = 45;\r\nmax_word_corr = {'hamlets'};\r\n[max_score,max_word] = scrabble_scores_13(words,mult,first_word);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(sort(max_word),sort(max_word_corr)))\r\n\r\n%%\r\nfirst_word = 'thinning'; %the starting word; the new word must be played off of a letter in this word\r\ntray_letters = 'eodnirl'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including each letter of the starting word combined with your tray letters\r\nclear words\r\nwords{1} = {'diner','doter','droit','drone','elint','eloin','enrol','ident','idler','indol','inert','inlet','inter','intro','irone','lento','lined','liner','lirot','liter','litre','loden','loner','nerol','niter','nitre','nitro','noted','noter','oiled','oiler','olden','older','oldie','olein','oriel','redon','relit','reoil','riled','ronde','teind','teloi','tenor','tilde','tiled','tiler','tined','tired','toile','toled','tondi','toned','toner','trend','tried','trine','triol','trode','trone','dentil','dinero','dotier','editor','entoil','indole','ironed','linted','linter','loiter','neroli','norite','orient','retold','rident','rioted','rodent','roiled','rondel','tinder','tirled','toiled','toiler','tonier','trined','triode','lentoid','retinol','tendril','trindle'};\r\nwords{2} = {'dhole','diner','drone','eloin','enrol','helio','heron','hider','hired','holed','honed','honer','horde','idler','indol','irone','lined','liner','loden','loner','nerol','oiled','oiler','olden','older','oldie','olein','oriel','redon','reoil','rhino','riled','ronde','dehorn','dinero','heroin','hinder','hoiden','holden','holder','holier','hondle','honied','horned','indole','ironed','neroli','roiled','rondel','hordein','inholder'};\r\nwords{3} = {'diner','drone','eloin','enrol','idler','indie','indol','indri','iodin','irone','lined','liner','loden','loner','nerol','oiled','oiler','olden','older','oldie','olein','oriel','redon','reoil','riled','ronde','dinero','indole','inlier','iodine','ironed','linier','neroli','oilier','roiled','rondel'};\r\nwords{4} = {'diner','donne','drone','eloin','enrol','idler','indol','inned','inner','irone','lined','linen','liner','loden','loner','nerol','niner','oiled','oiler','olden','older','oldie','olein','oriel','redon','renin','reoil','riled','ronde','ronin','dinero','dinner','endrin','indole','ironed','linden','neroli','online','roiled','rondel','ronnel'};\r\nwords{5} = {'diner','donne','drone','eloin','enrol','idler','indol','inned','inner','irone','lined','linen','liner','loden','loner','nerol','niner','oiled','oiler','olden','older','oldie','olein','oriel','redon','renin','reoil','riled','ronde','ronin','dinero','dinner','endrin','indole','ironed','linden','neroli','online','roiled','rondel','ronnel'};\r\nwords{6} = {'diner','drone','eloin','enrol','idler','indie','indol','indri','iodin','irone','lined','liner','loden','loner','nerol','oiled','oiler','olden','older','oldie','olein','oriel','redon','reoil','riled','ronde','dinero','indole','inlier','iodine','ironed','linier','neroli','oilier','roiled','rondel'};\r\nwords{7} = {'diner','donne','drone','eloin','enrol','idler','indol','inned','inner','irone','lined','linen','liner','loden','loner','nerol','niner','oiled','oiler','olden','older','oldie','olein','oriel','redon','renin','reoil','riled','ronde','ronin','dinero','dinner','endrin','indole','ironed','linden','neroli','online','roiled','rondel','ronnel'};\r\nwords{8} = {'deign','diner','dinge','dingo','dirge','dogie','doing','drone','eloin','enrol','gelid','genro','geoid','giron','glide','goner','gored','gride','grind','groin','idler','indol','ingle','irone','liger','lined','liner','lingo','loden','lodge','login','loner','longe','nerol','ogled','ogler','oiled','oiler','olden','older','oldie','olein','oriel','redon','reign','renig','reoil','ridge','riled','ronde','dinero','dinger','dingle','doling','dongle','eloign','engild','engird','eringo','gilder','girdle','girned','glider','golden','golder','ignore','indole','ironed','legion','linger','lodger','logier','longed','longer','neroli','reding','regild','region','ridgel','ringed','roiled','rondel','eroding','glenoid','gloried','godlier','groined','ignored','lording','negroid','redoing'};\r\nind = randi(3);\r\nswitch ind\r\n\tcase 1\r\n\t\tmult = [' T   d   d   T ';'  d   t t   d  ';' D   t   t   D ';'   D       D   ';'   D       D   ';' D   t   t   D ';'  d   t t   d  ';' T   d   d   T '];\r\n\t\tmax_score_corr = 33;\r\n\t\tmax_word_corr = {'godlier'};\r\n\tcase 2\r\n\t\tmult = ['T   d     d   T';'   d       d   ';'  D   d d   D  ';'   d       d   ';'T   d     d   T';'   d       d   ';'  D   d d   D  ';'   d       d   '];\r\n\t\tmax_score_corr = 16;\r\n\t\tmax_word_corr = {'indole','iodine','ironed','endrin','linden'};\r\n\tcase 3\r\n\t\tmult = ['T   d     d   T';' T  d t t d  T ';'D  t d   d t  D';' T d t   t d T ';'  T   d d   T  ';' T d t   t d T ';'D  t d   d t  D';' T  d t t d  T '];\r\n\t\tmax_score_corr = 45;\r\n\t\tmax_word_corr = {'hordein'};\r\nend\r\n[max_score,max_word] = scrabble_scores_13(words,mult,first_word);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(sort(max_word),sort(max_word_corr)))\r\n\r\n%%\r\nfirst_word = 'novels'; %the starting word; the new word must be played off of a letter in this word\r\ntray_letters = 'dmvxeao'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including each letter of the starting word combined with your tray letters\r\nclear words\r\nwords{1} = {'ad','ae','am','an','ax','da','de','do','ed','em','en','ex','ma','me','mo','na','ne','no','od','oe','om','on','ox','ado','and','ane','ave','avo','axe','dam','dan','den','dev','dex','doe','dom','don','emo','end','eon','mad','mae','man','max','med','men','moa','mod','mon','nae','nam','nav','nod','nom','oda','ode','oma','one','ova','van','vex','voe','vox','aeon','amen','axed','axon','dame','damn','dean','demo','deva','dome','dona','done','dove','exam','exon','made','mane','mano','mead','mean','mend','meno','moan','mode','move','moxa','name','nave','nema','node','noma','nome','nova','odea','omen','oven','oxen','vane','vena','vend','admen','amend','anode','axmen','axone','daven','demon','devon','doven','maned','maven','maxed','menad','monad','monde','moved','named','nomad','novae','vaned','venom','daemon','moaned'};\r\nwords{2} = {'ad','ae','am','ax','da','de','do','ed','em','ex','ma','me','mo','od','oe','om','ox','ado','ave','avo','axe','dam','dev','dex','doe','dom','emo','mad','mae','max','med','moa','mod','moo','oda','ode','oma','ova','oxo','vex','voe','vox','axed','dame','demo','deva','dome','doom','dove','exam','made','mead','mode','mood','move','moxa','odea','maxed','mooed','moved'};\r\nwords{3} = {'ad','ae','am','ax','da','de','do','ed','em','ex','ma','me','mo','od','oe','om','ox','ado','ave','avo','axe','dam','dev','dex','doe','dom','emo','mad','mae','max','med','moa','mod','oda','ode','oma','ova','vav','vex','voe','vox','axed','dame','demo','deva','dome','dove','exam','made','mead','mode','move','moxa','odea','maxed','moved'};\r\nwords{4} = {'ad','ae','am','ax','da','de','do','ed','em','ex','ma','me','mo','od','oe','om','ox','ado','ave','avo','axe','dam','dee','dev','dex','doe','dom','eme','emo','eve','mad','mae','max','med','moa','mod','oda','ode','oma','ova','vee','vex','voe','vox','axed','dame','deem','deme','demo','deva','dome','dove','eave','exam','exed','made','mead','meed','mode','move','moxa','odea','adeem','deave','eaved','edema','evade','maxed','moved','vexed','oedema'};\r\nwords{5} = {'ad','ae','al','am','ax','da','de','do','ed','el','em','ex','la','lo','ma','me','mo','od','oe','om','ox','ado','ale','ave','avo','axe','dal','dam','del','dev','dex','doe','dol','dom','eld','elm','emo','lad','lam','lav','lax','lea','led','lev','lex','lox','mad','mae','max','med','mel','moa','mod','mol','oda','ode','old','ole','oma','ova','vex','voe','vox','alme','aloe','axed','axel','axle','dale','dame','deal','demo','deva','dole','dome','dove','exam','lade','lame','lave','lead','leva','levo','load','loam','lode','love','made','male','mead','meal','meld','mode','mola','mold','mole','move','moxa','odea','olde','olea','oval','vale','veal','vela','veld','vole','amole','axled','dolma','domal','laevo','lamed','laved','loved','loxed','maxed','medal','modal','model','moved','voled','voxel','loamed'};\r\nwords{6} = {'ad','ae','am','as','ax','da','de','do','ed','em','es','ex','ma','me','mo','od','oe','om','os','ox','so','ado','ads','ave','avo','axe','dam','das','dev','dex','doe','dom','dos','eds','emo','ems','mad','mae','mas','max','med','moa','mod','mos','oda','ode','ods','oes','oma','oms','ose','ova','sad','sae','sax','sea','sev','sex','sod','som','sox','vas','vex','voe','vox','ados','aves','avos','axed','axes','dame','dams','demo','deva','devs','does','dome','doms','dosa','dose','dove','emos','exam','made','mads','maes','mead','meds','mesa','moas','mode','mods','move','moxa','odas','odea','odes','omas','oxes','sade','same','save','seam','soda','soma','some','vase','voes','dames','demos','devas','domes','doves','exams','maxed','maxes','meads','modes','moved','moves','moxas','oaves','saved','soave','vadose','vamose','vamosed'};\r\nind = randi(3);\r\nswitch ind\r\n\tcase 1\r\n\t\tmult = [' T   d   d   T ';'  d   t t   d  ';' D   t   t   D ';'   D       D   ';'   D       D   ';' D   t   t   D '];\r\n\t\tmax_score_corr = 37;\r\n\t\tmax_word_corr = {'vox'};\r\n\tcase 2\r\n\t\tmult = ['T   d     d   T';'  D   d d   D  ';'   d       d   ';'T   d     d   T';'   d       d   ';'  D   d d   D  '];\r\n\t\tmax_score_corr = 25;\r\n\t\tmax_word_corr = {'vox'};\r\n\tcase 3\r\n\t\tmult = [' T  d t t d  T ';'D  t d   d t  D';' T d t   t d T ';'  T   d d   T  ';' T d t   t d T ';'D  t d   d t  D'];\r\n\t\tmax_score_corr = 35;\r\n\t\tmax_word_corr = {'voxel'};\r\nend\r\n[max_score,max_word] = scrabble_scores_13(words,mult,first_word);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(sort(max_word),sort(max_word_corr)))\r\n\r\n%%\r\nfirst_word = 'zoologist'; %the starting word; the new word must be played off of a letter in this word\r\ntray_letters = 'aehcmdi'; %your tray letters; informational (not part of the problem)\r\n%all possible words, including each letter of the starting word combined with your tray letters\r\nclear words\r\nwords{1} = {'aced','ache','acid','acme','adze','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','cazh','cedi','chad','chai','cham','chem','chez','chia','chid','dace','dame','daze','dice','dime','each','emic','hade','haed','haem','hame','haze','head','hide','hied','iced','idea','idem','mace','mach','made','maid','maze','mead','mech','mica','mice','zeda','ached','aimed','amice','amide','azide','chide','chime','demic','hazed','hemic','maced','mache','maize','mazed','media','medic','miche','chimed','haemic','miched','zaideh'};\r\nwords{2} = {'aced','ache','acid','acme','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','camo','cedi','chad','chai','cham','chao','chem','chia','chid','ciao','coda','code','coed','coma','come','dace','dame','deco','demo','dice','dime','dome','each','echo','emic','hade','haed','haem','hame','head','hide','hied','hoed','homa','home','iced','idea','idem','mace','mach','made','maid','mead','mech','mica','mice','mode','modi','oche','odah','odea','odic','ohed','ohia','ached','aimed','amice','amide','amido','cameo','chemo','chiao','chide','chime','comae','demic','demoi','domic','hemic','homed','homie','maced','mache','macho','mahoe','media','medic','miche','mocha','mochi','ohmic','chimed','codeia','cohead','comade','haemic','hemoid','medico','miched','modica','haemoid'};\r\nwords{3} = {'aced','ache','acid','acme','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','camo','cedi','chad','chai','cham','chao','chem','chia','chid','ciao','coda','code','coed','coma','come','dace','dame','deco','demo','dice','dime','dome','each','echo','emic','hade','haed','haem','hame','head','hide','hied','hoed','homa','home','iced','idea','idem','mace','mach','made','maid','mead','mech','mica','mice','mode','modi','oche','odah','odea','odic','ohed','ohia','ached','aimed','amice','amide','amido','cameo','chemo','chiao','chide','chime','comae','demic','demoi','domic','hemic','homed','homie','maced','mache','macho','mahoe','media','medic','miche','mocha','mochi','ohmic','chimed','codeia','cohead','comade','haemic','hemoid','medico','miched','modica','haemoid'};\r\nwords{4} = {'aced','ache','acid','acme','ahed','ahem','aide','alec','alme','amid','amie','cade','cadi','caid','calm','came','cami','cedi','ceil','chad','chai','cham','chem','chia','chid','clad','clam','dace','dahl','dale','dame','deal','deil','deli','dhal','dial','dice','diel','dime','each','elhi','emic','hade','haed','haem','hail','hale','halm','hame','head','heal','heil','held','helm','hide','hied','hila','iced','idea','idem','idle','ilea','lace','lade','laic','laid','lame','lead','lech','lice','lich','lied','lima','lime','mace','mach','made','maid','mail','male','mead','meal','mech','meld','mica','mice','mild','mile','ached','ailed','aimed','alcid','almeh','amice','amide','camel','chela','chide','chiel','child','chile','chime','clade','claim','clime','decal','demic','email','haled','halid','hemal','hemic','ideal','ileac','laced','laich','lamed','leach','limed','maced','mache','macle','maile','malic','medal','media','medic','melic','miche','milch','calmed','chield','childe','chimed','chimla','haemic','hailed','halide','heliac','hiemal','lamedh','macled','mailed','malice','medial','miched','camelid','claimed','decimal','declaim','medical'};\r\nwords{5} = {'aced','ache','acid','acme','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','camo','cedi','chad','chai','cham','chao','chem','chia','chid','ciao','coda','code','coed','coma','come','dace','dame','deco','demo','dice','dime','dome','each','echo','emic','hade','haed','haem','hame','head','hide','hied','hoed','homa','home','iced','idea','idem','mace','mach','made','maid','mead','mech','mica','mice','mode','modi','oche','odah','odea','odic','ohed','ohia','ached','aimed','amice','amide','amido','cameo','chemo','chiao','chide','chime','comae','demic','demoi','domic','hemic','homed','homie','maced','mache','macho','mahoe','media','medic','miche','mocha','mochi','ohmic','chimed','codeia','cohead','comade','haemic','hemoid','medico','miched','modica','haemoid'};\r\nwords{6} = {'aced','ache','acid','acme','aged','ahed','ahem','aide','amid','amie','cade','cadi','cage','caid','came','cami','cedi','chad','chai','cham','chem','chia','chid','dace','dame','dice','dime','each','egad','emic','gach','gadi','gaed','game','gied','hade','haed','haem','hame','head','hide','hied','iced','idea','idem','mace','mach','made','mage','magi','maid','mead','mech','mega','mica','mice','ached','aimed','amice','amide','cadge','caged','chide','chime','demic','gamed','gamic','hemic','image','maced','mache','magic','media','medic','miche','midge','chimed','degami','gached','haemic','imaged','miched'};\r\nwords{7} = {'aced','ache','acid','acme','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','cedi','chad','chai','cham','chem','chia','chid','dace','dame','dice','dime','each','emic','hade','haed','haem','hame','head','hide','hied','iced','idea','idem','imid','mace','mach','made','maid','mead','mech','mica','mice','midi','ached','aimed','amice','amici','amide','chide','chime','demic','hemic','imide','maced','mache','media','medic','medii','miche','amidic','chimed','haemic','miched'};\r\nwords{8} = {'aced','aces','ache','acid','acme','ahed','ahem','ahis','aide','aids','aims','amid','amie','amis','asci','cade','cadi','cads','caid','came','cami','cams','case','cash','cedi','chad','chai','cham','chem','chia','chid','chis','dace','dahs','dais','dame','dams','dash','desi','dice','dies','dime','dims','disc','dish','each','edhs','emic','hade','haed','haem','haes','hame','hams','head','hems','hide','hied','hies','hims','iced','ices','ichs','idea','idem','ides','mace','mach','macs','made','mads','maes','maid','mash','mead','mech','meds','mesa','mesh','mica','mice','mics','mids','mise','sade','sadi','said','same','scad','scam','seam','semi','shad','sham','shea','shed','shim','sice','side','sidh','sima','ached','aches','acids','acmes','aides','aimed','amice','amide','amids','amies','asdic','ashed','aside','cades','cadis','caids','cames','camis','cased','cedis','chads','chais','chams','chase','chasm','chems','chias','chide','chime','daces','dames','dashi','deash','deism','demic','deshi','dices','dimes','disme','emics','hades','haems','hames','heads','hemic','hides','ideas','maced','maces','mache','machs','maids','meads','mechs','media','medic','mesic','micas','miche','sadhe','saice','shade','shame','shied','sidhe','amices','amides','camise','cashed','chaise','chased','chiasm','chides','chimed','chimes','emdash','haemic','maches','mashed','mashie','medias','medics','miched','miches','sachem','samech','schema','shamed','simcha','chamise','chasmed'};\r\nwords{9} = {'aced','ache','acid','acme','adit','ahed','ahem','aide','amid','amie','cade','cadi','caid','came','cami','cate','cedi','chad','chai','cham','chat','chem','chia','chid','chit','cite','dace','dame','date','dice','diet','dime','dita','dite','each','eath','echt','edit','emic','emit','etch','etic','hade','haed','haem','haet','hame','hate','head','heat','hide','hied','iced','idea','idem','itch','item','mace','mach','made','maid','mate','math','mead','meat','mech','meta','meth','mica','mice','mite','tace','tach','tame','team','tech','thae','them','tide','tied','time','ached','acted','admit','aimed','aitch','amice','amide','cadet','cheat','chide','chime','cited','death','demic','demit','dicta','ditch','edict','ethic','hated','hemic','maced','mache','match','mated','media','medic','miche','tache','tamed','teach','theca','timed','chimed','dacite','detach','haemic','itched','miched','hematic','matched'};\r\nind = randi(3);\r\nswitch ind\r\n\tcase 1\r\n\t\tmult = [' T   d   d   T ';'  d   t t   d  ';' D   t   t   D ';'   D       D   ';' d   T   T   d ';'   D       D   ';' D   t   t   D ';'  d   t t   d  ';' T   d   d   T '];\r\n\t\tmax_score_corr = 117;\r\n\t\tmax_word_corr = {'haemoid'};\r\n\tcase 2\r\n\t\tmult = ['T   d     d   T';'   d       d   ';'  D   d d   D  ';'   d       d   ';'T   d     d   T';'   d       d   ';'  D   d d   D  ';'   d       d   ';'T   d     d   T'];\r\n\t\tmax_score_corr = 28;\r\n\t\tmax_word_corr = {'medico'};\r\n\tcase 3\r\n\t\tmult = ['T   d     d   T';' T  d t t d  T ';'D  t d   d t  D';' T d t   t d T ';'  T   d d   T  ';' T d t   t d T ';'D  t d   d t  D';' T  d t t d  T ';'T   d     d   T'];\r\n\t\tmax_score_corr = 63;\r\n\t\tmax_word_corr = {'decimal'};\r\nend\r\n[max_score,max_word] = scrabble_scores_13(words,mult,first_word);\r\nassert(isequal(max_score,max_score_corr))\r\nassert(isequal(sort(max_word),sort(max_word_corr)))","published":true,"deleted":false,"likes_count":2,"comments_count":6,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":18,"test_suite_updated_at":"2015-03-20T18:02:10.000Z","rescore_all_solutions":false,"group_id":40,"created_at":"2015-03-20T01:53:26.000Z","updated_at":"2026-04-02T20:22:25.000Z","published_at":"2015-03-20T01:53:26.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem integrates components of\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3084-scrabble-scores-11\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eScrabble Scores - 11\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3097-scrabble-scores-12\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eScrabble Scores - 12\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Here, you are provided an existing word on the board from which you will play a word. The letter can reside anywhere (first to last) within the existing word and within the word that you are playing. In addition, multipliers from the board are provided. Write a function to find the highest scoring word, provided any letter from the existing word that you are building off of, the letters on your tray, and the multipliers (provided in specific locations; see below).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRather than having to test all the possible permutations against a dictionary, you will be provided a double-level cell array of strings containing all possible words based each starting letter in the existing word and the letters on your tray (a cell array for each letter in the existing word). (The word lists purposefully omit smaller words to prevent the test cases from being too large.) In addition to providing the highest score, also provide the word(s) that achieve that score in a cell array. See the test suite for examples. Due to high-scoring tiles, the highest score may not be achieved by the longest word(s).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYou will be provided a multiplier character array that represents the fifteen possible squares that can be played on for each letter in the existing word, ranging from seven above each existing letter (in which case the existing letter is the last letter in an eight-letter word) to seven below each existing letter (in which case the existing letter is the first letter in an eight-letter word) with the existing letter fixed in the 8th (column) position. The array will have the same number of rows as the length of the existing word (which is located along the middle of the array). The multipliers are the same as in previous problems:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ * D: double word\\n * T: triple word\\n * Q: quadruple word\\n * d: double letter\\n * t: triple letter\\n * q: quadruple letter]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe center multiplier square will be left blank, since it's already covered by a tile.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRelated problems:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePrevious problem: 12 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3097-scrabble-scores-12\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eWord score optimization (first word)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":3060,"title":"Scrabble Scores - 8","description":"This problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided \u003chttp://en.wikipedia.org/wiki/Scrabble_letter_distributions#English here\u003e. (Use the English points distribution.)\r\n\r\nFor this problem, you are tasked with scoring a completed multiplayer Scrabble board. You will be provided with a character matrix representing a completed game of Scrabble, the number of players (two to four), an order array denoting the order of word placement, and a multiplier board that corresponds to the character board.\r\n\r\nSee the previous problem for details on the order array (link below). All other details from that problem should be carried over. The multiplier board will be a character matrix of the same size as the board with the following single-letter entries for letter (lowercase) or word (uppercase) multipliers:\r\n\r\n * D: double word\r\n * T: triple word\r\n * Q: quadruple word\r\n * d: double letter\r\n * t: triple letter\r\n * q: quadruple letter\r\n\r\nAs an example, suppose you are given the following board (this is test case 1):\r\n\r\n   cat  \r\n i  p   \r\n t  poet\r\n c  l   \r\nthere  \r\n\r\nThe multiplier matrix looks like this:\r\n\r\n  T   d  T\r\n          \r\n  d   D  d\r\n          \r\n  T   d  T\r\n\r\nThe first word to be played, itch, does not cover any multiplier squares, so it is scored as usual. The second word, there, covers the triple-word (T) square in the bottom-left corner in addition to the double-letter (d) square in the bottom center. This means that the last e is doubled (2 points instead of 1) and the entire word score is then tripled.\r\n\r\nThe next word to be played, apple, covers the middle double-word (D) square and the top double-letter (d) square. However, the bottom double-letter (d) square was covered by the previous word and is, therefore, not counted again, per Scrabble rules. So, you'll need to make sure that the entries in the multiplier matrix are cleared out as they are covered with tiles. Each multiplier square counts for all the words scored in a turn (if more than one), but then is covered up for subsequent words.\r\n\r\nWrite a function to calculate and return the total score for each player for the provided Scrabble boards using the accompanying multiplier matrices.\r\n\r\nRelated problems:\r\n\r\nPrevious problem: 7 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3052-scrabble-scores-7 Multiplayer board scoring\u003e. Next problem: 9 - \u003chttps://www.mathworks.com/matlabcentral/cody/problems/3062-scrabble-scores-9 Optimal word score\u003e.","description_html":"\u003cp\u003eThis problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided \u003ca href = \"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\"\u003ehere\u003c/a\u003e. (Use the English points distribution.)\u003c/p\u003e\u003cp\u003eFor this problem, you are tasked with scoring a completed multiplayer Scrabble board. You will be provided with a character matrix representing a completed game of Scrabble, the number of players (two to four), an order array denoting the order of word placement, and a multiplier board that corresponds to the character board.\u003c/p\u003e\u003cp\u003eSee the previous problem for details on the order array (link below). All other details from that problem should be carried over. The multiplier board will be a character matrix of the same size as the board with the following single-letter entries for letter (lowercase) or word (uppercase) multipliers:\u003c/p\u003e\u003cpre\u003e * D: double word\r\n * T: triple word\r\n * Q: quadruple word\r\n * d: double letter\r\n * t: triple letter\r\n * q: quadruple letter\u003c/pre\u003e\u003cp\u003eAs an example, suppose you are given the following board (this is test case 1):\u003c/p\u003e\u003cpre\u003e   cat  \r\n i  p   \r\n t  poet\r\n c  l   \r\nthere  \u003c/pre\u003e\u003cp\u003eThe multiplier matrix looks like this:\u003c/p\u003e\u003cpre class=\"language-matlab\"\u003eT   d  T\r\n\u003c/pre\u003e\u003cpre class=\"language-matlab\"\u003ed   D  d\r\n\u003c/pre\u003e\u003cpre class=\"language-matlab\"\u003eT   d  T\r\n\u003c/pre\u003e\u003cp\u003eThe first word to be played, itch, does not cover any multiplier squares, so it is scored as usual. The second word, there, covers the triple-word (T) square in the bottom-left corner in addition to the double-letter (d) square in the bottom center. This means that the last e is doubled (2 points instead of 1) and the entire word score is then tripled.\u003c/p\u003e\u003cp\u003eThe next word to be played, apple, covers the middle double-word (D) square and the top double-letter (d) square. However, the bottom double-letter (d) square was covered by the previous word and is, therefore, not counted again, per Scrabble rules. So, you'll need to make sure that the entries in the multiplier matrix are cleared out as they are covered with tiles. Each multiplier square counts for all the words scored in a turn (if more than one), but then is covered up for subsequent words.\u003c/p\u003e\u003cp\u003eWrite a function to calculate and return the total score for each player for the provided Scrabble boards using the accompanying multiplier matrices.\u003c/p\u003e\u003cp\u003eRelated problems:\u003c/p\u003e\u003cp\u003ePrevious problem: 7 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3052-scrabble-scores-7\"\u003eMultiplayer board scoring\u003c/a\u003e. Next problem: 9 - \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/3062-scrabble-scores-9\"\u003eOptimal word score\u003c/a\u003e.\u003c/p\u003e","function_template":"function [score] = scrabble_scores_8(board,n_pl,order,mult)\r\n\r\nscore = zeros(1,n_pl);\r\n\r\nend\r\n","test_suite":"%%\r\nboard = [\r\n\r\n'   cat  ';\r\n' i  p   ';\r\n' t  poet';\r\n' c  l   ';\r\n'there   ';\r\n];\r\nn_pl = 2;\r\norder = cell(1,5);\r\norder(1) = {[2,2; 5,2]};\r\norder(2) = {[5,1; 5,5]};\r\norder(3) = {[1,5; 5,5]};\r\norder(4) = {[3,5; 3,8]};\r\norder(5) = {[1,4; 1,6]};\r\nmult = [\r\n\r\n'T   d  T';\r\n'        ';\r\n'd   D  d';\r\n'        ';\r\n'T   d  T';\r\n];\r\nscore = [34 34];\r\nassert(isequal(scrabble_scores_8(board,n_pl,order,mult),score))\r\n\r\n%%\r\nboard = [\r\n\r\n'stratagems';\r\n' h      a ';\r\n'hello   t ';\r\n' r      l ';\r\n'fellow  a ';\r\n'    a   b ';\r\n' users    ';\r\n];\r\nn_pl = 2;\r\norder = cell(1,7);\r\norder(1) = {[1,1; 1,10]};\r\norder(2) = {[1,9; 6,9]};\r\norder(3) = {[1,2; 5,2]};\r\norder(4) = {[5,1; 5,6]};\r\norder(5) = {[5,5; 7,5]};\r\norder(6) = {[3,1; 3,5]};\r\norder(7) = {[7,2; 7,6]};\r\nmult = [\r\n\r\n'T  t  t  T';\r\n'          ';\r\n'D  d  d  D';\r\n'          ';\r\n'D  d  d  D';\r\n'          ';\r\n'T  t  t  T';\r\n];\r\nscore = [189 54];\r\nassert(isequal(scrabble_scores_8(board,n_pl,order,mult),score))\r\n\r\n%%\r\nboard = [\r\n\r\n' what   y ';\r\n'    h  do ';\r\n'  this  um';\r\n' l  n    a';\r\n' of keen t';\r\n' o   e   l';\r\n' problem a';\r\n'      noob';\r\n];\r\nn_pl = 3;\r\norder = cell(1,12);\r\norder(1) = {[1,2; 1,5]};\r\norder(2) = {[1,5; 5,5]};\r\norder(3) = {[3,3; 3,7]};\r\norder(4) = {[5,5; 5,8]};\r\norder(5) = {[5,6; 7,6]};\r\norder(6) = {[7,2; 7,8]};\r\norder(7) = {[4,2; 7,2]};\r\nm_words(:,:,1) = [8,7; 8,10];\r\nm_words(:,:,2) = [7,7; 8,7];\r\nm_words(:,:,3) = [7,8; 8,8];\r\norder(8) = {m_words};\r\norder(9) = {[3,10; 8,10]};\r\nclear m_words\r\nm_words(:,:,1) = [1,9; 3,9];\r\nm_words(:,:,2) = [3,9; 3,10];\r\norder(10) = {m_words};\r\norder(11) = {[5,2; 5,3]};\r\norder(12) = {[2,8; 2,9]};\r\nmult = [\r\n\r\n'T    t   T';\r\n' d      d ';\r\n'  d    d  ';\r\n'   D     t';\r\n't     D   ';\r\n'  d    d  ';\r\n' d      d ';\r\n'T   t    T';\r\n];\r\nscore = [43 44 39];\r\nassert(isequal(scrabble_scores_8(board,n_pl,order,mult),score))\r\n\r\n%%\r\nboard = [\r\n\r\n' if  you  ';\r\n'  i  u    ';\r\n'  like    ';\r\n' met  g   ';\r\n' e    it l';\r\n' e    v  i';\r\n' please  k';\r\n'      node';\r\n];\r\nn_pl = 2;\r\norder = cell(1,12);\r\norder(1) = {[1,2; 1,3]};\r\norder(2) = {[1,3; 4,3]};\r\norder(3) = {[3,3; 3,6]};\r\norder(4) = {[1,6; 3,6]};\r\norder(5) = {[1,6; 1,8]};\r\nm_words(:,:,1) = [4,2; 4,4];\r\nm_words(:,:,2) = [3,4; 4,4];\r\norder(6) = {m_words};\r\norder(7) = {[4,2; 7,2]};\r\norder(8) = {[7,2; 7,7]};\r\norder(9) = {[4,7; 7,7]};\r\nm_words(:,:,1) = [8,7; 8,10];\r\nm_words(:,:,2) = [4,7; 8,7];\r\norder(10) = {m_words};\r\norder(11) = {[5,10; 8,10]};\r\norder(12) = {[5,7; 5,8]};\r\nmult = [\r\n\r\n' T   T  T ';\r\n'   d     d';\r\n'  D   D   ';\r\n' D t  d   ';\r\n'         d';\r\n'   d  t   ';\r\n' d  D   D ';\r\n'  T   T  T';\r\n];\r\nscore = [67 140];\r\nassert(isequal(scrabble_scores_8(board,n_pl,order,mult),score))\r\n\r\n%\r\nboard = [\r\n\r\n'c    flummoxes zither';\r\n'al    o      e e    e';\r\n'ba  hunting  eerie  b';\r\n'ab  a g   e    o    e';\r\n'lo  n     m g       l';\r\n' r  g      responses ';\r\n'random      n    u u ';\r\n' t  v   c  below p r ';\r\n'convention  r    e f ';\r\n' r  r   n   a   areas';\r\n' y      v c t    i c ';\r\n'   o  philosophy o em';\r\n'travel  n n r    r  e';\r\n'   e    c t         e';\r\n' word   i a    writer';\r\n'   t    n c    o    l';\r\n'p fortnight   rock  y';\r\n'i  n            h    ';\r\n'novelty m concatenate';\r\n'c e  o  a    a  s   g';\r\n'heterogeneousness   g';\r\n];\r\nn_pl = 4;\r\norder = cell(1,41);\r\norder(1) = {[12,7; 12,16]};\r\norder(2) = {[5,13; 13,13]};\r\norder(3) = {[8,9; 17,9]};\r\norder(4) = {[11,11; 17,11]};\r\norder(5) = {[17,3; 17,11]};\r\norder(6) = {[8,12; 8,16]};\r\norder(7) = {[6,12; 6,20]};\r\norder(8) = {[6,18; 13,18]};\r\norder(9) = {[10,17; 10,21]};\r\norder(10) = {[9,1; 9,10]};\r\norder(11) = {[12,4; 19,4]};\r\norder(12) = {[2,2; 11,2]};\r\norder(13) = {[7,1; 7,6]};\r\norder(14) = {[13,1; 13,6]};\r\norder(15) = {[15,2; 15,5]};\r\norder(16) = {[19,1; 19,7]};\r\norder(17) = {[3,5; 10,5]};\r\norder(18) = {[3,5; 3,11]};\r\nm_words(:,:,1) = [1,1; 5,1];\r\nm_words(:,:,2) = [2,1; 2,2];\r\nm_words(:,:,3) = [3,1; 3,2];\r\nm_words(:,:,4) = [4,1; 4,2];\r\nm_words(:,:,5) = [5,1; 5,2];\r\norder(19) = {m_words};\r\norder(20) = {[17,1; 21,1]};\r\norder(21) = {[21,1; 21,17]};\r\norder(22) = {[6,20; 12,20]};\r\nclear m_words\r\nm_words(:,:,1) = [12,21; 17,21];\r\nm_words(:,:,2) = [12,20; 12,21];\r\norder(23) = {m_words};\r\norder(24) = {[15,16; 15,21]};\r\norder(25) = {[3,11; 5,11]};\r\norder(26) = {[17,17; 21,17]};\r\norder(27) = {[17,15; 17,18]};\r\norder(28) = {[19,11; 19,21]};\r\norder(29) = {[19,14; 21,14]};\r\norder(30) = {[1,7; 4,7]};\r\norder(31) = {[1,6; 1,14]};\r\norder(32) = {[19,21; 21,21]};\r\norder(33) = {[19,6; 21,6]};\r\norder(34) = {[1,14; 3,14]};\r\norder(35) = {[3,14; 3,18]};\r\norder(36) = {[1,16; 4,16]};\r\norder(37) = {[1,16; 1,21]};\r\norder(38) = {[1,21; 5,21]};\r\norder(39) = {[19,3; 21,3]};\r\norder(40) = {[19,9; 21,9]};\r\norder(41) = {[15,16; 17,16]};\r\nmult = [\r\n\r\n'Q  d   T  d  T   d  Q';\r\n' D  t   D   D   t  D ';\r\n'  D  q   D D   q  D  ';\r\n'd  T  d   T   d  T  d';\r\n' t  D   t   t   D  t ';\r\n'  q  D   d d   D  q  ';\r\n'   d  D   d   D  d   ';\r\n'T      D     D      T';\r\n' D  t   t   t   t  D ';\r\n'  D  d   d d   d  D  ';\r\n'd   T d   D   d  T  d';\r\n'  D  d   d d   d  D  ';\r\n' D  t   t   t   t  D ';\r\n'T      D     D      T';\r\n'   d  D   d   D  d   ';\r\n'  q  D   d d   D  q  ';\r\n' t  D   t   t   D  t ';\r\n'd  T  d   T   d  T  d';\r\n'  D  q   D D   q  D  ';\r\n' D  t   D   D   t  D ';\r\n'Q  d   T  d  T   d  Q';\r\n];\r\nscore = [433 188 430 300];\r\nassert(isequal(scrabble_scores_8(board,n_pl,order,mult),score))\r\n\r\n%% anti-cheating test case (random number of players from random board)\r\nind = randi(4);\r\nind2 = randi(3)+1;\r\nswitch ind\r\ncase 1\r\nboard = [\r\n\r\n'   cat  ';\r\n' i  p   ';\r\n' t  poet';\r\n' c  l   ';\r\n'there   ';\r\n];\r\norder = cell(1,5);\r\norder(1) = {[2,2; 5,2]};\r\norder(2) = {[5,1; 5,5]};\r\norder(3) = {[1,5; 5,5]};\r\norder(4) = {[3,5; 3,8]};\r\norder(5) = {[1,4; 1,6]};\r\nmult = [\r\n\r\n'T   d  T';\r\n'        ';\r\n'd   D  d';\r\n'        ';\r\n'T   d  T';\r\n];\r\nswitch ind2\r\n\tcase 2\r\n\t\tn_pl = 2;\r\n\t\tscore = [34 34];\r\n\tcase 3\r\n\t\tn_pl = 3;\r\n\t\tscore = [16 32 20];\r\n\tcase 4\r\n\t\tn_pl = 4;\r\n\t\tscore = [14 27 20 7];\r\nend\r\ncase 2\r\nboard = [\r\n'stratagems';\r\n' h      a ';\r\n'hello   t ';\r\n' r      l ';\r\n'fellow  a ';\r\n'    a   b ';\r\n' users    '];\r\norder = cell(1,7);\r\norder(1) = {[1,1; 1,10]};\r\norder(2) = {[1,9; 6,9]};\r\norder(3) = {[1,2; 5,2]};\r\norder(4) = {[5,1; 5,6]};\r\norder(5) = {[5,5; 7,5]};\r\norder(6) = {[3,1; 3,5]};\r\norder(7) = {[7,2; 7,6]};\r\nmult = [\r\n\r\n'T  t  t  T';\r\n'          ';\r\n'D  d  d  D';\r\n'          ';\r\n'D  d  d  D';\r\n'          ';\r\n'T  t  t  T';\r\n];\r\nswitch ind2\r\n\tcase 2\r\n\t\tn_pl = 2;\r\n\t\tscore = [189 54];\r\n\tcase 3\r\n\t\tn_pl = 3;\r\n\t\tscore = [204 13 26];\r\n\tcase 4\r\n\t\tn_pl = 4;\r\n\t\tscore = [174 28 15 26];\r\nend\r\ncase 3\r\nboard = [\r\n\r\n' what   y ';\r\n'    h  do ';\r\n'  this  um';\r\n' l  n    a';\r\n' of keen t';\r\n' o   e   l';\r\n' problem a';\r\n'      noob';\r\n];\r\norder = cell(1,12);\r\norder(1) = {[1,2; 1,5]};\r\norder(2) = {[1,5; 5,5]};\r\norder(3) = {[3,3; 3,7]};\r\norder(4) = {[5,5; 5,8]};\r\norder(5) = {[5,6; 7,6]};\r\norder(6) = {[7,2; 7,8]};\r\norder(7) = {[4,2; 7,2]};\r\nm_words(:,:,1) = [8,7; 8,10];\r\nm_words(:,:,2) = [7,7; 8,7];\r\nm_words(:,:,3) = [7,8; 8,8];\r\norder(8) = {m_words};\r\norder(9) = {[3,10; 8,10]};\r\nclear m_words\r\nm_words(:,:,1) = [1,9; 3,9];\r\nm_words(:,:,2) = [3,9; 3,10];\r\norder(10) = {m_words};\r\norder(11) = {[5,2; 5,3]};\r\norder(12) = {[2,8; 2,9]};\r\nmult = [\r\n\r\n'T    t   T';\r\n' d      d ';\r\n'  d    d  ';\r\n'   D     t';\r\n't     D   ';\r\n'  d    d  ';\r\n' d      d ';\r\n'T   t    T';\r\n];\r\nswitch ind2\r\n\tcase 2\r\n\t\tn_pl = 2;\r\n\t\tscore = [44 82];\r\n\tcase 3\r\n\t\tn_pl = 3;\r\n\t\tscore = [43 44 39];\r\n\tcase 4\r\n\t\tn_pl = 4;\r\n\t\tscore = [25 39 19 43];\r\nend\r\ncase 4\r\nboard = [\r\n\r\n' if  you  ';\r\n'  i  u    ';\r\n'  like    ';\r\n' met  g   ';\r\n' e    it l';\r\n' e    v  i';\r\n' please  k';\r\n'      node';\r\n];\r\norder = cell(1,12);\r\norder(1) = {[1,2; 1,3]};\r\norder(2) = {[1,3; 4,3]};\r\norder(3) = {[3,3; 3,6]};\r\norder(4) = {[1,6; 3,6]};\r\norder(5) = {[1,6; 1,8]};\r\nm_words(:,:,1) = [4,2; 4,4];\r\nm_words(:,:,2) = [3,4; 4,4];\r\norder(6) = {m_words};\r\norder(7) = {[4,2; 7,2]};\r\norder(8) = {[7,2; 7,7]};\r\norder(9) = {[4,7; 7,7]};\r\nm_words(:,:,1) = [8,7; 8,10];\r\nm_words(:,:,2) = [4,7; 8,7];\r\norder(10) = {m_words};\r\norder(11) = {[5,10; 8,10]};\r\norder(12) = {[5,7; 5,8]};\r\nmult = [\r\n\r\n' T   T  T ';\r\n'   d     d';\r\n'  D   D   ';\r\n' D t  d   ';\r\n'         d';\r\n'   d  t   ';\r\n' d  D   D ';\r\n'  T   T  T';\r\n];\r\nswitch ind2\r\n\tcase 2\r\n\t\tn_pl = 2;\r\n\t\tscore = [67 140];\r\n\tcase 3\r\n\t\tn_pl = 3;\r\n\t\tscore = [116 45 46];\r\n\tcase 4\r\n\t\tn_pl = 4;\r\n\t\tscore = [39 104 28 36];\r\nend\r\nend\r\nassert(isequal(scrabble_scores_8(board,n_pl,order,mult),score))\r\n","published":true,"deleted":false,"likes_count":3,"comments_count":2,"created_by":26769,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":23,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":40,"created_at":"2015-03-03T05:04:53.000Z","updated_at":"2026-04-02T20:17:44.000Z","published_at":"2015-03-03T05:04:53.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThis problem is part of a set of problems that successively develop a more sophisticated Scrabble scoring routine. The point distribution for scoring is provided\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Scrabble_letter_distributions#English\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ehere\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. (Use the English points distribution.)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor this problem, you are tasked with scoring a completed multiplayer Scrabble board. You will be provided with a character matrix representing a completed game of Scrabble, the number of players (two to four), an order array denoting the order of word placement, and a multiplier board that corresponds to the character board.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSee the previous problem for details on the order array (link below). All other details from that problem should be carried over. The multiplier board will be a character matrix of the same size as the board with the following single-letter entries for letter (lowercase) or word (uppercase) multipliers:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ * D: double word\\n * T: triple word\\n * Q: quadruple word\\n * d: double letter\\n * t: triple letter\\n * q: quadruple letter]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAs an example, suppose you are given the following board (this is test case 1):\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[   cat  \\n i  p   \\n t  poet\\n c  l   \\nthere]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe multiplier matrix looks like this:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[T   d  T\\n\\nd   D  d\\n\\nT   d  T]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe first word to be played, itch, does not cover any multiplier squares, so it is scored as usual. The second word, there, covers the triple-word (T) square in the bottom-left corner in addition to the double-letter (d) square in the bottom center. This means that the last e is doubled (2 points instead of 1) and the entire word score is then tripled.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe next word to be played, apple, covers the middle double-word (D) square and the top double-letter (d) square. However, the bottom double-letter (d) square was covered by the previous word and is, therefore, not counted again, per Scrabble rules. So, you'll need to make sure that the entries in the multiplier matrix are cleared out as they are covered with tiles. Each multiplier square counts for all the words scored in a turn (if more than one), but then is covered up for subsequent words.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite a function to calculate and return the total score for each player for the provided Scrabble boards using the accompanying multiplier matrices.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eRelated problems:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ePrevious problem: 7 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3052-scrabble-scores-7\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eMultiplayer board scoring\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e. Next problem: 9 -\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/3062-scrabble-scores-9\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eOptimal word score\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"}],"term":"tag:\"score\"","current_player_id":null,"fields":[{"name":"page","type":"integer","callback":null,"default":1,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"per_page","type":"integer","callback":null,"default":50,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"sort","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"body","type":"text","callback":null,"default":"*:*","directive":null,"facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":false},{"name":"group","type":"string","callback":null,"default":null,"directive":"group","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"difficulty_rating_bin","type":"string","callback":null,"default":null,"directive":"difficulty_rating_bin","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"id","type":"integer","callback":null,"default":null,"directive":"id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"tag","type":"string","callback":null,"default":null,"directive":"tag","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"product","type":"string","callback":null,"default":null,"directive":"product","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_at","type":"timeframe","callback":{},"default":null,"directive":"created_at","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"profile_id","type":"integer","callback":null,"default":null,"directive":"author_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_by","type":"string","callback":null,"default":null,"directive":"author","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player_id","type":"integer","callback":null,"default":null,"directive":"solver_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player","type":"string","callback":null,"default":null,"directive":"solver","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"solvers_count","type":"integer","callback":null,"default":null,"directive":"solvers_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"comments_count","type":"integer","callback":null,"default":null,"directive":"comments_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"likes_count","type":"integer","callback":null,"default":null,"directive":"likes_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leader_id","type":"integer","callback":null,"default":null,"directive":"leader_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leading_solution","type":"integer","callback":null,"default":null,"directive":"leading_solution","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true}],"filters":[{"name":"asset_type","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":"\"cody:problem\"","prepend":true},{"name":"profile_id","type":"integer","callback":{},"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":"author_id","static":null,"prepend":true}],"query":{"params":{"per_page":50,"term":"tag:\"score\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"score\"","","\"","score","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007fac446112d0\u003e":null,"#\u003cMathWorks::Search::Field:0x00007fac44611230\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007fac446108d0\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007fac44611550\u003e":1,"#\u003cMathWorks::Search::Field:0x00007fac446114b0\u003e":50,"#\u003cMathWorks::Search::Field:0x00007fac44611410\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007fac44611370\u003e":"tag:\"score\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007fac44611370\u003e":"tag:\"score\""},"queried_facets":{}},"query_backend":{"connection":{"configuration":{"index_url":"http://index-op-v2/solr/","query_url":"http://search-op-v2/solr/","direct_access_index_urls":["http://index-op-v2/solr/"],"direct_access_query_urls":["http://search-op-v2/solr/"],"timeout":10,"vhost":"search","exchange":"search.topic","heartbeat":30,"pre_index_mode":false,"host":"rabbitmq-eks","port":5672,"username":"search","password":"J3bGPZzQ7asjJcCk","virtual_host":"search","indexer":"amqp","http_logging":"true","core":"cody"},"query_connection":{"uri":"http://search-op-v2/solr/cody/","proxy":null,"connection":{"parallel_manager":null,"headers":{"User-Agent":"Faraday v1.0.1"},"params":{},"options":{"params_encoder":"Faraday::FlatParamsEncoder","proxy":null,"bind":null,"timeout":null,"open_timeout":null,"read_timeout":null,"write_timeout":null,"boundary":null,"oauth":null,"context":null,"on_data":null},"ssl":{"verify":true,"ca_file":null,"ca_path":null,"verify_mode":null,"cert_store":null,"client_cert":null,"client_key":null,"certificate":null,"private_key":null,"verify_depth":null,"version":null,"min_version":null,"max_version":null},"default_parallel_manager":null,"builder":{"adapter":{"name":"Faraday::Adapter::NetHttp","args":[],"block":null},"handlers":[{"name":"Faraday::Response::RaiseError","args":[],"block":null}],"app":{"app":{"ssl_cert_store":{"verify_callback":null,"error":null,"error_string":null,"chain":null,"time":null},"app":{},"connection_options":{},"config_block":null}}},"url_prefix":"http://search-op-v2/solr/cody/","manual_proxy":false,"proxy":null},"update_format":"RSolr::JSON::Generator","update_path":"update","options":{"url":"http://search-op-v2/solr/cody"}}},"query":{"params":{"per_page":50,"term":"tag:\"score\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"score\"","","\"","score","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007fac446112d0\u003e":null,"#\u003cMathWorks::Search::Field:0x00007fac44611230\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007fac446108d0\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007fac44611550\u003e":1,"#\u003cMathWorks::Search::Field:0x00007fac446114b0\u003e":50,"#\u003cMathWorks::Search::Field:0x00007fac44611410\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007fac44611370\u003e":"tag:\"score\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007fac44611370\u003e":"tag:\"score\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":3100,"difficulty_rating":"easy"},{"id":3099,"difficulty_rating":"easy"},{"id":3101,"difficulty_rating":"easy-medium"},{"id":3047,"difficulty_rating":"easy-medium"},{"id":3051,"difficulty_rating":"easy-medium"},{"id":3082,"difficulty_rating":"easy-medium"},{"id":3050,"difficulty_rating":"easy-medium"},{"id":3062,"difficulty_rating":"easy-medium"},{"id":3049,"difficulty_rating":"easy-medium"},{"id":3048,"difficulty_rating":"easy-medium"},{"id":3081,"difficulty_rating":"easy-medium"},{"id":3102,"difficulty_rating":"medium"},{"id":3097,"difficulty_rating":"medium"},{"id":3052,"difficulty_rating":"medium"},{"id":3084,"difficulty_rating":"medium"},{"id":3098,"difficulty_rating":"medium-hard"},{"id":3060,"difficulty_rating":"medium-hard"}]}}