private IRobot RobotActivate(/*RobotInitParameters command*/ string coordinates, IGrid <CoordinateBase, DirectionBase> grid) { var position = coordinates.Split(' '); int x = 0, y = 0; DirectionBase direction = null; if (position.Count() != 3 || !Int32.TryParse(position[0], out x) || !Int32.TryParse(position[1], out y)) { return(null); } switch (position[2]) { case "N": direction = new _2DDirection(0); break; case "S": direction = new _2DDirection(180); break; case "E": direction = new _2DDirection(90); break; case "W": direction = new _2DDirection(270); break; default: return(null); } return(grid.AcquireRobot(new _2DCoordinate(x, y), direction)); }