{"group":{"id":1,"name":"Community","lockable":false,"created_at":"2012-01-18T18:02:15.000Z","updated_at":"2026-04-16T00:12:35.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":"2026-04-16T00: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":43574,"title":"Connect 4 (the boardgame)","description":"You are playing the popular game \"Connect 4\" ( \u003chttps://en.wikipedia.org/wiki/Connect_Four\u003e) against Matlab. Luckily, Matlab isn't trying to hard and just places its chips randomly.\r\n\r\nWrite a function which plays the game for you. As starting point you are given the same function which you opponent is using (random placement). But you'll have to do better, because you will have to crush Matlab by winning 10 games in a row in order to pass this test!\r\n\r\nEach time your function as called it is your turn to make a move. The input of the function is a 5x7 matrix, representing the game board, containing either \"1\" (a chip of your opponent), \"2\" (one of your chips) or \"0\" (an empty space). Calculate your best move and output the column index of your next chip (make sure this column isn't full yet or your turn is lost).\r\n\r\nGood luck!","description_html":"\u003cp\u003eYou are playing the popular game \"Connect 4\" ( \u003ca href = \"https://en.wikipedia.org/wiki/Connect_Four\"\u003ehttps://en.wikipedia.org/wiki/Connect_Four\u003c/a\u003e) against Matlab. Luckily, Matlab isn't trying to hard and just places its chips randomly.\u003c/p\u003e\u003cp\u003eWrite a function which plays the game for you. As starting point you are given the same function which you opponent is using (random placement). But you'll have to do better, because you will have to crush Matlab by winning 10 games in a row in order to pass this test!\u003c/p\u003e\u003cp\u003eEach time your function as called it is your turn to make a move. The input of the function is a 5x7 matrix, representing the game board, containing either \"1\" (a chip of your opponent), \"2\" (one of your chips) or \"0\" (an empty space). Calculate your best move and output the column index of your next chip (make sure this column isn't full yet or your turn is lost).\u003c/p\u003e\u003cp\u003eGood luck!\u003c/p\u003e","function_template":"function c = move(board)\r\n    % - the input board is a 5x7 matrix containing 0,1,2: The elements 0 are\r\n    % empty spaces, 1 are chips of your opponent and 2 are your chipt.\r\n    % - the output c is the column of your next chip, make sure this column\r\n    % has space left for your chip or the turn goes lost!\r\n\r\n    % select random available column\r\n    allC = find(sum(board~=0,1)\u003c5,7); % all not yet full columns\r\n    c = allC(randi(length(allC),1,1)); % random placement\r\nend","test_suite":"%%\r\ngames = 10;\r\nwinners = zeros(games,1);\r\nfor gamenum = 1:games % you play \"games\" different games\r\n    % init the board\r\n    board = zeros(5,7);\r\n    % function finding the index at which the chip will fall in column c\r\n    index = @(c,board) find(board(:,c)==0,1,'last');\r\n    % start the game\r\n    whoWon = 0;\r\n    done = false;\r\n    turn = 1;\r\n    while done == false\r\n        if turn == 1 % you oppenent's turn\r\n            % select random column\r\n            allC = find(sum(board~=0,1)\u003c5,7); % all not full columns\r\n            c = allC(randi(length(allC),1,1)); % random placement\r\n            % place chip in column c\r\n            board(index(c,board),c) = 1;\r\n        else % your turn\r\n            % which column\r\n            c = move(board);\r\n            % place chip in column c\r\n            i = index(c,board); % index\r\n            if ~isempty(i)\r\n                board(i,c) = 2;\r\n            else\r\n                disp('You have selected a full column, your turn goes lost')\r\n            end\r\n        end\r\n\r\n        % check for a 4-in-a-row\r\n        temp = board==turn;\r\n        % gather all possible 4-in-a-row lines\r\n            lines = cell(22,1);\r\n            % horizontal\r\n            for i = 1:5\r\n                lines{i} = temp(i,:)';\r\n            end\r\n            % vertical\r\n            for i = 1:7\r\n                lines{i+5} = temp(:,i);\r\n            end\r\n            % diagonal \\\r\n            lines{13} = diag(temp(2:end,:));\r\n            for i = 1:4\r\n                lines{i+13} = diag(temp(:,i:end));\r\n            end\r\n            % diagonal /\r\n            temp = fliplr(temp);\r\n            lines{18} = diag(temp(2:end,:));\r\n            for i = 1:4\r\n                lines{i+18} = diag(temp(:,i:end));\r\n            end\r\n        for i = 1:length(lines)\r\n            % find the maximum number of the same chips in this row\r\n            temp = diff([0; lines{i}; 0]);\r\n            if max(find(temp==-1,7)-find(temp==1,7))==4\r\n                % game is won!\r\n                whoWon = turn;\r\n                done = true;\r\n            end\r\n        end\r\n        % is the board full without a winner?\r\n        if sum(board==0)==0\r\n            done = true;\r\n        end\r\n        % switch turns\r\n        turn = 3-turn;\r\n    end % end of one game\r\n    winners(gamenum) = whoWon;\r\nend\r\ndisp(['Game results (#won/#lost/#draw): ' num2str(sum(winners==2)) '/' num2str(sum(winners==1)) '/' num2str(sum(winners==0))])\r\n% Did you win all 10 games?\r\nassert(isequal(sum(winners==2),games))","published":true,"deleted":false,"likes_count":5,"comments_count":0,"created_by":94929,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":16,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2016-10-18T09:14:38.000Z","updated_at":"2025-12-12T13:37:07.000Z","published_at":"2016-10-18T09:14:38.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\u003eYou are playing the popular game \\\"Connect 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://en.wikipedia.org/wiki/Connect_Four\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://en.wikipedia.org/wiki/Connect_Four\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;) against Matlab. Luckily, Matlab isn't trying to hard and just places its chips randomly.\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 which plays the game for you. As starting point you are given the same function which you opponent is using (random placement). But you'll have to do better, because you will have to crush Matlab by winning 10 games in a row in order to pass this test!\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\u003eEach time your function as called it is your turn to make a move. The input of the function is a 5x7 matrix, representing the game board, containing either \\\"1\\\" (a chip of your opponent), \\\"2\\\" (one of your chips) or \\\"0\\\" (an empty space). Calculate your best move and output the column index of your next chip (make sure this column isn't full yet or your turn is lost).\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\u003eGood luck!\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":43562,"title":"Mastermind","description":"We are playing the boardgame mastermind \u003chttps://en.wikipedia.org/wiki/Mastermind_(board_game)\u003e. The game master has created a 4-character code for you to guess, with characters ranging from \"1\" to \"6\" (e.g. code = [2 1 3 4]).\r\n\r\nThe first guess (this will be [1 1 2 2]) is already done and the game master has given you following feedback:\r\n\r\n# The number of correct characters in your guess, in this case 1 because character \"1\" at index 2 is correct.\r\n# The number of correct characters, but in a wrong place. In this case 1 because you guessed character \"2\", but it is in the wrong place.\r\n\r\nNow, your function has to do the next guesses. Each time your function is called, the input will contain the code and feedback of all your previous guesses, the output is a copy of the input with your new code added (refer to the example code).\r\n\r\nIt is shown you could solve the code in only 4 additional guesses (refer to the wiki page), you will however get 11 according to the rules of Mastermind.\r\n\r\nGood luck!","description_html":"\u003cp\u003eWe are playing the boardgame mastermind \u003ca href = \"https://en.wikipedia.org/wiki/Mastermind_(board_game)\"\u003ehttps://en.wikipedia.org/wiki/Mastermind_(board_game)\u003c/a\u003e. The game master has created a 4-character code for you to guess, with characters ranging from \"1\" to \"6\" (e.g. code = [2 1 3 4]).\u003c/p\u003e\u003cp\u003eThe first guess (this will be [1 1 2 2]) is already done and the game master has given you following feedback:\u003c/p\u003e\u003col\u003e\u003cli\u003eThe number of correct characters in your guess, in this case 1 because character \"1\" at index 2 is correct.\u003c/li\u003e\u003cli\u003eThe number of correct characters, but in a wrong place. In this case 1 because you guessed character \"2\", but it is in the wrong place.\u003c/li\u003e\u003c/ol\u003e\u003cp\u003eNow, your function has to do the next guesses. Each time your function is called, the input will contain the code and feedback of all your previous guesses, the output is a copy of the input with your new code added (refer to the example code).\u003c/p\u003e\u003cp\u003eIt is shown you could solve the code in only 4 additional guesses (refer to the wiki page), you will however get 11 according to the rules of Mastermind.\u003c/p\u003e\u003cp\u003eGood luck!\u003c/p\u003e","function_template":"function output = mastermind(input)\r\n    %% unpack the input (as example, alter if you like)\r\n    i = length(input);            % number of attempts so far\r\n    previousCode = input(i).code; % the last code you tried (at index i-1 you will find the code before that, etc.)\r\n    rightNumWrongPlace = input(i).rightNumWrongPlace; % the number of right numbers in previous attemp, but which were at the wrong place\r\n    rightNumRightPlace = input(i).rightNumRightPlace; % the number of right numbers in previous attemp at the wright position\r\n    % The user data from previous run (optional):\r\n    % Please use \"if isfield(...\", because your first call the user data\r\n    % will be empty\r\n    if isfield(input(i).userdata,'var2')\r\n        var2 = input(i).userdata.var2;\r\n    end\r\n    \r\n    %% now, based on previous attempts create your next code\r\n    yourCode = [1 1 1 1];\r\n    \r\n    %% alter if you like\r\n    % you can use the field userdata to save variables needed in your next run (optional)\r\n    data.var1 = 1;\r\n    data.var2 = 'lala';\r\n    new.userdata = data; \r\n    \r\n    %% do not alter\r\n    output = input;\r\n    new.code = yourCode;            % your next try\r\n    new.rightNumWrongPlace = [];    % the gamemaster will fill in this field at evaluation for the next attempt\r\n    new.rightNumRightPlace = [];   % the gamemaster will fill in this field at evaluation for the next attempt\r\n    if ~isfield(new,'userdata') % ensure no errors when userdata is not used\r\n        new.userdata = [];\r\n    end\r\n    output(end+1) = new;\r\nend","test_suite":"%%\r\ncode = randi(6,1,4); % the real code to crack\r\n% attempt 1\r\nattempts = [];\r\nattempts(1).code = [1 1 2 2]; % the first attempt\r\n% eval\r\nattempts(1).rightNumRightPlace = sum(code==attempts(1).code);\r\nattempts(1).rightNumWrongPlace = sum(sum(repmat(code',1,4)==repmat(attempts(1).code,4,1),2)\u003e0)-attempts(1).rightNumRightPlace;\r\nattempts(1).userdata = [];\r\n% init\r\nsolved = false;\r\nwhile (length(attempts)\u003c11 \u0026\u0026 ~solved)\r\n    attempts = mastermind(attempts);\r\n    % eval\r\n    attempts(end).rightNumRightPlace = sum(code==attempts(end).code);\r\n    attempts(end).rightNumWrongPlace = sum(sum(repmat(code',1,4)==repmat(attempts(end).code,4,1),2)\u003e0)-attempts(end).rightNumRightPlace;\r\n    if attempts(end).rightNumRightPlace==4\r\n        solved = true;\r\n    end\r\nend\r\nassert(solved)","published":true,"deleted":false,"likes_count":3,"comments_count":2,"created_by":94929,"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":"2016-10-16T09:19:14.000Z","updated_at":"2025-12-12T14:00:01.000Z","published_at":"2016-10-16T09:19:14.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\u003eWe are playing the boardgame mastermind\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://en.wikipedia.org/wiki/Mastermind_(board_game)\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://en.wikipedia.org/wiki/Mastermind_(board_game\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e)\u0026gt;. The game master has created a 4-character code for you to guess, with characters ranging from \\\"1\\\" to \\\"6\\\" (e.g. code = [2 1 3 4]).\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 guess (this will be [1 1 2 2]) is already done and the game master has given you following feedback:\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=\\\"2\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe number of correct characters in your guess, in this case 1 because character \\\"1\\\" at index 2 is correct.\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=\\\"2\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe number of correct characters, but in a wrong place. In this case 1 because you guessed character \\\"2\\\", but it is in the wrong place.\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, your function has to do the next guesses. Each time your function is called, the input will contain the code and feedback of all your previous guesses, the output is a copy of the input with your new code added (refer to the example code).\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\u003eIt is shown you could solve the code in only 4 additional guesses (refer to the wiki page), you will however get 11 according to the rules of Mastermind.\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\u003eGood luck!\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":43574,"title":"Connect 4 (the boardgame)","description":"You are playing the popular game \"Connect 4\" ( \u003chttps://en.wikipedia.org/wiki/Connect_Four\u003e) against Matlab. Luckily, Matlab isn't trying to hard and just places its chips randomly.\r\n\r\nWrite a function which plays the game for you. As starting point you are given the same function which you opponent is using (random placement). But you'll have to do better, because you will have to crush Matlab by winning 10 games in a row in order to pass this test!\r\n\r\nEach time your function as called it is your turn to make a move. The input of the function is a 5x7 matrix, representing the game board, containing either \"1\" (a chip of your opponent), \"2\" (one of your chips) or \"0\" (an empty space). Calculate your best move and output the column index of your next chip (make sure this column isn't full yet or your turn is lost).\r\n\r\nGood luck!","description_html":"\u003cp\u003eYou are playing the popular game \"Connect 4\" ( \u003ca href = \"https://en.wikipedia.org/wiki/Connect_Four\"\u003ehttps://en.wikipedia.org/wiki/Connect_Four\u003c/a\u003e) against Matlab. Luckily, Matlab isn't trying to hard and just places its chips randomly.\u003c/p\u003e\u003cp\u003eWrite a function which plays the game for you. As starting point you are given the same function which you opponent is using (random placement). But you'll have to do better, because you will have to crush Matlab by winning 10 games in a row in order to pass this test!\u003c/p\u003e\u003cp\u003eEach time your function as called it is your turn to make a move. The input of the function is a 5x7 matrix, representing the game board, containing either \"1\" (a chip of your opponent), \"2\" (one of your chips) or \"0\" (an empty space). Calculate your best move and output the column index of your next chip (make sure this column isn't full yet or your turn is lost).\u003c/p\u003e\u003cp\u003eGood luck!\u003c/p\u003e","function_template":"function c = move(board)\r\n    % - the input board is a 5x7 matrix containing 0,1,2: The elements 0 are\r\n    % empty spaces, 1 are chips of your opponent and 2 are your chipt.\r\n    % - the output c is the column of your next chip, make sure this column\r\n    % has space left for your chip or the turn goes lost!\r\n\r\n    % select random available column\r\n    allC = find(sum(board~=0,1)\u003c5,7); % all not yet full columns\r\n    c = allC(randi(length(allC),1,1)); % random placement\r\nend","test_suite":"%%\r\ngames = 10;\r\nwinners = zeros(games,1);\r\nfor gamenum = 1:games % you play \"games\" different games\r\n    % init the board\r\n    board = zeros(5,7);\r\n    % function finding the index at which the chip will fall in column c\r\n    index = @(c,board) find(board(:,c)==0,1,'last');\r\n    % start the game\r\n    whoWon = 0;\r\n    done = false;\r\n    turn = 1;\r\n    while done == false\r\n        if turn == 1 % you oppenent's turn\r\n            % select random column\r\n            allC = find(sum(board~=0,1)\u003c5,7); % all not full columns\r\n            c = allC(randi(length(allC),1,1)); % random placement\r\n            % place chip in column c\r\n            board(index(c,board),c) = 1;\r\n        else % your turn\r\n            % which column\r\n            c = move(board);\r\n            % place chip in column c\r\n            i = index(c,board); % index\r\n            if ~isempty(i)\r\n                board(i,c) = 2;\r\n            else\r\n                disp('You have selected a full column, your turn goes lost')\r\n            end\r\n        end\r\n\r\n        % check for a 4-in-a-row\r\n        temp = board==turn;\r\n        % gather all possible 4-in-a-row lines\r\n            lines = cell(22,1);\r\n            % horizontal\r\n            for i = 1:5\r\n                lines{i} = temp(i,:)';\r\n            end\r\n            % vertical\r\n            for i = 1:7\r\n                lines{i+5} = temp(:,i);\r\n            end\r\n            % diagonal \\\r\n            lines{13} = diag(temp(2:end,:));\r\n            for i = 1:4\r\n                lines{i+13} = diag(temp(:,i:end));\r\n            end\r\n            % diagonal /\r\n            temp = fliplr(temp);\r\n            lines{18} = diag(temp(2:end,:));\r\n            for i = 1:4\r\n                lines{i+18} = diag(temp(:,i:end));\r\n            end\r\n        for i = 1:length(lines)\r\n            % find the maximum number of the same chips in this row\r\n            temp = diff([0; lines{i}; 0]);\r\n            if max(find(temp==-1,7)-find(temp==1,7))==4\r\n                % game is won!\r\n                whoWon = turn;\r\n                done = true;\r\n            end\r\n        end\r\n        % is the board full without a winner?\r\n        if sum(board==0)==0\r\n            done = true;\r\n        end\r\n        % switch turns\r\n        turn = 3-turn;\r\n    end % end of one game\r\n    winners(gamenum) = whoWon;\r\nend\r\ndisp(['Game results (#won/#lost/#draw): ' num2str(sum(winners==2)) '/' num2str(sum(winners==1)) '/' num2str(sum(winners==0))])\r\n% Did you win all 10 games?\r\nassert(isequal(sum(winners==2),games))","published":true,"deleted":false,"likes_count":5,"comments_count":0,"created_by":94929,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":16,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2016-10-18T09:14:38.000Z","updated_at":"2025-12-12T13:37:07.000Z","published_at":"2016-10-18T09:14:38.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\u003eYou are playing the popular game \\\"Connect 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://en.wikipedia.org/wiki/Connect_Four\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://en.wikipedia.org/wiki/Connect_Four\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026gt;) against Matlab. Luckily, Matlab isn't trying to hard and just places its chips randomly.\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 which plays the game for you. As starting point you are given the same function which you opponent is using (random placement). But you'll have to do better, because you will have to crush Matlab by winning 10 games in a row in order to pass this test!\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\u003eEach time your function as called it is your turn to make a move. The input of the function is a 5x7 matrix, representing the game board, containing either \\\"1\\\" (a chip of your opponent), \\\"2\\\" (one of your chips) or \\\"0\\\" (an empty space). Calculate your best move and output the column index of your next chip (make sure this column isn't full yet or your turn is lost).\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\u003eGood luck!\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":43562,"title":"Mastermind","description":"We are playing the boardgame mastermind \u003chttps://en.wikipedia.org/wiki/Mastermind_(board_game)\u003e. The game master has created a 4-character code for you to guess, with characters ranging from \"1\" to \"6\" (e.g. code = [2 1 3 4]).\r\n\r\nThe first guess (this will be [1 1 2 2]) is already done and the game master has given you following feedback:\r\n\r\n# The number of correct characters in your guess, in this case 1 because character \"1\" at index 2 is correct.\r\n# The number of correct characters, but in a wrong place. In this case 1 because you guessed character \"2\", but it is in the wrong place.\r\n\r\nNow, your function has to do the next guesses. Each time your function is called, the input will contain the code and feedback of all your previous guesses, the output is a copy of the input with your new code added (refer to the example code).\r\n\r\nIt is shown you could solve the code in only 4 additional guesses (refer to the wiki page), you will however get 11 according to the rules of Mastermind.\r\n\r\nGood luck!","description_html":"\u003cp\u003eWe are playing the boardgame mastermind \u003ca href = \"https://en.wikipedia.org/wiki/Mastermind_(board_game)\"\u003ehttps://en.wikipedia.org/wiki/Mastermind_(board_game)\u003c/a\u003e. The game master has created a 4-character code for you to guess, with characters ranging from \"1\" to \"6\" (e.g. code = [2 1 3 4]).\u003c/p\u003e\u003cp\u003eThe first guess (this will be [1 1 2 2]) is already done and the game master has given you following feedback:\u003c/p\u003e\u003col\u003e\u003cli\u003eThe number of correct characters in your guess, in this case 1 because character \"1\" at index 2 is correct.\u003c/li\u003e\u003cli\u003eThe number of correct characters, but in a wrong place. In this case 1 because you guessed character \"2\", but it is in the wrong place.\u003c/li\u003e\u003c/ol\u003e\u003cp\u003eNow, your function has to do the next guesses. Each time your function is called, the input will contain the code and feedback of all your previous guesses, the output is a copy of the input with your new code added (refer to the example code).\u003c/p\u003e\u003cp\u003eIt is shown you could solve the code in only 4 additional guesses (refer to the wiki page), you will however get 11 according to the rules of Mastermind.\u003c/p\u003e\u003cp\u003eGood luck!\u003c/p\u003e","function_template":"function output = mastermind(input)\r\n    %% unpack the input (as example, alter if you like)\r\n    i = length(input);            % number of attempts so far\r\n    previousCode = input(i).code; % the last code you tried (at index i-1 you will find the code before that, etc.)\r\n    rightNumWrongPlace = input(i).rightNumWrongPlace; % the number of right numbers in previous attemp, but which were at the wrong place\r\n    rightNumRightPlace = input(i).rightNumRightPlace; % the number of right numbers in previous attemp at the wright position\r\n    % The user data from previous run (optional):\r\n    % Please use \"if isfield(...\", because your first call the user data\r\n    % will be empty\r\n    if isfield(input(i).userdata,'var2')\r\n        var2 = input(i).userdata.var2;\r\n    end\r\n    \r\n    %% now, based on previous attempts create your next code\r\n    yourCode = [1 1 1 1];\r\n    \r\n    %% alter if you like\r\n    % you can use the field userdata to save variables needed in your next run (optional)\r\n    data.var1 = 1;\r\n    data.var2 = 'lala';\r\n    new.userdata = data; \r\n    \r\n    %% do not alter\r\n    output = input;\r\n    new.code = yourCode;            % your next try\r\n    new.rightNumWrongPlace = [];    % the gamemaster will fill in this field at evaluation for the next attempt\r\n    new.rightNumRightPlace = [];   % the gamemaster will fill in this field at evaluation for the next attempt\r\n    if ~isfield(new,'userdata') % ensure no errors when userdata is not used\r\n        new.userdata = [];\r\n    end\r\n    output(end+1) = new;\r\nend","test_suite":"%%\r\ncode = randi(6,1,4); % the real code to crack\r\n% attempt 1\r\nattempts = [];\r\nattempts(1).code = [1 1 2 2]; % the first attempt\r\n% eval\r\nattempts(1).rightNumRightPlace = sum(code==attempts(1).code);\r\nattempts(1).rightNumWrongPlace = sum(sum(repmat(code',1,4)==repmat(attempts(1).code,4,1),2)\u003e0)-attempts(1).rightNumRightPlace;\r\nattempts(1).userdata = [];\r\n% init\r\nsolved = false;\r\nwhile (length(attempts)\u003c11 \u0026\u0026 ~solved)\r\n    attempts = mastermind(attempts);\r\n    % eval\r\n    attempts(end).rightNumRightPlace = sum(code==attempts(end).code);\r\n    attempts(end).rightNumWrongPlace = sum(sum(repmat(code',1,4)==repmat(attempts(end).code,4,1),2)\u003e0)-attempts(end).rightNumRightPlace;\r\n    if attempts(end).rightNumRightPlace==4\r\n        solved = true;\r\n    end\r\nend\r\nassert(solved)","published":true,"deleted":false,"likes_count":3,"comments_count":2,"created_by":94929,"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":"2016-10-16T09:19:14.000Z","updated_at":"2025-12-12T14:00:01.000Z","published_at":"2016-10-16T09:19:14.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\u003eWe are playing the boardgame mastermind\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://en.wikipedia.org/wiki/Mastermind_(board_game)\\\"\u003e\u003cw:r\u003e\u003cw:t\u003e\u0026lt;https://en.wikipedia.org/wiki/Mastermind_(board_game\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e)\u0026gt;. The game master has created a 4-character code for you to guess, with characters ranging from \\\"1\\\" to \\\"6\\\" (e.g. code = [2 1 3 4]).\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 guess (this will be [1 1 2 2]) is already done and the game master has given you following feedback:\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=\\\"2\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe number of correct characters in your guess, in this case 1 because character \\\"1\\\" at index 2 is correct.\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=\\\"2\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe number of correct characters, but in a wrong place. In this case 1 because you guessed character \\\"2\\\", but it is in the wrong place.\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, your function has to do the next guesses. Each time your function is called, the input will contain the code and feedback of all your previous guesses, the output is a copy of the input with your new code added (refer to the example code).\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\u003eIt is shown you could solve the code in only 4 additional guesses (refer to the wiki page), you will however get 11 according to the rules of Mastermind.\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\u003eGood luck!\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:\"boardgame\"","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:\"boardgame\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"boardgame\"","","\"","boardgame","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f6cb16fe120\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f6cb16fe080\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f6cb16fd5e0\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f6cb16fe3a0\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f6cb16fe300\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f6cb16fe260\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f6cb16fe1c0\u003e":"tag:\"boardgame\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f6cb16fe1c0\u003e":"tag:\"boardgame\""},"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":"cody-search","password":"78X075ddcV44","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:\"boardgame\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"boardgame\"","","\"","boardgame","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f6cb16fe120\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f6cb16fe080\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f6cb16fd5e0\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f6cb16fe3a0\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f6cb16fe300\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f6cb16fe260\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f6cb16fe1c0\u003e":"tag:\"boardgame\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f6cb16fe1c0\u003e":"tag:\"boardgame\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":43574,"difficulty_rating":"medium"},{"id":43562,"difficulty_rating":"medium-hard"}]}}