README
===========================该文件是ThoughtWorks 公司软件开发工程师招聘作业说明**** |Author|张洋恺||---|---|E-mail|henryxlink@163.com****##目录* [思路简述](#1)* [变量、函数、自定义类说明](#2) * [变量说明](#2.1) * [函数说明](#2.2) * [自定义类说明](#2.3)* [测试用例](#3) * [testMaze()](#3.1) * [testDraw()](#3.2) * [testExcute()](#3.3)- 思路简述根据题意,建立char[][]来模拟迷宫,初始元素均为'W',代表墙(Wall),在后续连接道路环节将其替换为'R',代表道路(Road)。___- 变量、函数、自定义类等说明 + 变量说明 * **firstLength**firstLength为第一行输入的数字个数,需要严格要求按照"数字、空格、数字"的格式输入,存在其余格式将会引发相应异常,数字范围出错也会引起相应异常。 * **linkLength**linkLength为第二行输入内容,按照";"拆分后独立的命令长度,需要严格按照"数字、逗号、数字"格式输入,不同组命令间需要用";"隔开,其余格式会引发相应异常,数字范围出错也会引起相应异常。 + 函数说明 * **public void setMaze(int row, int column)**该函数需要两个为参数,会生成初始迷宫,其中maze.length()为row*2+1,maze[0].length()为column*2+1; * **private void printMaze()**该函数为迷宫打印函数。 * **public void drawRoad (String command)**该函数接受一行String类型指令为参数,负责将command处理为两组坐标,并将其连接起来,要求该String类型参数严格符合linkLength规定,否则会引起相应异常。 * **public void execute(String command1,String command2)**该函数接受两个参数,分别为迷宫尺寸的原始初始参数和坐标组参数,内部调用setMaze()和drawRoad()完成迷宫绘制。 * **public static void main(String[] args)**该函数为主函数,可以在此验证作业的正确性。 + 自定义类说明 * **IncorrectFormatException**输入格式异常,捕获输入指令不符合规则时的错误,会输出"Incorrect command format." * **OutRangeException**数字范围异常,捕获数字范围出错,如坐标超出迷宫范围或者坐标为负数等错误,会输出"Number out of range." * **MazeFormatException**迷宫连接异常,捕获坐标间不可联通的错误,会输出"Maze format error." * **NumberFormatException(此为原生异常)**数字转化异常,捕获字符和数字转化时的异常,会输出"Invalid number format."___* 测试用例测试两组实例,初始化块内分别实例化了3*3的迷宫(maze33)和5*7的迷宫(maze57)。 + testMaze()测试maze33的初始化迷宫是否exceptChar33相同。exceptChar33:{{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','W','W','W','W','W','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','R','W','R','W','R','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','W','W','W','W','W','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','R','W','R','W','R','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','W','W','W','W','W','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','R','W','R','W','R','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','W','W','W','W','W','W'}}测试maze57的初始化迷宫是否和exceptChar57相同。exceptChar57:{{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','W','W','W','W','W','W','W','W','W','W','W','W','W','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','R','W','R','W','R','W','R','W','R','W','R','W','R','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','W','W','W','W','W','W','W','W','W','W','W','W','W','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','R','W','R','W','R','W','R','W','R','W','R','W','R','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','W','W','W','W','W','W','W','W','W','W','W','W','W','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','R','W','R','W','R','W','R','W','R','W','R','W','R','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','W','W','W','W','W','W','W','W','W','W','W','W','W','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','R','W','R','W','R','W','R','W','R','W','R','W','R','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','W','W','W','W','W','W','W','W','W','W','W','W','W','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','R','W','R','W','R','W','R','W','R','W','R','W','R','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','W','W','W','W','W','W','W','W','W','W','W','W','W','W'}} + testDraw()分别为两组迷宫各自测试两组道路连通:maze33连通(1,0) 和 (1,2) 符合exceptRoad33_1exceptRoad33_1:{{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','W','W','W','W','W','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','R','W','R','W','R','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','W','W','W','W','W','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','R','R','R','R','R','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','W','W','W','W','W','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','R','W','R','W','R','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','W','W','W','W','W','W'}}maze33连通(0,0) 和 (2,0) 符合 exceptRoad33_2exceptRoad33_2:{{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','W','W','W','W','W','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','R','W','R','W','R','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','R','W','W','W','W','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','R','R','R','R','R','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','R','W','W','W','W','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','R','W','R','W','R','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','W','W','W','W','W','W'}}maze57连通(0,1) 和 (0,4) 符合 exceptRoad57_1exceptRoad57_1:{{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','W','W','W','W','W','W','W','W','W','W','W','W','W','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','R','W','R','R','R','R','R','R','R','W','R','W','R','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','W','W','W','W','W','W','W','W','W','W','W','W','W','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','R','W','R','W','R','W','R','W','R','W','R','W','R','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','W','W','W','W','W','W','W','W','W','W','W','W','W','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','R','W','R','W','R','W','R','W','R','W','R','W','R','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','W','W','W','W','W','W','W','W','W','W','W','W','W','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','R','W','R','W','R','W','R','W','R','W','R','W','R','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','W','W','W','W','W','W','W','W','W','W','W','W','W','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','R','W','R','W','R','W','R','W','R','W','R','W','R','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','W','W','W','W','W','W','W','W','W','W','W','W','W','W'}}maze57连通(1,3) 和 (4,3) 符合 exceptRoad57_2exceptRoad57_2:{{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','W','W','W','W','W','W','W','W','W','W','W','W','W','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','R','W','R','R','R','R','R','R','R','W','R','W','R','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','W','W','W','W','W','W','W','W','W','W','W','W','W','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','R','W','R','W','R','W','R','W','R','W','R','W','R','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','W','W','W','W','W','W','R','W','W','W','W','W','W','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','R','W','R','W','R','W','R','W','R','W','R','W','R','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','W','W','W','W','W','W','R','W','W','W','W','W','W','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','R','W','R','W','R','W','R','W','R','W','R','W','R','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','W','W','W','W','W','W','R','W','W','W','W','W','W','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','R','W','R','W','R','W','R','W','R','W','R','W','R','W'},{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W'{'W','W','W','W','W','W','W','W','W','W','W','W','W','W','W'}} + testExcute()作业所给的测试用例,**Input:**3 30,1 0,2;0,0 1,0;0,1 1,1;0,2 1,2;1,0 1,1;1,1 1,2;1,1 2,1;1,2 2,2;2,0 2,1**Output:**[W][W][W][W][W][W][W][W][R][W][R][R][R][W][W][R][W][R][W][R][W][W][R][R][R][R][R][W][W][W][W][R][W][R][W][W][R][R][R][W][R][W] [W] [W] [W] [W] [W] [W] [W]
网友评论