diff --git a/WinFormsLabRad1/WinFormsLabRad1/DirectionType.cs b/WinFormsLabRad1/WinFormsLabRad1/DirectionType.cs
new file mode 100644
index 0000000..e605801
--- /dev/null
+++ b/WinFormsLabRad1/WinFormsLabRad1/DirectionType.cs
@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WinFormsLabRad1
+{
+ ///
+ /// Направление перемещения
+ ///
+ /// Вверх
+ ///
+ Up = 1,
+ ///
+ /// Вниз
+ ///
+ Down = 2,
+ ///
+ /// Влево
+ ///
+ Left = 3,
+ ///
+ /// Вправо
+ ///
+ Right = 4
+ }
+}
diff --git a/WinFormsLabRad1/WinFormsLabRad1/DrawningTankZU.cs b/WinFormsLabRad1/WinFormsLabRad1/DrawningTankZU.cs
new file mode 100644
index 0000000..abc82fb
--- /dev/null
+++ b/WinFormsLabRad1/WinFormsLabRad1/DrawningTankZU.cs
@@ -0,0 +1,99 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WinFormsLabRad1
+{
+ ///
+ /// Класс, отвечающий за прорисовку и перемещение объекта-сущности
+ ///
+ public class DrawningTankZU
+ {
+ ///
+ /// Класс-сущность
+ ///
+ public EntityTankZU? EntityTankZU { get; private set; }
+ ///
+ /// Ширина окна
+ ///
+ private int? _pictureWidth;
+ ///
+ /// Высота окна
+ ///
+ private int? _pictureHeight;
+ ///
+ /// Левая координата прорисовки автомобиля
+ ///
+ private int? _startPosX;
+ ///
+ /// Верхняя кооридната прорисовки автомобиля
+ ///
+ private int? _startPosY;
+ ///
+ /// Ширина прорисовки автомобиля
+ ///
+ private readonly int _drawningTankWidth = 110;
+ ///
+ /// Высота прорисовки автомобиля
+ ///
+ private readonly int _drawningTankHeight = 60;
+
+ ///
+ /// Инициализация свойств
+ ///
+ /// Скорость
+ /// Вес автомобиля
+ /// Основной цвет
+ /// Дополнительный цвет
+ /// Признак наличия обвеса
+ /// Признак наличия антикрыла
+ /// Признак наличия гоночной полосы
+ public void Init(int speed, double weight, Color bodyColor,
+ Color additionalColor, bool bashnya, bool zenorudie,
+ bool radar)
+ {
+ EntityTankZU = new EntityTankZU();
+ EntityTankZU.Init(speed, weight, bodyColor, additionalColor, bashnya, zenorudie, radar);
+ _pictureWidth = null;
+ _pictureHeight = null;
+ _startPosX = null;
+ _startPosY = null;
+ }
+
+ ///
+ /// Установка границ поля
+ ///
+ /// Ширина поля
+ /// Высота поля
+ /// true - границы заданы, false - проверка не пройдена, нельзя разместить объект в этих размерах
+ public bool SetPictureSize(int width, int height)
+ {
+ // TODO проверка, что объект "влезает" в размеры поля
+ // Паша - написать проверку
+ // если влезает, сохраняем границы и корректируем позицию объекта, если она была уже установлена
+ _pictureWidth = width;
+ _pictureHeight = height;
+ return true;
+ }
+
+ ///
+ /// Установка позиции
+ ///
+ /// Координата X
+ /// Координата Y
+ public void SetPosition(int x, int y)
+ {
+ if (!_pictureHeight.HasValue || !_pictureWidth.HasValue)
+ {
+ return;
+ }
+ // TODO если при установке объекта в эти координаты, он будет "выходить" за границы формы
+ // Паша - написать проверку
+ // то надо изменить координаты, чтобы он оставался в этих границах
+ _startPosX = x;
+ _startPosY = y;
+ }
+ }
+}
diff --git a/WinFormsLabRad1/WinFormsLabRad1/EntityTankZU.cs b/WinFormsLabRad1/WinFormsLabRad1/EntityTankZU.cs
new file mode 100644
index 0000000..3058c8c
--- /dev/null
+++ b/WinFormsLabRad1/WinFormsLabRad1/EntityTankZU.cs
@@ -0,0 +1,69 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WinFormsLabRad1
+///
+/// Класс-сущность "ЗУ с башней, с З.О. и Радаром"
+///
+{
+ public class EntityTankZU
+ {
+ ///
+ /// Скорость
+ ///
+ public int Speed { get; private set; }
+ ///
+ /// Вес
+ ///
+ public double Weight { get; private set; }
+ ///
+ /// Основной цвет
+ ///
+ public Color BodyColor { get; private set; }
+ ///
+ /// Дополнительный цвет (для опциональных элементов)
+ ///
+ public Color AdditionalColor { get; private set; }
+ ///
+ /// Признак (опция) наличия башни
+ ///
+ public bool Bashnya { get; private set; }
+ ///
+ /// Признак (опция) наличия З.О.
+ ///
+ public bool Zenorudie { get; private set; }
+ ///
+ /// Признак (опция) наличия радара
+ ///
+ public bool Radar { get; private set; }
+ ///
+ /// Шаг перемещения машины
+ ///
+ public double Step => Speed * 100 / Weight;
+
+ ///
+ /// Инициализация полей объекта-класса спортивного автомобиля
+ ///
+ /// Скорость
+ /// Вес автомобиля
+ /// Основной цвет
+ /// Дополнительный цвет
+ /// Признак наличия обвеса
+ /// Признак наличия антикрыла
+ /// Признак наличия гоночной полосы
+ public void Init(int speed,double weight, Color bodyColor,
+ Color additionalColor, bool bashnya, bool zenorudie,
+ bool radar)
+ { Speed = speed;
+ Weight = weight;
+ BodyColor = bodyColor;
+ AdditionalColor = additionalColor;
+ Bashnya = bashnya;
+ Zenorudie = zenorudie;
+ Radar = radar;
+ }
+ }
+}