Правки 2лаб

This commit is contained in:
platoff aeeee 2023-10-10 23:57:24 +04:00
parent a52eb31b45
commit 083ffec901
13 changed files with 11 additions and 35 deletions

View File

@ -6,27 +6,16 @@ using System.Threading.Tasks;
namespace Tank.MovementStrategy namespace Tank.MovementStrategy
{ {
/// <summary>
/// Класс-стратегия перемещения объекта /// Класс-стратегия перемещения объекта
/// </summary>
public abstract class AbstractStrategy public abstract class AbstractStrategy
{ {
/// <summary>
/// Перемещаемый объект /// Перемещаемый объект
/// </summary>
private IMoveableObject? _moveableObject; private IMoveableObject? _moveableObject;
/// <summary>
/// Статус перемещения /// Статус перемещения
/// </summary>
private Status _state = Status.NotInit; private Status _state = Status.NotInit;
/// <summary>
/// Ширина поля /// Ширина поля
/// </summary>
protected int FieldWidth { get; private set; } protected int FieldWidth { get; private set; }
/// <summary>
/// Высота поля /// Высота поля
/// </summary>
protected int FieldHeight { get; private set; } protected int FieldHeight { get; private set; }
/// <summary> /// <summary>
/// Статус перемещения /// Статус перемещения

View File

@ -6,27 +6,12 @@ using System.Threading.Tasks;
namespace Tank namespace Tank
{ {
/// <summary>
/// Направление перемещения /// Направление перемещения
/// </summary>
public enum Direction public enum Direction
{ {
/// <summary>
/// Вверх
///
/// </summary>
Up = 1, Up = 1,
/// <summary>
/// Вниз
/// </summary>
Down = 2, Down = 2,
/// <summary>
/// Влево
/// </summary>
Left = 3, Left = 3,
/// <summary>
/// Вправо
/// </summary>
Right = 4 Right = 4
} }
} }

View File

@ -21,6 +21,7 @@ namespace Tank.DrawingObjects
public int GetWidth => _ArmoredcarWidth; public int GetWidth => _ArmoredcarWidth;
/// Высота объекта /// Высота объекта
public int GetHeight => _ArmoredcarHeight; public int GetHeight => _ArmoredcarHeight;
/// Ширина окна /// Ширина окна
private int _pictureWidth; private int _pictureWidth;
/// Высота окна /// Высота окна

View File

@ -7,8 +7,7 @@ using Tank.DrawingObjects;
namespace Tank.MovementStrategy namespace Tank.MovementStrategy
{ {
/// Реализация интерфейса IDrawningObject для работы с объектом DrawningCar /// Реализация интерфейса IDrawningObject для работы с объектом DrawningCar (паттерн Adapter)
/// (паттерн Adapter)
public class DrawningObjectArmoredCar : IMoveableObject public class DrawningObjectArmoredCar : IMoveableObject
{ {
private readonly DrawingArmoredCar? _drawningArmoredCar = null; private readonly DrawingArmoredCar? _drawningArmoredCar = null;

View File

@ -77,7 +77,7 @@ namespace Tank.DrawingObjects
g.FillEllipse(brBlack, _startPosX + 55, _startPosY + 32, 10, 10); g.FillEllipse(brBlack, _startPosX + 55, _startPosY + 32, 10, 10);
g.FillEllipse(brBlack, _startPosX + 75, _startPosY + 32, 10, 10); g.FillEllipse(brBlack, _startPosX + 75, _startPosY + 32, 10, 10);
//кузов //кузов
Brush br = new SolidBrush(ArmoredCar.BodyColor); Brush br = new SolidBrush(ArmoredCar.BodyColor);
g.FillRectangle(br, _startPosX + 5, _startPosY + 17, 110, 18); g.FillRectangle(br, _startPosX + 5, _startPosY + 17, 110, 18);
g.FillRectangle(br, _startPosX + 30, _startPosY, 50, 15); g.FillRectangle(br, _startPosX + 30, _startPosY, 50, 15);
@ -162,9 +162,7 @@ namespace Tank.DrawingObjects
//} //}
///// <summary> ///// <summary>
/// <summary>
/// Прорисовка объекта /// Прорисовка объекта
/// </summary>
/// <param name="g"></param> /// <param name="g"></param>
//public void DrawTransport(Graphics g) //public void DrawTransport(Graphics g)
//{ //{

View File

@ -28,5 +28,6 @@ namespace Tank.Entites
BodyColor = bodyColor; BodyColor = bodyColor;
} }
} }
} }

View File

@ -22,7 +22,7 @@ namespace Tank.Entites
public bool Trunk { get; private set; } public bool Trunk { get; private set; }
// Признак (опция) наличия гоночной полосы // Признак (опция) наличия гоночной полосы
public bool SportLine { get; private set; } public bool SportLine { get; private set; }
// Шаг перемещения танка /// Шаг перемещения танка
// public double Step => (double)Speed * 200 / Weight; // public double Step => (double)Speed * 200 / Weight;
/// Инициализация полей объекта-класса спортивного автомобиля /// Инициализация полей объекта-класса спортивного автомобиля
/// <param name="speed">Скорость</param> /// <param name="speed">Скорость</param>

View File

@ -115,7 +115,7 @@ namespace Tank
_ => null, _ => null,
}; };
if (_abstractStrategy == null) if (_abstractStrategy == null)
{ {
return; return;
} }
_abstractStrategy.SetData(new _abstractStrategy.SetData(new

View File

@ -18,5 +18,6 @@ namespace Tank.MovementStrategy
bool CheckCanMove(Direction direction); bool CheckCanMove(Direction direction);
/// Изменение направления пермещения объекта /// Изменение направления пермещения объекта
void MoveObject(Direction direction); void MoveObject(Direction direction);
} }
} }

View File

@ -18,6 +18,7 @@ namespace Tank.MovementStrategy
} }
return objParams.RightBorder + GetStep() >= FieldWidth && objParams.DownBorder + GetStep() >= FieldHeight; return objParams.RightBorder + GetStep() >= FieldWidth && objParams.DownBorder + GetStep() >= FieldHeight;
} }
protected override void MoveToTarget() protected override void MoveToTarget()
{ {
var objParams = GetObjectParameters; var objParams = GetObjectParameters;

View File

@ -7,6 +7,7 @@ using System.Threading.Tasks;
namespace Tank.MovementStrategy namespace Tank.MovementStrategy
{ {
/// Стратегия перемещения объекта в центр экрана /// Стратегия перемещения объекта в центр экрана
public class MoveToCenter : AbstractStrategy public class MoveToCenter : AbstractStrategy
{ {
protected override bool IsTargetDestinaion() protected override bool IsTargetDestinaion()

View File

@ -25,7 +25,7 @@ namespace Tank.MovementStrategy
public int ObjectMiddleHorizontal => _x + _width / 2; public int ObjectMiddleHorizontal => _x + _width / 2;
/// Середина объекта /// Середина объекта
public int ObjectMiddleVertical => _y + _height / 2; public int ObjectMiddleVertical => _y + _height / 2;
/// Конструктор /// Конструктор
public ObjectParameters(int x, int y, int width, int height) public ObjectParameters(int x, int y, int width, int height)
{ {
_x = x; _x = x;

View File

@ -9,7 +9,7 @@ namespace Tank.MovementStrategy
/// Статус выполнения операции перемещения /// Статус выполнения операции перемещения
public enum Status public enum Status
{ {
NotInit, NotInit,
InProgress, InProgress,
Finish Finish