/// <summary> /// Метод поворачивающий визуального робота в указанном направлении /// </summary> /// <param name="robot">робот, которого нужно повернуть</param> /// <param name="route">направление поворота</param> public void RotationRobot(Path robot, RouteMove route) { switch (route) { case RouteMove.Right: Rotate(robot, 0); break; case RouteMove.Bottom: Rotate(robot, 90); break; case RouteMove.Left: Rotate(robot, 180); break; case RouteMove.Top: Rotate(robot, 270); break; default: throw new ArgumentOutOfRangeException(nameof(route), route, null); } }
/// <summary> /// Конструктор по умолчанию /// </summary> /// <param name="robot">робот, которому нужно задать направление</param> /// <param name="routeRobot">направление движения робота (направо, налево)</param> public RotationRobotCommand(Robot robot, RouteMove routeRobot) { Robot = robot; _routeRobot = routeRobot; Execute = UpdateRoute; }
/// <summary> /// Метод для изменения направления движения робота и вызова обработчика события изменения направления робота /// </summary> /// <param name="robot">робот</param> /// <param name="route">направление</param> private void Update(Robot robot, RouteMove route) => robot.RouteMove = route;
/// <summary> /// Конструктор по умолчанию /// </summary> /// <param name="row">начальное положение робота(индекс строки)</param> /// <param name="column">начальное положение робота(индекс столбца)</param> public Robot(int row, int column, RouteMove route) { Row = row; Column = column; RouteMove = route; }