diff --git a/Lab1/SelfPropelledArtilleryUnit.sln b/Lab1/SelfPropelledArtilleryUnit.sln
new file mode 100644
index 0000000..73a8f8b
--- /dev/null
+++ b/Lab1/SelfPropelledArtilleryUnit.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.32901.82
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SelfPropelledArtilleryUnit", "SelfPropelledArtilleryUnit\SelfPropelledArtilleryUnit.csproj", "{061F3D72-41C0-4577-A0FD-F835435A18ED}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {061F3D72-41C0-4577-A0FD-F835435A18ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {061F3D72-41C0-4577-A0FD-F835435A18ED}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {061F3D72-41C0-4577-A0FD-F835435A18ED}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {061F3D72-41C0-4577-A0FD-F835435A18ED}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {F0BAF71E-9A87-4EFE-90D6-9AE655732244}
+ EndGlobalSection
+EndGlobal
diff --git a/Lab1/SelfPropelledArtilleryUnit/Direction.cs b/Lab1/SelfPropelledArtilleryUnit/Direction.cs
new file mode 100644
index 0000000..adf2399
--- /dev/null
+++ b/Lab1/SelfPropelledArtilleryUnit/Direction.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace SelfPropelledArtilleryUnit
+{
+ public enum Direction
+ {
+ Up = 1,
+ Down = 2,
+ Left = 3,
+ Right = 4
+ }
+}
diff --git a/Lab1/SelfPropelledArtilleryUnit/DrawningTank.cs b/Lab1/SelfPropelledArtilleryUnit/DrawningTank.cs
new file mode 100644
index 0000000..3d76f40
--- /dev/null
+++ b/Lab1/SelfPropelledArtilleryUnit/DrawningTank.cs
@@ -0,0 +1,200 @@
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Text;
+using SelfPropelledArtilleryUnit;
+using System.Windows.Forms;
+
+namespace SelfPropelledArtilleryUnit
+{
+ ///
+ /// Класс, отвечающий за прорисовку и перемещение объекта-сущности
+ ///
+ class DrawningTank
+ {
+
+ ///
+ /// Класс-сущность
+ ///
+ public EntityTank? EntityTank { get; private set; }
+ ///
+ /// Ширина окна
+ ///
+ private int _pictureWidth;
+ ///
+ /// Высота окна
+ ///
+ private int _pictureHeight;
+ ///
+ ///
+ /// Левая координата прорисовки автомобиля
+ ///
+ private int _startPosX;
+ ///
+ /// Верхняя кооридната прорисовки автомобиля
+ ///
+ private int _startPosY;
+ ///
+ /// Ширина прорисовки танка
+ ///
+ private readonly int _tankWidth = 135;
+ ///
+ /// Высота прорисовки танка
+ ///
+ private readonly int _tankHeight = 75;
+
+ ///
+ /// Инициализация свойств
+ ///
+ /// Скорость
+ /// Вес
+ /// Цвет кузова
+ /// Дополнительный цвет
+ /// Признак наличия пулемета
+ /// Признак наличия пушки
+ /// Ширина картинки
+ /// Высота картинки
+ /// true - объект создан, false - проверка не пройдена,нельзя создать объект в этих размерах
+ public bool Init(int speed, double weight, Color bodyColor, Color additionalColor, bool machine_gun, bool cannon, int width, int height)
+ {
+ _pictureWidth = width;
+ _pictureHeight = height;
+
+ if (_tankHeight >= height)
+ {
+ return false;
+ }
+ if (_tankWidth >= width)
+ {
+ return false;
+ }
+
+ EntityTank = new EntityTank();
+ EntityTank.Init(speed, weight, bodyColor, additionalColor, machine_gun, cannon);
+ return true;
+
+ //EntityTank myTank = new EntityTank();
+ //myTank.Init(50, 75.5, Color.Green, Color.Black, true, false, true);
+ //return true;
+ }
+
+ public void SetPosition(int x, int y)
+ {
+ if (x < 0 || x > _pictureWidth - _tankWidth)
+ {
+ x = 0;
+ }
+ if (y < 0 || y > _pictureHeight - _tankHeight)
+ {
+ y = 0;
+ }
+
+ _startPosX = x;
+ _startPosY = y;
+
+ }
+
+
+ public void MoveTransport(Direction direction)
+ {
+ if (EntityTank == null)
+ {
+ return;
+ }
+ switch (direction)
+ {
+ //влево
+ case Direction.Left:
+ if (_startPosX - EntityTank.Step > 0)
+ {
+ _startPosX -= (int)EntityTank.Step;
+ }
+ break;
+ //вверх
+ case Direction.Up:
+ if (_startPosY - EntityTank.Step > 0)
+ {
+ _startPosY -= (int)EntityTank.Step;
+ }
+ break;
+
+ // вправо
+ case Direction.Right:
+ if (_startPosX + EntityTank.Step < _pictureWidth - _tankWidth)
+ {
+ _startPosX += (int)EntityTank.Step;
+ }
+ break;
+
+
+ //вниз
+ case Direction.Down:
+ if (_startPosY + EntityTank.Step < _pictureHeight - _tankHeight)
+ {
+ _startPosY += (int)EntityTank.Step;
+ }
+ break;
+
+ }
+ }
+
+ ///
+ /// Прорисовка объекта
+ ///
+ ///
+ public void DrawTransport(Graphics g)
+ {
+ if (EntityTank == null)
+ {
+ return;
+ }
+
+ Pen penBlack = new(Color.Black);
+ Brush additionalBrush = new SolidBrush(EntityTank.AdditionalColor);
+
+ // пулемет
+ if (EntityTank.Machine_gun)
+ {
+ //залповая усутановка
+ g.FillRectangle(additionalBrush, _startPosX + 15, _startPosY + 20, 20, 40);
+ g.DrawLine(penBlack, _startPosX + 5, _startPosY + 20, _startPosX + 15, _startPosY + 25);
+ }
+
+ //гусеницы
+ Brush brBlack = new SolidBrush(Color.Black);
+ Brush brBody = new SolidBrush(EntityTank.BodyColor);
+ g.FillEllipse(brBlack, _startPosX + 5, _startPosY + 50, 20, 20);
+ g.FillEllipse(brBlack, _startPosX + 30, _startPosY + 50, 20, 20);
+ g.FillEllipse(brBlack, _startPosX + 55, _startPosY + 50, 20, 20);
+ g.FillEllipse(brBlack, _startPosX + 80, _startPosY + 50, 20, 20);
+ g.FillEllipse(brBlack, _startPosX + 105, _startPosY + 50, 20, 20);
+ g.DrawEllipse(penBlack, _startPosX + 10, _startPosY + 55, 113, 20);
+ //пушка
+ Point[] pointsGun = new Point[4];
+ pointsGun[0].X = _startPosX + 85; pointsGun[0].Y = _startPosY + 25;
+ pointsGun[1].X = _startPosX + 80; pointsGun[1].Y = _startPosY + 30;
+ pointsGun[2].X = _startPosX - 15; pointsGun[2].Y = _startPosY + 5;
+ pointsGun[3].X = _startPosX - 10; pointsGun[3].Y = _startPosY + 0;
+ g.FillPolygon(brBody, pointsGun);
+ g.DrawPolygon(penBlack, pointsGun);
+ //корпус
+ Point[] pointsCorp = new Point[4];
+ pointsCorp[0].X = _startPosX; pointsCorp[0].Y = _startPosY + 60;
+ pointsCorp[1].X = _startPosX + 10; pointsCorp[1].Y = _startPosY + 30;
+ pointsCorp[2].X = _startPosX + 130; pointsCorp[2].Y = _startPosY + 30;
+ pointsCorp[3].X = _startPosX + 135; pointsCorp[3].Y = _startPosY + 60;
+ g.FillPolygon(brBody, pointsCorp);
+ g.DrawPolygon(penBlack, pointsCorp);
+ //башня
+ Point[] pointsHead = new Point[4];
+ pointsHead[0].X = _startPosX + 60; pointsHead[0].Y = _startPosY + 30;
+ pointsHead[1].X = _startPosX + 65; pointsHead[1].Y = _startPosY + 15;
+ pointsHead[2].X = _startPosX + 90; pointsHead[2].Y = _startPosY + 15;
+ pointsHead[3].X = _startPosX + 95; pointsHead[3].Y = _startPosY + 30;
+ g.FillPolygon(brBody, pointsHead);
+ g.DrawPolygon(penBlack, pointsHead);
+
+
+ }
+ }
+}
diff --git a/Lab1/SelfPropelledArtilleryUnit/EntityTank.cs b/Lab1/SelfPropelledArtilleryUnit/EntityTank.cs
new file mode 100644
index 0000000..4986a20
--- /dev/null
+++ b/Lab1/SelfPropelledArtilleryUnit/EntityTank.cs
@@ -0,0 +1,61 @@
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Reflection.PortableExecutable;
+using System.Text;
+
+
+namespace SelfPropelledArtilleryUnit
+{
+ class EntityTank
+ {
+ ///
+ /// Скорость
+ ///
+ 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 Machine_gun { get; private set; }
+
+ public bool Cannon { get; private set; }
+ public double Step => (double)Speed * 100 / Weight;
+
+
+
+ ///
+ /// Инициализация полей объекта-класса спортивного автомобиля
+ ///
+ /// Скорость
+ /// Вес автомобиля
+ /// Основной цвет
+ /// Дополнительный цвет
+ /// Признак наличия пулемета
+ /// Признак наличия пушки
+
+ public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool machine_gun, bool cannon)
+ {
+ Speed = speed;
+ Weight = weight;
+ BodyColor = bodyColor;
+ AdditionalColor = additionalColor;
+
+ Machine_gun = machine_gun;
+ Cannon = cannon;
+
+ }
+ }
+}
diff --git a/Lab1/SelfPropelledArtilleryUnit/Form1.Designer.cs b/Lab1/SelfPropelledArtilleryUnit/Form1.Designer.cs
new file mode 100644
index 0000000..4e699e1
--- /dev/null
+++ b/Lab1/SelfPropelledArtilleryUnit/Form1.Designer.cs
@@ -0,0 +1,145 @@
+
+namespace SelfPropelledArtilleryUnit
+{
+ partial class FormTank
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormTank));
+ buttonCreateTank = new System.Windows.Forms.Button();
+ buttonUp = new System.Windows.Forms.Button();
+ buttonDown = new System.Windows.Forms.Button();
+ buttonLeft = new System.Windows.Forms.Button();
+ buttonRight = new System.Windows.Forms.Button();
+ pictureboxTankk = new System.Windows.Forms.PictureBox();
+ ((System.ComponentModel.ISupportInitialize)pictureboxTankk).BeginInit();
+ SuspendLayout();
+ //
+ // buttonCreateTank
+ //
+ buttonCreateTank.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left;
+ buttonCreateTank.Location = new System.Drawing.Point(31, 398);
+ buttonCreateTank.Name = "buttonCreateTank";
+ buttonCreateTank.Size = new System.Drawing.Size(94, 29);
+ buttonCreateTank.TabIndex = 1;
+ buttonCreateTank.Text = "Создать";
+ buttonCreateTank.UseVisualStyleBackColor = true;
+ buttonCreateTank.Click += buttonCreate_Click;
+ //
+ // buttonUp
+ //
+ buttonUp.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right;
+ buttonUp.BackgroundImage = (System.Drawing.Image)resources.GetObject("buttonUp.BackgroundImage");
+ buttonUp.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+ buttonUp.Location = new System.Drawing.Point(680, 361);
+ buttonUp.Name = "buttonUp";
+ buttonUp.Size = new System.Drawing.Size(94, 29);
+ buttonUp.TabIndex = 2;
+ buttonUp.Text = "\\";
+ buttonUp.UseVisualStyleBackColor = true;
+ buttonUp.Click += ButtonMove_Click;
+ //
+ // buttonDown
+ //
+ buttonDown.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right;
+ buttonDown.BackgroundImage = (System.Drawing.Image)resources.GetObject("buttonDown.BackgroundImage");
+ buttonDown.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+ buttonDown.Location = new System.Drawing.Point(680, 396);
+ buttonDown.Name = "buttonDown";
+ buttonDown.Size = new System.Drawing.Size(94, 29);
+ buttonDown.TabIndex = 3;
+ buttonDown.UseVisualStyleBackColor = true;
+ buttonDown.Click += ButtonMove_Click;
+ //
+ // buttonLeft
+ //
+ buttonLeft.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right;
+ buttonLeft.BackgroundImage = (System.Drawing.Image)resources.GetObject("buttonLeft.BackgroundImage");
+ buttonLeft.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+ buttonLeft.Location = new System.Drawing.Point(580, 396);
+ buttonLeft.Name = "buttonLeft";
+ buttonLeft.Size = new System.Drawing.Size(94, 29);
+ buttonLeft.TabIndex = 4;
+ buttonLeft.UseVisualStyleBackColor = true;
+ buttonLeft.Click += ButtonMove_Click;
+ //
+ // buttonRight
+ //
+ buttonRight.Anchor = System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right;
+ buttonRight.BackgroundImage = (System.Drawing.Image)resources.GetObject("buttonRight.BackgroundImage");
+ buttonRight.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
+ buttonRight.Location = new System.Drawing.Point(784, 396);
+ buttonRight.Name = "buttonRight";
+ buttonRight.Size = new System.Drawing.Size(94, 29);
+ buttonRight.TabIndex = 5;
+ buttonRight.UseVisualStyleBackColor = true;
+ buttonRight.Click += ButtonMove_Click;
+ //
+ // pictureboxTankk
+ //
+ pictureboxTankk.Dock = System.Windows.Forms.DockStyle.Fill;
+ pictureboxTankk.Location = new System.Drawing.Point(0, 0);
+ pictureboxTankk.Name = "pictureboxTankk";
+ pictureboxTankk.Size = new System.Drawing.Size(882, 453);
+ pictureboxTankk.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
+ pictureboxTankk.TabIndex = 6;
+ pictureboxTankk.TabStop = false;
+ pictureboxTankk.Click += pictureBox1_Click_1;
+ //
+ // FormTank
+ //
+ AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
+ AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ ClientSize = new System.Drawing.Size(882, 453);
+ Controls.Add(buttonRight);
+ Controls.Add(buttonLeft);
+ Controls.Add(buttonDown);
+ Controls.Add(buttonUp);
+ Controls.Add(buttonCreateTank);
+ Controls.Add(pictureboxTankk);
+ Name = "FormTank";
+ StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ Text = "TANK";
+ Load += Form1_Load;
+ ((System.ComponentModel.ISupportInitialize)pictureboxTankk).EndInit();
+ ResumeLayout(false);
+ PerformLayout();
+ }
+
+ #endregion
+
+ private System.Windows.Forms.PictureBox pictureBoxTank;
+ private System.Windows.Forms.PictureBox pictureBoxTanka;
+ private System.Windows.Forms.Button buttonCreateTank;
+ private System.Windows.Forms.Button buttonUp;
+ private System.Windows.Forms.Button buttonDown;
+ private System.Windows.Forms.Button buttonLeft;
+ private System.Windows.Forms.Button buttonRight;
+ private System.Windows.Forms.PictureBox pictureboxTankk;
+ }
+}
+
diff --git a/Lab1/SelfPropelledArtilleryUnit/Form1.cs b/Lab1/SelfPropelledArtilleryUnit/Form1.cs
new file mode 100644
index 0000000..736db88
--- /dev/null
+++ b/Lab1/SelfPropelledArtilleryUnit/Form1.cs
@@ -0,0 +1,117 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using SelfPropelledArtilleryUnit;
+
+namespace SelfPropelledArtilleryUnit
+{
+ public partial class FormTank : Form
+ {
+ //
+ /// Поле-объект для прорисовки объекта
+ ///
+ private DrawningTank? _drawningTank;
+ public FormTank()
+ {
+ InitializeComponent();
+
+ }
+
+ ///
+ /// Метод прорисовки машины
+ ///
+ private void Draw()
+ {
+ if (_drawningTank == null)
+ {
+ return;
+ }
+ Bitmap bmp = new(pictureboxTankk.Width, pictureboxTankk.Height);
+ Graphics gr = Graphics.FromImage(bmp);
+ _drawningTank.DrawTransport(gr);
+ pictureboxTankk.Image = bmp;
+
+ }
+
+
+ ///
+ /// Изменение размеров формы
+ ///
+ ///
+ ///
+ private void ButtonMove_Click(object sender, EventArgs e)
+ {
+ if (_drawningTank == null)
+ {
+ return;
+ }
+ string name = ((Button)sender)?.Name ?? string.Empty;
+ switch (name)
+ {
+ case "buttonUp":
+ _drawningTank.MoveTransport(Direction.Up);
+ break;
+ case "buttonDown":
+ _drawningTank.MoveTransport(Direction.Down);
+ break;
+ case "buttonLeft":
+ _drawningTank.MoveTransport(Direction.Left);
+ break;
+ case "buttonRight":
+ _drawningTank.MoveTransport(Direction.Right);
+ break;
+ }
+ Draw();
+ }
+
+
+
+
+
+ private void buttonUp_Click(object sender, EventArgs e)
+ {
+
+ }
+
+ private void Form1_Load(object sender, EventArgs e)
+ {
+
+ }
+
+ ///
+ /// Обработка нажатия кнопки "Создать"
+ ///
+ ///
+ ///
+ private void buttonCreate_Click(object sender, EventArgs e)
+ {
+ Random random = new();
+ _drawningTank = new DrawningTank();
+ _drawningTank.Init(random.Next(100, 300),
+ random.Next(1000, 3000),
+ Color.FromArgb(random.Next(0, 256), random.Next(0, 256),
+ random.Next(0, 256)),
+ Color.FromArgb(random.Next(0, 256), random.Next(0, 256),
+ random.Next(0, 256)),
+ Convert.ToBoolean(random.Next(0, 2)), Convert.ToBoolean(random.Next(0, 2)), pictureboxTankk.Width, pictureboxTankk.Height);
+ _drawningTank.SetPosition(random.Next(10, 100),
+ random.Next(10, 100));
+ Draw();
+ }
+
+
+
+
+ private void pictureBox1_Click_1(object sender, EventArgs e)
+ {
+
+ }
+ }
+
+}
diff --git a/Lab1/SelfPropelledArtilleryUnit/Form1.resx b/Lab1/SelfPropelledArtilleryUnit/Form1.resx
new file mode 100644
index 0000000..e940273
--- /dev/null
+++ b/Lab1/SelfPropelledArtilleryUnit/Form1.resx
@@ -0,0 +1,507 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ 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
+ iLv2vAAAAABJRU5ErkJggg==
+
+
+
+
+ iVBORw0KGgoAAAANSUhEUgAAAOEAAADhCAMAAAAJbSJIAAAABGdBTUEAALGPC/xhBQAAAIRQTFRF////
+ AAAA5eXl5OTk5ubm4+Pj9fX19/f3+Pj47u7u7e3t8PDw+fn57+/v9vb26+vr+vr67OzsMDAwHx8fJCQk
+ k5OTHh4enZ2dLS0toKCgEhISGBgYFBQUl5eXWlpaYGBgzs7OeXl5tLS0jY2Np6enyMjITk5OQEBAdnZ2
+ aGho2travLy8r+wrRQAAFrNJREFUeF7tnWtbG0cShYUQkkBCCNvgxNjOOnY2u97////21KWnq7ure65g
+ HjvzYebRm6I1NXU7auGwwrFbb9Y7XC8362tcrtebS1z2SnG5qdLbSE8FPSrdbNb3VXqIdFvQc0c3dxMp
+ nX4BD/eX68s9rpdr9WV9pZT9btFboUel67X60lH2u6P0dhk9CD0r3azXcn8d5bueQPGS6Wq3229vrm+2
+ +93+5vr6gMvh+vpmv59Er6fR3RL0VKF4lJccoksJ0dX6isJ5VVAKUUqPSvGwOEQ9lEOU0rNS3IM+9jaV
+ EI2gl0SR+E7xoSQlNROKi6Rmg4Yy82lZfD7l+5tekrj9SF82hng3Q18mhlSHSF3KYFtbkZq8nk/NuyV0
+ N4LWVsDtlxR1iOPleukaF+SOpc/fS3G81DzcHL7/+fXL12/fD/Q8Fy8+n9IJZXYpxXd5xb7gWqVHXMhD
+ XOhOfHor9Kz08pKLb/f984Ucn+m/gtKdGFt6GkoPkdJdr0dQKb5IaUly4OaSQXRLewrT6ECFsrMpVbei
+ A4dv6h8dvx+UVtzihJjhlqVIixeZFrfv1Tk53tN/9KdFTLfJCZtNC/VweHtRGtpL2XTYw1Sqbf5S18Lx
+ V2m7QHvxKJrqAVrqAM3TSao9Bsdcmq27e6eeheO3VdW2pJ1Uy6lINaIYET6Fp1PHvE85cJFSiEAP/1LH
+ 4vG/DZdO7/CnYPi0NeYjxeklpsX2q/oVjy83tsyee1o8Www5LqDbf6tf8fj34ZlimFHUYRA513uVSRBG
+ E2kQWgVd5WV4cfFmNWqFNr2tU+pjz9xLia7eql/xeFPYLtBL8bKgLzMPKx6qbVp8C5RkMg+hROhObkQN
+ zJBqGU01zepR/YoHPFxO0zSVjnVLuweb9Qo4dsuXapGqA9s36lc83m357dU2dytS60BKu7nQpDjZ1HyW
+ abHebFwPx6SmFl9G66kZKU7cSChaQ9pLRk17Yb9TqQbKHq7XLQ+75kC2U9pLm0I7QRDdsMjBRaTPjYin
+ Ben5N/UrHu+Onu11ssKppCzKxlA84HzMTxj+UnwNWus0tTHvUwmRS0PxOfTnnxbPEEMt1BeNYYNmgggv
+ SfpkokypbzuEenV4Hr4Cya+pFJ4+Sy8NVILxvL0ULxsUpxf49DR/Hg4oPp/SyaiX+XttUnwprWiawxXd
+ SbbXtphU6+i4ThMEnCRh6DRBqjVotdOkUo1t69S6ldJiWhj6+qZFTLcKZV+UVqSapWgD4iF7P6i9KA3t
+ JTYdWt20F46h0Jf6fOhRiJsgco6deDoaist86nzG/21VsVX5dXQFHFPcaElvlUYBx5Rqrq/4amPep6b4
+ iFKI6Il6vZRLR21ROo0x79OWVIsUp19iWiwQQy3JLIYcl2oMje2kGA6ivNdWSJ/d0tStw87WlV9T6Smj
+ 1McW66WBSjBCLyW6fC/Fy4H09c3DBUoymYeXC+y1cUFlNGgaoT98r21Upwk9xafsVqTsAHLmB3YaHCY1
+ ZyQs318lYYdNC7KtpaaWpNAuCX3qTAs8ZIrhkPaSUSPV2O9EqplG0vKwaw7sYbO9TKFmr43F03F/hPS5
+ zwRck7orZALu6O+1RdsgtHAZTEWq9VFKcQ6RpO3E4W8Kyqc9n56KgvIph0h7ynCKZP7Jp8WYGCIuhtYb
+ aEl/+F7bLYscXET63IogWore3jb32nLbNmVR1qa3CYWnM3sp0bKXBirB8HspBxk9jx+72rb7I16Opjj9
+ s9dWEXAcAZ++6r02xNbpNKB8q2mniZTdalG/l4bUzHqKTyd3mtc3LWK6JbSbAFqog6hMC/WQvR/UXkBp
+ nbLpEDXthWModPnPh8MpxE2QX7iw0ML13qWJrYiyIRTiyf2MfzzhbUrbXqqizNIo1QoKT3vGfEqNKPOp
+ KT6iFCJ6ou60oMeutiidioCjYISektJhAg6nf/ba8miFVunTNIZcZtUYGluKQCOGoxuoiWEQOZBAuATp
+ cz2C+iuktLbXVtg68msmpT42oZcSjZNPU7OjEozQS4kO7aVkm/dHvJxFkfivbB4uUJLJPBy318alM4i+
+ rr02BHWoVMto6CmRsluRahLWO03oCNGWbzVSvtUZFCebmjMSlu+vkrCT99q6dJO7nkJx6mLY117IOKNG
+ qrHfiVTri6H60jUH9lAjEKmNyxS62u+P2/ubexI50DpRfk2iRmiltLnXBqFFAi5fIaWdKDuOpHjASZmN
+ G/7SUwqpVtKRe21Jp+mohGg0Rdr+5NNiYAxtA40x9BqoS3/kXtvptNtC3Wx3JxFlJxFakbL0mUvdvbbO
+ 1tyDWWEhCk8H91KHGqlGNPbSQCUY4/faNBigEoxAJQnHUJz+2WvTX/USOkjAvba9Ng2cl4RNGlKzTFhN
+ TXZW0m3YZwu8xGWJ1LT09U0LI798yr4Mp30xpJ8YREupxjEUOvTzodxfGpe5FOLmcDweD9A8uIjQOkKU
+ zaXputW9tty2k19Mbz0KUTaGwtP6mJfuUZNqPuXARUohoifqTgt67GqLIe1LtaSndFRCNIji9CvvtXGZ
+ FTHU4qvQNIZcZtUYGluKAD8jV375dMxeG4uc293pxNIHYmciPdWoW4ejVphMe3tpnQ6bh0KHzkOyzftj
+ jUoS9lMk/iubhwuUZDcPidb22qTMhBpR5lO6k4y+yr02pJsmLD2IsWOeKNIto5qErV7aJRaHc/Hhj5NN
+ zRkJy75UEnbAtOgSK0nNSOWuJ1CcbAzFF/Z+Ygw5NSN9BTGEuFGhdcZlplRLaRBP9Mrba/NsK1LtfjrF
+ A87G/BQBx4Fr0Z69Nu0TYlunFKKCSuAaFGn7k0+LIobeVxh4qXExtC7VSup7SM+an0Yhv3zKdz2aZiIH
+ Lx3pM5tW9tpGrOBQvCwpvUwoPO166VXXNelBlL3UoSrKQi8F5cAVAq6uvMNjV9vQCSOVYLSppKZPcfql
+ 9tqkzET6/DR7bV0v5aDuLzdpavKDyGgInNJOqjGFOAmpyc4KrX22EFsklg1clm6BboZQTU0NJ9MfOi3w
+ NpLGqYduwkaaethL8ayTGObtpZ92MWRq2ovEkGnNw669iC9sW8RwJr2/V/F0f38m+XVP0udsKC5j6Mml
+ tb22zlaEVrJCJ79qlEWZR3eGnuEpi7KJUs2nRsBRiOiJutOCHrvaYkiPkWpJT+moBC6jOP0K0wIPuS7V
+ ihhqSVZoGkMus2oMjS1FgJ+RK798OmKvrZQ+S9PmXltlBbxcgppeSi6XXbNOjVQjWko1DpHQivJObcNj
+ B5VgSH8cRyU1LUXi/7h5qLZp8S1Qkt08JApJRXdS+X/QivQxosyndCcZfWV7bV3gbDgjZbdSmoaIaBm4
+ IFnoOff2UtjKY08CFyk7kFFNzTbFyabmjIR1POzoP3ttdCdiiwhkNInLBCp7bSJy7iC0zsczpM9dJuCa
+ 1EiqKj06Hu4hqTxbh7L8atFcqhmKB2xH9wwBZ6RaSZ9xr61XwCFtf/JpkcUQj74u4PAfDa1LtZJWJj5s
+ +WkU8sunfNejKYucg4ing0qfg0ifBWlrry2xPbgrTKR4+bPstflUEhanX3CvbaCAozv5oXttoYG2KT00
+ v5cauro/0M86gSvD+fy9VJLwTv6VdkbVNpE3ODenxf3qG/1Zir8fNs/gId6m9NDcn0/Jl6uvf2ONz9/W
+ N70eog2Ih1yYRXs5xD/a8IWKWGhiixXEF6bl50OiNQ+79iK+aHNIW4ZHv+giFxfvOb1attA6VpTd3d+R
+ 9AkCbhv+rAgdj5tba3uC0RYvzQokqYiK/DK0stcWV7CirEkhyg7bJ12Djs8rocZ2F2379tpW/9Fl5Piw
+ pYFuRVmvgKMQVTrN5L227QddQo7/HhLbXMDhVJ8Wd3/qIuH4cKKC59QsSpLvzy3JhadF5uDFxZ93VVsk
+ LE5m4icxvFxf52tdPN5ACWm0jG1dwHEMURXViR9jqOWbxZALytJtIeKf9I/WhOLLYnjAwVonE1qgx/wv
+ p+B4vDvmtv4KKa3ttQ1cAS9BD7gc720N6vHX2bWVFUwvJZfTXlr+2Q169MHWSDVJzY5KMKSXyqOsKO/U
+ Njx2ijmuoT8mtIwgjq++rVIkfnUe/qErJMfbrab4AvNQbdPia5XkoVwHxx9F8dmSbO212VERj0csQ7Yv
+ v9d2TMZEPD63BVy9lx7+qytkx1v8dBqiJXspVFQMRkpvvBTF8Qd9RKr0Uv5TbyY1Ew/vPukK+fFxO8xD
+ LCh0mb22SgSha8ilTNZ1K+BUSjWWPvvLTfknjPT4sEcRiy9sG5pOKtVM02l52AktjnddwJ2K2RWOf0Ez
+ p7ZmhRUEFks1iBxonSjKiO5J3brH09oKuDMkFa+QSEBL+/barK1PD9uP+oPF8feebCHV2DYRcKB4wLlU
+ M8P/u65RHh92LMok9LlUY6qdRuj8vbZCycTjOwJXrMDhZIq0rU6L1el3XaQ8nioC7pmmRbUGLy6+sW19
+ WmQxRECsgDs86DLl8XQfBVwaQ4dWJj5s+WkUUi2n9RS9eIANii9fQUqS6HZ72kLc4CwiRy+QPkS3q/SP
+ +tlDBVxnm62QrOvutXW2JLSibUldqabHe9adjRXoAcTAhV4awknBqEcRc9FINQmc9FINJ6gEY/heG2xt
+ MEARDFeqyfE+t+16aaA49ey1HWpTEYlqBRzfn1uSKIcRE99SlWr1CH7Kbfnd2EOldCp21TIB16jFd5tU
+ wKVSbZm9tuPW1aJ8PNCP+FKto+QyBw73iksIHGSIUlI99Y76iDSHLQdObEM4sa6hfb00SDWyjeFk2qzB
+ MnC0QkpxB/VpobRRi0+5gItSbcC0UNssNbteT7QxJn5PbNXDbAVQlLZ4yCKnIuBatXgqBRx7mAi4modi
+ 25BqDQdpTNSkmqUQNyy0oHnOZyPgLD3dHesuftzcprap/BLqfsb3bI/JCoeGkvm0h22QaukKRsBdD/+9
+ tvpcfDICLpFqRClElU4zYK+t4SDGREuqRYrTsG9mzq2hQaXN97fstGikKBykddkXLb5uBWdaIG2dGIKa
+ GLYE3MfrqoDjGKIqqhM/xlDLN0ZgjlQzMTQi57TdsvSBkPPoAAEHU2cFvHTrsGKr9Hhfn4Mq1TpbfwWh
+ ppfawMVeamk9io8QcBo42EowpJcKrSjv1DY8dop5U6phTKS2XS/1KBK/dx4G2kjUx+1WbEPx4WJKsm/i
+ lyXZcHCAVLMUjY7uZNjfVj94O6hyvMXi1jYVcGP32o4NBx/4YUdb9qVYwdDYS1OpFnspU5VfjVrEmnho
+ HLi4goTI76Ui1cQ29lKRaq0UzQMnK9QoTjY1exN2VR8acBE/YlLTCLj+aaG2uC/QhtgeKNUixakm1Xza
+ EHAftyhtTk2x7ft8qB52Qos9pBV6xkTeXuIKHl11Uu0sUu2cyq+S7htRhIC7dVfYOx7uPVsSkY1B/2nX
+ iTK2DSuk9NpSGrEcIumzcwWc+Qp18l5bW6qV+3IcuAZF2g6eFlpm5/rQ+FARcCOmRdtB2CZzAStI8dWn
+ RRZDJHNdwOHCtDUXfQFXmfieVGt/XEKZZdHS4qvTKHLoQle9tGjjU//T3dFZwdlr++1crtvcVfs9k2rh
+ R3soPDWBC10zDZxHRwq4uvIOj11s25/oja2ESLpmm+I07NNTRhuJ+jYXcCiH/nkI29oXoHz0SzWf0qki
+ 1foEXCOKWNzaVj4BF3tttS9A6XigW8lEWbkvxx5mlFw2Ui0TcEZ+KSVnldZrkb5CxbrGtt5L9bFTOJtS
+ DbYbYxulWqDslkfBxk6LMAHqUZQdOO6laut7iLeJ06Jdg+OkmqWZh/pve7v20qKtT/07ll/9Ho6QaoP+
+ HbBD7+5UlN2ReNriwkIroacKbezAPa6DgGPb2l6brHuPdVtSTXbVOtuwbkpFqpUUng6TakqDKNNfwKgL
+ OP0dOApRpdMke20NJYMUHS/VIsVp0rRQ2tiB+8hfoQ6cFqd6isJBWoHvWpMQ67Ivw6cFZqUTQ1Anhkpx
+ YdqqRfodOI5h78RvRHCiVDMxzEWOL33qtPVJIwq45l7b8aZeg/muWlhwOCVJJanJLrelWqBpOOuJSl+h
+ im1FeWMFBHnWF6D9NJsWWmYoSfEwobgQ1QkQaPMrVBVw9Yl/mvcFqE+7eUgUjY7uethe22gBF75Cre+1
+ Nb8A5QcY5NcYqZbvtcFXCVEi4FIaBByo9kcOp9C6gHuHTy+wdTsNrzBBqo0TcDjZ1OxPWLwUv23C9gq4
+ 6rRoDHrUYCq/yiQcQnGiu5ZGkvuSNh2PhpJsfdLY3tX32lobv1g3lV/GlxFU9tp8UdZDjShr7sA9QcD5
+ e23tL0Cx7mSpZuigvTYj1Ryqu2oNAQcrt9NMkWovsteWTQuljR24j1t3WjQ+TciumpF1M6bFlL02oUbA
+ 0Z20BNyHc6lp3qx6pJrdgeO4aJmNpbnI8aXPINpI1DeOh2VphmO+VDMUnprAaWpmgROah1MSNg1nPYpj
+ jiWkWqQ4zfn0ZEqSdMB2CRenSjWf0qki1XoFHBffcAE39Bi+qzZMwJHLjlRTaqSaT8cIuGEHpBoW1GBw
+ L5V1fXruo3AWrH9a4CVR/Eebmi6dWYupVOO7DunW0SQJ+2nmYRBluYdJe0kpPmEaemx8mOo/lpJqlkLc
+ TJZqPt1Nd/HTCSsE+ZWu64gyn07Ya3OlWtdpEtor4NoHUnQpqRYpTgtOC6UTa3GmVPMpnVBQ0/faCsqR
+ nTQ0FpVqJoa5yPGlz1g6YWhM/AK0l1InlNRklwdJtSJwkrCRUsKObTfLSjVLs2mBZOa7Hlh8JZX9M7zZ
+ uEQ1Uo1W4Ptb6NPTAnttCwi4B/qDN0Z+cdvK5NcYqZbQmlSrCziVaj7lcAodXoueVKN/UziGlgJOKE42
+ NW3C4qVSDlxK8SPsi1DzG2yGDh4aqMH0y9Iy3aTMplCc6K6lZUwWcPRVJ/udCbhhLgapxh7qL9OG+5sv
+ 4GivbQmp5tPGDlw8Pu1g25ZquLSlmk+TvbYb6bOdgKtJNYeqVAvTIqX9As6VapzyBaUQjRdwSFubmrEk
+ 2ZeUpmXWnhZKG1+hylFKtaWnxWJ7bdmWTaA9H6YqUo2f0UICLhc5vvSZQZuJuuiumk/hqQmcpKY8iEEC
+ rggcJ1Ym4OodNZVqEjjphJFKMKZTnJb/9JSVZDVRl5VqPqVTRapN2Wvr2mpHycPLylzkL0B7/w0p3fUY
+ mgs4cpkDhysupVQLlN4+paVUc6iKJ68W31v5ZWwXFXBwNpsWyFQORpqaSpEH7EuLGgHH4RTq1OIQqeZT
+ DtFwinPqobSM3ENLo4dMM6kGyh4mv9dW7sDRmAi2aA6pL0nLmEshbhbea/PoLhdwk6WaTxsCDp42Og2F
+ aIFOI/SbOkfHn0zpsatt3mkipWD4tJNqTYrTs08LLajd9/D/nfqD3lapJtYzTwvMyrpUS6kRZT6VGHaU
+ /Va6OVz97+HLw7erW3o3pWEy423UViLQUb7rGfSZ9toq9HTaH4/HYbZLUXponJri8iCpVgROUjNSCYb0
+ 0hY1Us2GE1SCIf1xLs2mBZKZ73pg8ZU0FJ9Py+LzKd/f9JLs5iFRtDS6k8X32tK2Glql30CVGvnFz6ig
+ dNfDpFpCW1KtpOVeW0bpEah4qlN9wIY+n4DDqRMn2bTAS6UcuJQiO4iGJATlx16jHM6UZqnp0phuUmZT
+ KE51DwNNPbQ03jXTQQIupfH+mKI5ZJTvWhvJFBr22uirSVwW3mvz6HJSbQjd3y3QadKe0ttpHFqKMp9S
+ iEYKuLvV/wF56HRibp0XtwAAAABJRU5ErkJggg==
+
+
+
+
+ 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
+ FQAAAABJRU5ErkJggg==
+
+
+
+
+ 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
+
+
+
\ No newline at end of file
diff --git a/Lab1/SelfPropelledArtilleryUnit/Program.cs b/Lab1/SelfPropelledArtilleryUnit/Program.cs
new file mode 100644
index 0000000..2e78f38
--- /dev/null
+++ b/Lab1/SelfPropelledArtilleryUnit/Program.cs
@@ -0,0 +1,26 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace SelfPropelledArtilleryUnit
+{
+ static class Program
+ {
+ ///
+ /// The main entry point for the application.
+ ///
+ [STAThread]
+ static void Main()
+ {
+ //Application.SetHighDpiMode(HighDpiMode.SystemAware);
+ //Application.EnableVisualStyles();
+ //Application.SetCompatibleTextRenderingDefault(false);
+ //Application.Run(new FormTank());
+
+ ApplicationConfiguration.Initialize();
+ Application.Run(new FormTank());
+ }
+ }
+}
diff --git a/Lab1/SelfPropelledArtilleryUnit/Properties/Resources.Designer.cs b/Lab1/SelfPropelledArtilleryUnit/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..77038aa
--- /dev/null
+++ b/Lab1/SelfPropelledArtilleryUnit/Properties/Resources.Designer.cs
@@ -0,0 +1,63 @@
+//------------------------------------------------------------------------------
+//
+// Этот код создан программой.
+// Исполняемая версия:4.0.30319.42000
+//
+// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
+// повторной генерации кода.
+//
+//------------------------------------------------------------------------------
+
+namespace SelfPropelledArtilleryUnit.Properties {
+ using System;
+
+
+ ///
+ /// Класс ресурса со строгой типизацией для поиска локализованных строк и т.д.
+ ///
+ // Этот класс создан автоматически классом StronglyTypedResourceBuilder
+ // с помощью такого средства, как ResGen или Visual Studio.
+ // Чтобы добавить или удалить член, измените файл .ResX и снова запустите ResGen
+ // с параметром /str или перестройте свой проект VS.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ ///
+ /// Возвращает кэшированный экземпляр ResourceManager, использованный этим классом.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SelfPropelledArtilleryUnit.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Перезаписывает свойство CurrentUICulture текущего потока для всех
+ /// обращений к ресурсу с помощью этого класса ресурса со строгой типизацией.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/Lab1/SelfPropelledArtilleryUnit/Properties/Resources.resx b/Lab1/SelfPropelledArtilleryUnit/Properties/Resources.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/Lab1/SelfPropelledArtilleryUnit/Properties/Resources.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Lab1/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit.csproj b/Lab1/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit.csproj
new file mode 100644
index 0000000..2f866a5
--- /dev/null
+++ b/Lab1/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit.csproj
@@ -0,0 +1,24 @@
+
+
+
+ WinExe
+ net6.0-windows
+ true
+
+
+
+
+ True
+ True
+ Resources.resx
+
+
+
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+
+
+
+
\ No newline at end of file