public override (Position.Position position, IState state, bool isMatched) GetPositionAndState(ICommand command) { if (command.GetType().Name == nameof(Place) && command.Position.Location.Y >= 0 && command.Position.Location.X >= 0 && command.Position.Location.Y <= Robot.Table.Height && command.Position.Location.X <= Robot.Table.Width) { return(command.Position, StateFactory.CreatePlaced(Robot), true); } return(Calculator.GetPositionAndState(command)); }