diff --git a/ProjectCar/ProjectCar/MovementStrategy/MoveToBorder.cs b/ProjectCar/ProjectCar/MovementStrategy/MoveToBorder.cs
new file mode 100644
index 0000000..88926fb
--- /dev/null
+++ b/ProjectCar/ProjectCar/MovementStrategy/MoveToBorder.cs
@@ -0,0 +1,52 @@
+namespace ProjectGasMachine.MovementStrategy;
+///
+/// Стратегия перемещения объекта к краю
+///
+public class MoveToBorder : AbstractStrategy
+{
+ protected override bool IsTargetDestinaion()
+ {
+ ObjectParameters? objParams = GetObjectParameters;
+ if (objParams == null)
+ {
+ return false;
+ }
+ return objParams.RightBorder - GetStep() <= FieldWidth && objParams.RightBorder + GetStep() >= FieldWidth &&
+ objParams.DownBorder - GetStep() <= FieldHeight && objParams.DownBorder + GetStep() >= FieldHeight;
+ }
+
+ protected override void MoveToTarget()
+ {
+ ObjectParameters? objParams = GetObjectParameters;
+ if (objParams == null)
+ {
+ return;
+ }
+
+ int diffX = objParams.RightBorder - FieldWidth;
+ if (Math.Abs(diffX) > GetStep())
+ {
+ if (diffX > 0)
+ {
+ MoveLeft();
+ }
+ else
+ {
+ MoveRight();
+ }
+ }
+
+ int diffY = objParams.DownBorder - FieldHeight;
+ if (Math.Abs(diffY) > GetStep())
+ {
+ if (diffY > 0)
+ {
+ MoveUp();
+ }
+ else
+ {
+ MoveDown();
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/ProjectCar/ProjectCar/MovementStrategy/MoveToCenter.cs b/ProjectCar/ProjectCar/MovementStrategy/MoveToCenter.cs
new file mode 100644
index 0000000..b23e939
--- /dev/null
+++ b/ProjectCar/ProjectCar/MovementStrategy/MoveToCenter.cs
@@ -0,0 +1,48 @@
+namespace ProjectGasMachine.MovementStrategy;
+
+internal class MoveToCenter : AbstractStrategy
+{
+ protected override bool IsTargetDestinaion()
+ {
+ ObjectParameters? objParams = GetObjectParameters;
+ if (objParams == null)
+ {
+ return false;
+ }
+ return objParams.ObjectMiddleHorizontal - GetStep() <= FieldWidth / 2 && objParams.ObjectMiddleHorizontal + GetStep() >= FieldWidth / 2 &&
+ objParams.ObjectMiddleVertical - GetStep() <= FieldHeight / 2 && objParams.ObjectMiddleVertical + GetStep() >= FieldHeight / 2;
+ }
+
+ protected override void MoveToTarget()
+ {
+ ObjectParameters? objParams = GetObjectParameters;
+ if (objParams == null)
+ {
+ return;
+ }
+ int diffX = objParams.ObjectMiddleHorizontal - FieldWidth / 2;
+ if (Math.Abs(diffX) > GetStep())
+ {
+ if (diffX > 0)
+ {
+ MoveLeft();
+ }
+ else
+ {
+ MoveRight();
+ }
+ }
+ int diffY = objParams.ObjectMiddleVertical - FieldHeight / 2;
+ if (Math.Abs(diffY) > GetStep())
+ {
+ if (diffY > 0)
+ {
+ MoveUp();
+ }
+ else
+ {
+ MoveDown();
+ }
+ }
+ }
+}
diff --git a/ProjectCar/ProjectCar/MovementStrategy/MoveableMachine.cs b/ProjectCar/ProjectCar/MovementStrategy/MoveableMachine.cs
index 50e6c0e..5c18839 100644
--- a/ProjectCar/ProjectCar/MovementStrategy/MoveableMachine.cs
+++ b/ProjectCar/ProjectCar/MovementStrategy/MoveableMachine.cs
@@ -53,8 +53,8 @@ public class MoveableMachine : IMoveableObjects
///
/// конвертация из MovementDirection в DirectionType
///
- ///
- ///
+ /// MovementDirection
+ /// DirectionType
private static DirectionType GetDirectionType(MovementDirection direction)
{
return direction switch