Правки 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
{
/// <summary>
/// Класс-стратегия перемещения объекта
/// </summary>
public abstract class AbstractStrategy
{
/// <summary>
/// Перемещаемый объект
/// </summary>
private IMoveableObject? _moveableObject;
/// <summary>
/// Статус перемещения
/// </summary>
private Status _state = Status.NotInit;
/// <summary>
/// Ширина поля
/// </summary>
protected int FieldWidth { get; private set; }
/// <summary>
/// Высота поля
/// </summary>
protected int FieldHeight { get; private set; }
/// <summary>
/// Статус перемещения

View File

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

View File

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

View File

@ -7,8 +7,7 @@ using Tank.DrawingObjects;
namespace Tank.MovementStrategy
{
/// Реализация интерфейса IDrawningObject для работы с объектом DrawningCar
/// (паттерн Adapter)
/// Реализация интерфейса IDrawningObject для работы с объектом DrawningCar (паттерн Adapter)
public class DrawningObjectArmoredCar : IMoveableObject
{
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 + 75, _startPosY + 32, 10, 10);
//кузов
//кузов
Brush br = new SolidBrush(ArmoredCar.BodyColor);
g.FillRectangle(br, _startPosX + 5, _startPosY + 17, 110, 18);
g.FillRectangle(br, _startPosX + 30, _startPosY, 50, 15);
@ -162,9 +162,7 @@ namespace Tank.DrawingObjects
//}
///// <summary>
/// <summary>
/// Прорисовка объекта
/// </summary>
/// <param name="g"></param>
//public void DrawTransport(Graphics g)
//{

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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