{"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":1003,"title":"Make a KITT-scanner on the command line","description":"Did you know that you can actually remove characters from the command-line window? Just send a 'backspace' character to the output, e.g. with |fprintf(char(8));| (ASCII code 8 is a backspace), and the last character is removed. \r\nThis way, you can write a line, and remove it afterwards, by sending as many backspace characters as the line was long. However, you only move the cursor back, so when you want to clear a line, you have to move first the cursor to its beginning, then overwrite the line with blanks (spaces, ' '), and then move the cursor back once more. E.g. with   \r\n\r\n fprintf(repmat([char(8) ' ' char(8)],lenght_of_last_line,1));\r\n\r\nYour task is to program a KITT-scanner (the red sweeping light in front of the black car in the TV-series Knight Rider) on the command line. The bar has a width specified by the first parameter L of the function. \r\nThe characters which the bar is made of are specified in the 2nd parameter, S, of the function. The first character of S is the actual light. The last character is 'background', and the tail of the light is defined by the characters in between. For example \r\n\r\n kitt(10,'#=~-')\r\n\r\ntells it to show up as\r\n\r\n '#=~-------'\r\n\r\nIt starts with the light on the left, tail to the right, and the light moving to the right in the next step. So,\r\n\r\n '=#--------'\r\n\r\nfollowed by \r\n\r\n '~=#-------'\r\n\r\nand \r\n\r\n '-~=#------'\r\n\r\nand so on.\r\nYou see, the headlight supersedes the tail, when the head and tail overlap. Otherwise, the characters just show up with in the order defined in S.\r\nThe 'frame rate' of the scanner should be 1/2 Hz, or one sweep back and forth in 2 seconds, but this can not be checked by Cody. But you are encouraged to watch the result on your own screen.\r\nTo check your code, the function should output a character array with the full sequence, until the first step is repeated, with every row a step in the sequence (including the repeated last step). \r\nAnd off course, try to avoid just hard-coding the result. ","description_html":"\u003cp\u003eDid you know that you can actually remove characters from the command-line window? Just send a 'backspace' character to the output, e.g. with \u003ctt\u003efprintf(char(8));\u003c/tt\u003e (ASCII code 8 is a backspace), and the last character is removed. \r\nThis way, you can write a line, and remove it afterwards, by sending as many backspace characters as the line was long. However, you only move the cursor back, so when you want to clear a line, you have to move first the cursor to its beginning, then overwrite the line with blanks (spaces, ' '), and then move the cursor back once more. E.g. with\u003c/p\u003e\u003cpre\u003e fprintf(repmat([char(8) ' ' char(8)],lenght_of_last_line,1));\u003c/pre\u003e\u003cp\u003eYour task is to program a KITT-scanner (the red sweeping light in front of the black car in the TV-series Knight Rider) on the command line. The bar has a width specified by the first parameter L of the function. \r\nThe characters which the bar is made of are specified in the 2nd parameter, S, of the function. The first character of S is the actual light. The last character is 'background', and the tail of the light is defined by the characters in between. For example\u003c/p\u003e\u003cpre\u003e kitt(10,'#=~-')\u003c/pre\u003e\u003cp\u003etells it to show up as\u003c/p\u003e\u003cpre\u003e '#=~-------'\u003c/pre\u003e\u003cp\u003eIt starts with the light on the left, tail to the right, and the light moving to the right in the next step. So,\u003c/p\u003e\u003cpre\u003e '=#--------'\u003c/pre\u003e\u003cp\u003efollowed by\u003c/p\u003e\u003cpre\u003e '~=#-------'\u003c/pre\u003e\u003cp\u003eand\u003c/p\u003e\u003cpre\u003e '-~=#------'\u003c/pre\u003e\u003cp\u003eand so on.\r\nYou see, the headlight supersedes the tail, when the head and tail overlap. Otherwise, the characters just show up with in the order defined in S.\r\nThe 'frame rate' of the scanner should be 1/2 Hz, or one sweep back and forth in 2 seconds, but this can not be checked by Cody. But you are encouraged to watch the result on your own screen.\r\nTo check your code, the function should output a character array with the full sequence, until the first step is repeated, with every row a step in the sequence (including the repeated last step). \r\nAnd off course, try to avoid just hard-coding the result.\u003c/p\u003e","function_template":"function scanner = kitt(l,s)\r\n  scanner = [s repmat(s(end),1,l-length(s))];\r\n  fprintf(scanner);\r\n  pause(2000/l);\r\n  fprintf(repmat([char(8) ' ' char(8)],1,l));\r\nend","test_suite":"%%\r\nl = 5;\r\ns = '#=~-';\r\ny_correct = strvcat({\r\n   '#=~--'\r\n   '=#---'\r\n   '~=#--'\r\n   '-~=#-'\r\n   '--~=#'\r\n   '---#='\r\n   '--#=~'\r\n   '-#=~-'\r\n   '#=~--'\r\n});\r\nassert(isequal(kitt(l,s),y_correct))\r\n\r\n%%\r\nl = 2;\r\ns = '*';\r\ny_correct = strvcat({\r\n   '**'\r\n   '**'\r\n});\r\nassert(isequal(kitt(l,s),y_correct))\r\n\r\n%%\r\nl = 5;\r\ns = '@ ';\r\ny_correct = strvcat({\r\n   '@    '\r\n   ' @   '\r\n   '  @  '\r\n   '   @ '\r\n   '    @'\r\n   '   @ '\r\n   '  @  '\r\n   ' @   '\r\n   '@    '\r\n});\r\nassert(isequal(kitt(l,s),y_correct))\r\n\r\n%%\r\nl = 6;\r\ns = '@\u003e\u003e*=~ ';\r\ny_correct = strvcat({\r\n   '@\u003e\u003e*=~'\r\n   '\u003e@*=~ '\r\n   '\u003e\u003e@~  '\r\n   '*\u003e\u003e@  '\r\n   '=*\u003e\u003e@ '\r\n   '~=*\u003e\u003e@'\r\n   ' ~=*@\u003e'\r\n   '  ~@\u003e\u003e'\r\n   '  @\u003e\u003e*'\r\n   ' @\u003e\u003e*='\r\n   '@\u003e\u003e*=~'\r\n});\r\nassert(isequal(kitt(l,s),y_correct))\r\n\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":2,"created_by":6556,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":7,"test_suite_updated_at":"2012-10-30T08:09:52.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2012-10-19T05:48:39.000Z","updated_at":"2025-11-21T11:17:59.000Z","published_at":"2012-10-19T05:52:44.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\u003eDid you know that you can actually remove characters from the command-line window? Just send a 'backspace' character to the output, e.g. with\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:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003efprintf(char(8));\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e (ASCII code 8 is a backspace), and the last character is removed. This way, you can write a line, and remove it afterwards, by sending as many backspace characters as the line was long. However, you only move the cursor back, so when you want to clear a line, you have to move first the cursor to its beginning, then overwrite the line with blanks (spaces, ' '), and then move the cursor back once more. E.g. with\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[ fprintf(repmat([char(8) ' ' char(8)],lenght_of_last_line,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\u003eYour task is to program a KITT-scanner (the red sweeping light in front of the black car in the TV-series Knight Rider) on the command line. The bar has a width specified by the first parameter L of the function. The characters which the bar is made of are specified in the 2nd parameter, S, of the function. The first character of S is the actual light. The last character is 'background', and the tail of the light is defined by the characters in between. For example\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[ kitt(10,'#=~-')]]\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\u003etells it to show up as\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[ '#=~-------']]\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\u003eIt starts with the light on the left, tail to the right, and the light moving to the right in the next step. So,\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[ '=#--------']]\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\u003efollowed by\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[ '~=#-------']]\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\u003eand\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[ '-~=#------']]\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\u003eand so on. You see, the headlight supersedes the tail, when the head and tail overlap. Otherwise, the characters just show up with in the order defined in S. The 'frame rate' of the scanner should be 1/2 Hz, or one sweep back and forth in 2 seconds, but this can not be checked by Cody. But you are encouraged to watch the result on your own screen. To check your code, the function should output a character array with the full sequence, until the first step is repeated, with every row a step in the sequence (including the repeated last step). And off course, try to avoid just hard-coding the result.\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":1003,"title":"Make a KITT-scanner on the command line","description":"Did you know that you can actually remove characters from the command-line window? Just send a 'backspace' character to the output, e.g. with |fprintf(char(8));| (ASCII code 8 is a backspace), and the last character is removed. \r\nThis way, you can write a line, and remove it afterwards, by sending as many backspace characters as the line was long. However, you only move the cursor back, so when you want to clear a line, you have to move first the cursor to its beginning, then overwrite the line with blanks (spaces, ' '), and then move the cursor back once more. E.g. with   \r\n\r\n fprintf(repmat([char(8) ' ' char(8)],lenght_of_last_line,1));\r\n\r\nYour task is to program a KITT-scanner (the red sweeping light in front of the black car in the TV-series Knight Rider) on the command line. The bar has a width specified by the first parameter L of the function. \r\nThe characters which the bar is made of are specified in the 2nd parameter, S, of the function. The first character of S is the actual light. The last character is 'background', and the tail of the light is defined by the characters in between. For example \r\n\r\n kitt(10,'#=~-')\r\n\r\ntells it to show up as\r\n\r\n '#=~-------'\r\n\r\nIt starts with the light on the left, tail to the right, and the light moving to the right in the next step. So,\r\n\r\n '=#--------'\r\n\r\nfollowed by \r\n\r\n '~=#-------'\r\n\r\nand \r\n\r\n '-~=#------'\r\n\r\nand so on.\r\nYou see, the headlight supersedes the tail, when the head and tail overlap. Otherwise, the characters just show up with in the order defined in S.\r\nThe 'frame rate' of the scanner should be 1/2 Hz, or one sweep back and forth in 2 seconds, but this can not be checked by Cody. But you are encouraged to watch the result on your own screen.\r\nTo check your code, the function should output a character array with the full sequence, until the first step is repeated, with every row a step in the sequence (including the repeated last step). \r\nAnd off course, try to avoid just hard-coding the result. ","description_html":"\u003cp\u003eDid you know that you can actually remove characters from the command-line window? Just send a 'backspace' character to the output, e.g. with \u003ctt\u003efprintf(char(8));\u003c/tt\u003e (ASCII code 8 is a backspace), and the last character is removed. \r\nThis way, you can write a line, and remove it afterwards, by sending as many backspace characters as the line was long. However, you only move the cursor back, so when you want to clear a line, you have to move first the cursor to its beginning, then overwrite the line with blanks (spaces, ' '), and then move the cursor back once more. E.g. with\u003c/p\u003e\u003cpre\u003e fprintf(repmat([char(8) ' ' char(8)],lenght_of_last_line,1));\u003c/pre\u003e\u003cp\u003eYour task is to program a KITT-scanner (the red sweeping light in front of the black car in the TV-series Knight Rider) on the command line. The bar has a width specified by the first parameter L of the function. \r\nThe characters which the bar is made of are specified in the 2nd parameter, S, of the function. The first character of S is the actual light. The last character is 'background', and the tail of the light is defined by the characters in between. For example\u003c/p\u003e\u003cpre\u003e kitt(10,'#=~-')\u003c/pre\u003e\u003cp\u003etells it to show up as\u003c/p\u003e\u003cpre\u003e '#=~-------'\u003c/pre\u003e\u003cp\u003eIt starts with the light on the left, tail to the right, and the light moving to the right in the next step. So,\u003c/p\u003e\u003cpre\u003e '=#--------'\u003c/pre\u003e\u003cp\u003efollowed by\u003c/p\u003e\u003cpre\u003e '~=#-------'\u003c/pre\u003e\u003cp\u003eand\u003c/p\u003e\u003cpre\u003e '-~=#------'\u003c/pre\u003e\u003cp\u003eand so on.\r\nYou see, the headlight supersedes the tail, when the head and tail overlap. Otherwise, the characters just show up with in the order defined in S.\r\nThe 'frame rate' of the scanner should be 1/2 Hz, or one sweep back and forth in 2 seconds, but this can not be checked by Cody. But you are encouraged to watch the result on your own screen.\r\nTo check your code, the function should output a character array with the full sequence, until the first step is repeated, with every row a step in the sequence (including the repeated last step). \r\nAnd off course, try to avoid just hard-coding the result.\u003c/p\u003e","function_template":"function scanner = kitt(l,s)\r\n  scanner = [s repmat(s(end),1,l-length(s))];\r\n  fprintf(scanner);\r\n  pause(2000/l);\r\n  fprintf(repmat([char(8) ' ' char(8)],1,l));\r\nend","test_suite":"%%\r\nl = 5;\r\ns = '#=~-';\r\ny_correct = strvcat({\r\n   '#=~--'\r\n   '=#---'\r\n   '~=#--'\r\n   '-~=#-'\r\n   '--~=#'\r\n   '---#='\r\n   '--#=~'\r\n   '-#=~-'\r\n   '#=~--'\r\n});\r\nassert(isequal(kitt(l,s),y_correct))\r\n\r\n%%\r\nl = 2;\r\ns = '*';\r\ny_correct = strvcat({\r\n   '**'\r\n   '**'\r\n});\r\nassert(isequal(kitt(l,s),y_correct))\r\n\r\n%%\r\nl = 5;\r\ns = '@ ';\r\ny_correct = strvcat({\r\n   '@    '\r\n   ' @   '\r\n   '  @  '\r\n   '   @ '\r\n   '    @'\r\n   '   @ '\r\n   '  @  '\r\n   ' @   '\r\n   '@    '\r\n});\r\nassert(isequal(kitt(l,s),y_correct))\r\n\r\n%%\r\nl = 6;\r\ns = '@\u003e\u003e*=~ ';\r\ny_correct = strvcat({\r\n   '@\u003e\u003e*=~'\r\n   '\u003e@*=~ '\r\n   '\u003e\u003e@~  '\r\n   '*\u003e\u003e@  '\r\n   '=*\u003e\u003e@ '\r\n   '~=*\u003e\u003e@'\r\n   ' ~=*@\u003e'\r\n   '  ~@\u003e\u003e'\r\n   '  @\u003e\u003e*'\r\n   ' @\u003e\u003e*='\r\n   '@\u003e\u003e*=~'\r\n});\r\nassert(isequal(kitt(l,s),y_correct))\r\n\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":2,"created_by":6556,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":7,"test_suite_updated_at":"2012-10-30T08:09:52.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2012-10-19T05:48:39.000Z","updated_at":"2025-11-21T11:17:59.000Z","published_at":"2012-10-19T05:52:44.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\u003eDid you know that you can actually remove characters from the command-line window? Just send a 'backspace' character to the output, e.g. with\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:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003efprintf(char(8));\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e (ASCII code 8 is a backspace), and the last character is removed. This way, you can write a line, and remove it afterwards, by sending as many backspace characters as the line was long. However, you only move the cursor back, so when you want to clear a line, you have to move first the cursor to its beginning, then overwrite the line with blanks (spaces, ' '), and then move the cursor back once more. E.g. with\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[ fprintf(repmat([char(8) ' ' char(8)],lenght_of_last_line,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\u003eYour task is to program a KITT-scanner (the red sweeping light in front of the black car in the TV-series Knight Rider) on the command line. The bar has a width specified by the first parameter L of the function. The characters which the bar is made of are specified in the 2nd parameter, S, of the function. The first character of S is the actual light. The last character is 'background', and the tail of the light is defined by the characters in between. For example\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[ kitt(10,'#=~-')]]\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\u003etells it to show up as\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[ '#=~-------']]\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\u003eIt starts with the light on the left, tail to the right, and the light moving to the right in the next step. So,\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[ '=#--------']]\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\u003efollowed by\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[ '~=#-------']]\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\u003eand\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[ '-~=#------']]\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\u003eand so on. You see, the headlight supersedes the tail, when the head and tail overlap. Otherwise, the characters just show up with in the order defined in S. The 'frame rate' of the scanner should be 1/2 Hz, or one sweep back and forth in 2 seconds, but this can not be checked by Cody. But you are encouraged to watch the result on your own screen. To check your code, the function should output a character array with the full sequence, until the first step is repeated, with every row a step in the sequence (including the repeated last step). And off course, try to avoid just hard-coding the result.\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:\"backspace\"","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:\"backspace\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"backspace\"","","\"","backspace","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f4a00203d60\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f4a00203cc0\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f4a00203400\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f4a00203fe0\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f4a00203f40\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f4a00203ea0\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f4a00203e00\u003e":"tag:\"backspace\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f4a00203e00\u003e":"tag:\"backspace\""},"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:\"backspace\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"backspace\"","","\"","backspace","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f4a00203d60\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f4a00203cc0\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f4a00203400\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f4a00203fe0\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f4a00203f40\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f4a00203ea0\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f4a00203e00\u003e":"tag:\"backspace\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f4a00203e00\u003e":"tag:\"backspace\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":1003,"difficulty_rating":"medium"}]}}