Правки 2лаб
This commit is contained in:
parent
a52eb31b45
commit
083ffec901
@ -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>
|
||||
/// Статус перемещения
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
|
@ -21,6 +21,7 @@ namespace Tank.DrawingObjects
|
||||
public int GetWidth => _ArmoredcarWidth;
|
||||
/// Высота объекта
|
||||
public int GetHeight => _ArmoredcarHeight;
|
||||
|
||||
/// Ширина окна
|
||||
private int _pictureWidth;
|
||||
/// Высота окна
|
||||
|
@ -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;
|
||||
|
@ -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)
|
||||
//{
|
||||
|
@ -28,5 +28,6 @@ namespace Tank.Entites
|
||||
BodyColor = bodyColor;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -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>
|
||||
|
@ -115,7 +115,7 @@ namespace Tank
|
||||
_ => null,
|
||||
};
|
||||
if (_abstractStrategy == null)
|
||||
{
|
||||
{
|
||||
return;
|
||||
}
|
||||
_abstractStrategy.SetData(new
|
||||
|
@ -18,5 +18,6 @@ namespace Tank.MovementStrategy
|
||||
bool CheckCanMove(Direction direction);
|
||||
/// Изменение направления пермещения объекта
|
||||
void MoveObject(Direction direction);
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -18,6 +18,7 @@ namespace Tank.MovementStrategy
|
||||
}
|
||||
return objParams.RightBorder + GetStep() >= FieldWidth && objParams.DownBorder + GetStep() >= FieldHeight;
|
||||
}
|
||||
|
||||
protected override void MoveToTarget()
|
||||
{
|
||||
var objParams = GetObjectParameters;
|
||||
|
@ -7,6 +7,7 @@ using System.Threading.Tasks;
|
||||
namespace Tank.MovementStrategy
|
||||
{
|
||||
/// Стратегия перемещения объекта в центр экрана
|
||||
|
||||
public class MoveToCenter : AbstractStrategy
|
||||
{
|
||||
protected override bool IsTargetDestinaion()
|
||||
|
@ -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;
|
||||
|
@ -9,7 +9,7 @@ namespace Tank.MovementStrategy
|
||||
/// Статус выполнения операции перемещения
|
||||
public enum Status
|
||||
{
|
||||
NotInit,
|
||||
NotInit,
|
||||
InProgress,
|
||||
Finish
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user