From cb33fc26594c0779cea76d2afc33902a776f699f Mon Sep 17 00:00:00 2001 From: I1nur Date: Fri, 20 Oct 2023 00:12:23 +0400 Subject: [PATCH 1/3] completed --- ProjectAntiAirCraftGun/DirectionType.cs | 34 +++ .../DrawingObjects/DrawingAntiAircraftGun.cs | 78 ++++++ .../DrawingObjects/DrawingTank.cs | 265 ++++++++++++++++++ .../Entities/EntityAntiAircraftGun.cs | 55 ++++ ProjectAntiAirCraftGun/Entities/EntityTank.cs | 45 +++ .../FormAntiAircraftGun.Designer.cs | 178 ++++++++++++ ProjectAntiAirCraftGun/FormAntiAircraftGun.cs | 156 +++++++++++ .../FormAntiAircraftGun.resx | 50 ++-- .../MovementStrategy/AbstractStrategy.cs | 132 +++++++++ .../MovementStrategy/DrawingObjectTank.cs | 32 +++ .../MovementStrategy/IMoveableObject.cs | 29 ++ .../MovementStrategy/MoveToBorder.cs | 60 ++++ .../MovementStrategy/MoveToCenter.cs | 60 ++++ .../MovementStrategy/ObjectParametrs.cs | 51 ++++ .../MovementStrategy/Status.cs | 12 + ProjectAntiAirCraftGun/Program.cs | 17 ++ .../ProjectAntiAircraftGun.csproj | 6 - .../ProjectAntiAircraftGun.sln | 25 ++ .../Properties/Resources.Designer.cs | 145 ++++++++++ .../Properties/Resources.resx | 145 ++++++++++ ProjectAntiAirCraftGun/Resources/bottom.png | Bin 0 -> 2881 bytes ProjectAntiAirCraftGun/Resources/left.png | Bin 0 -> 2957 bytes ...-kemono-friends-three-arrow-game-angle.png | Bin 0 -> 2939 bytes ...sparent-arrow-arrow-cdr-angle-triangle.png | Bin 0 -> 4450 bytes ...sparent-arrow-left-thin-zondicons-icon.png | Bin 0 -> 4573 bytes ...t-right-arrow-miscellaneous-game-angle.png | Bin 0 -> 2404 bytes ProjectAntiAirCraftGun/Resources/right.png | Bin 0 -> 3343 bytes ProjectAntiAirCraftGun/Resources/top.png | Bin 0 -> 3141 bytes 28 files changed, 1544 insertions(+), 31 deletions(-) create mode 100644 ProjectAntiAirCraftGun/DirectionType.cs create mode 100644 ProjectAntiAirCraftGun/DrawingObjects/DrawingAntiAircraftGun.cs create mode 100644 ProjectAntiAirCraftGun/DrawingObjects/DrawingTank.cs create mode 100644 ProjectAntiAirCraftGun/Entities/EntityAntiAircraftGun.cs create mode 100644 ProjectAntiAirCraftGun/Entities/EntityTank.cs create mode 100644 ProjectAntiAirCraftGun/FormAntiAircraftGun.Designer.cs create mode 100644 ProjectAntiAirCraftGun/FormAntiAircraftGun.cs rename AntiAircraftGun/Form1.resx => ProjectAntiAirCraftGun/FormAntiAircraftGun.resx (93%) create mode 100644 ProjectAntiAirCraftGun/MovementStrategy/AbstractStrategy.cs create mode 100644 ProjectAntiAirCraftGun/MovementStrategy/DrawingObjectTank.cs create mode 100644 ProjectAntiAirCraftGun/MovementStrategy/IMoveableObject.cs create mode 100644 ProjectAntiAirCraftGun/MovementStrategy/MoveToBorder.cs create mode 100644 ProjectAntiAirCraftGun/MovementStrategy/MoveToCenter.cs create mode 100644 ProjectAntiAirCraftGun/MovementStrategy/ObjectParametrs.cs create mode 100644 ProjectAntiAirCraftGun/MovementStrategy/Status.cs create mode 100644 ProjectAntiAirCraftGun/Program.cs rename AntiAircraftGun/AntiAircraftGun.csproj => ProjectAntiAirCraftGun/ProjectAntiAircraftGun.csproj (78%) create mode 100644 ProjectAntiAirCraftGun/ProjectAntiAircraftGun.sln create mode 100644 ProjectAntiAirCraftGun/Properties/Resources.Designer.cs create mode 100644 ProjectAntiAirCraftGun/Properties/Resources.resx create mode 100644 ProjectAntiAirCraftGun/Resources/bottom.png create mode 100644 ProjectAntiAirCraftGun/Resources/left.png create mode 100644 ProjectAntiAirCraftGun/Resources/png-clipart-computer-icons-uma-musume-pretty-derby-fate-grand-order-saber-kemono-friends-three-arrow-game-angle.png create mode 100644 ProjectAntiAirCraftGun/Resources/png-transparent-arrow-arrow-cdr-angle-triangle.png create mode 100644 ProjectAntiAirCraftGun/Resources/png-transparent-arrow-left-thin-zondicons-icon.png create mode 100644 ProjectAntiAirCraftGun/Resources/png-transparent-grammatical-person-paper-narration-direzione-didattica-statale-gestione-scuola-elementare-copy-print-right-arrow-miscellaneous-game-angle.png create mode 100644 ProjectAntiAirCraftGun/Resources/right.png create mode 100644 ProjectAntiAirCraftGun/Resources/top.png diff --git a/ProjectAntiAirCraftGun/DirectionType.cs b/ProjectAntiAirCraftGun/DirectionType.cs new file mode 100644 index 0000000..bf12d1e --- /dev/null +++ b/ProjectAntiAirCraftGun/DirectionType.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectAntiAircraftGun +{ + /// + /// Направленте перемещения + /// + public enum DirectionType + { + /// + /// Вверх + /// + Up = 1, + + /// + /// Вниз + /// + Down = 2, + + /// + /// Влево + /// + Left = 3, + + /// + /// Вправо + /// + Right = 4 + } +} diff --git a/ProjectAntiAirCraftGun/DrawingObjects/DrawingAntiAircraftGun.cs b/ProjectAntiAirCraftGun/DrawingObjects/DrawingAntiAircraftGun.cs new file mode 100644 index 0000000..c24aac5 --- /dev/null +++ b/ProjectAntiAirCraftGun/DrawingObjects/DrawingAntiAircraftGun.cs @@ -0,0 +1,78 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ProjectAntiAircraftGun.Entities; + +namespace ProjectAntiAircraftGun.DrawingObjects +{ + /// + /// Класс, отвечающий за прорисовку и перемещение объекта-сущности + /// + public class DrawingAntiAircraftGun : DrawingTank + { + /// + /// Конструктор + /// + /// Скорость + /// Вес + /// Основной цвет + /// Дополнительный цвет + /// Признак наличия радара + /// Признак наличия люка + /// Признак наличия пушки + /// Ширина картинки + /// Высота картинки + public DrawingAntiAircraftGun(int speed, double weight, Color bodyColor, Color +additionalColor, bool radar, bool hatch, bool cannon, int width, int height) : + base(speed, weight, bodyColor, additionalColor, width, height, 102, 139) + { + if (EntityTank != null) + { + EntityTank = new EntityAntiAircraftGun(speed, weight, bodyColor, + additionalColor, radar, hatch, cannon); + } + } + + public override void DrawTransport(Graphics g) + { + + if (EntityTank is not EntityAntiAircraftGun antiAircraftGun) + { + return; + } + + Pen pen = new(Color.Black); + pen.Width = 2; + + base.DrawTransport(g); + + // радар + if (antiAircraftGun.Radar) + { + Pen penRadar = new(Color.DarkGreen); + g.DrawEllipse(penRadar, _startPosX + 52, _startPosY + 46, 21, 12); + g.DrawEllipse(penRadar, _startPosX + 55, _startPosY + 48, 14, 8); + pen = new(Color.Green); + g.DrawLine(penRadar, _startPosX + 61, _startPosY + 52, _startPosX + 70, _startPosY + 48); + } + + // пушка + if (antiAircraftGun.Cannon) + { + g.DrawLine(pen, _startPosX + 54, _startPosY + 33, _startPosX + 113, _startPosY + 2); + g.DrawLine(pen, _startPosX + 57, _startPosY + 35, _startPosX + 122, _startPosY + 2); + } + + // люк + if (antiAircraftGun.Hatch) + { + pen = new(antiAircraftGun.AdditionalColor); + g.DrawRectangle(pen, _startPosX + 88, _startPosY + 64, 17, 6); + g.DrawLine(pen, _startPosX + 88, _startPosY + 67, _startPosX + 105, _startPosY + 67); + g.DrawLine(pen, _startPosX + 94, _startPosY + 64, _startPosX + 94, _startPosY + 70); + } + } + } +} diff --git a/ProjectAntiAirCraftGun/DrawingObjects/DrawingTank.cs b/ProjectAntiAirCraftGun/DrawingObjects/DrawingTank.cs new file mode 100644 index 0000000..c052327 --- /dev/null +++ b/ProjectAntiAirCraftGun/DrawingObjects/DrawingTank.cs @@ -0,0 +1,265 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ProjectAntiAircraftGun.Entities; +using static System.Windows.Forms.VisualStyles.VisualStyleElement; + +namespace ProjectAntiAircraftGun.DrawingObjects +{ + public class DrawingTank + { + /// + /// Класс-сущность + /// + public EntityTank? EntityTank { get; protected set; } + /// + /// Ширина окна + /// + private int _pictureWidth; + /// + /// Высота окна + /// + private int _pictureHeight; + /// + /// Левая координата прорисовки танка + /// + protected int _startPosX; + /// + /// Верхняя кооридната прорисовки танка + /// + protected int _startPosY; + /// + /// Ширина прорисовки танка + /// + protected readonly int _tankWidth = 130; + /// + /// Высота прорисовки танка + /// + protected readonly int _tankHeight = 102; + + /// + /// Координата X объекта + /// + public int GetPosX => _startPosX; + /// + /// Координата Y объекта + /// + public int GetPosY => _startPosY; + /// + /// Ширина объекта + /// + public int GetWidth => _tankWidth; + /// + /// Высота объекта + /// + public int GetHeight => _tankHeight; + /// + /// Конструктор + /// + /// Скорость + /// Вес + /// Основной цвет + /// Дополнительный цвет + /// Ширина картинки + /// Высота картинки + public DrawingTank(int speed, double weight, Color bodyColor, Color additionalColor, int + width, int height) + { + + _pictureWidth = width; + _pictureHeight = height; + EntityTank = new EntityTank(speed, weight, bodyColor, additionalColor); + + if (_pictureWidth > _tankWidth && _pictureHeight > _tankHeight) + { + EntityTank = new EntityTank(speed, weight, bodyColor, additionalColor); + } + else + { + EntityTank = null; + } + } + /// + /// Конструктор + /// + /// Скорость + /// Вес + /// Основной цвет + /// Ширина картинки + /// Высота картинки + /// Ширина прорисовки танка + /// Высота прорисовки танка + protected DrawingTank(int speed, double weight, Color bodyColor, Color additionalColor, int + width, int height, int tankWidth, int tankHeight) + { + _pictureWidth = width; + _pictureHeight = height; + EntityTank = new EntityTank(speed, weight, bodyColor, additionalColor); + + if (_pictureWidth > _tankWidth && _pictureHeight > _tankHeight) + { + EntityTank = new EntityTank(speed, weight, bodyColor, additionalColor); + } + else + { + EntityTank = null; + } + } + + /// + /// Проверка, что объект может переместится по указанному направлению + /// + /// Направление + /// true - можно переместится по указанному направлению + public bool CanMove(DirectionType direction) + { + if (EntityTank == null) + { + return false; + } + return direction switch + { + //влево + DirectionType.Left => _startPosX - EntityTank.Step > 0, + //вверх + DirectionType.Up => _startPosY - EntityTank.Step > 0, + // вправо + DirectionType.Right => _startPosX + _tankWidth + EntityTank.Step < _pictureWidth, + //вниз + DirectionType.Down => _startPosY + _tankHeight + EntityTank.Step < _pictureHeight, + _ => false, + }; + } + + /// + /// Изменение направления перемещения + /// + /// Направление + public void MoveTransport(DirectionType direction) + { + if (!CanMove(direction) || EntityTank == null) + { + return; + } + switch (direction) + { + //влево + case DirectionType.Left: + _startPosX -= (int)EntityTank.Step; + break; + //вверх + case DirectionType.Up: + _startPosY -= (int)EntityTank.Step; + break; + // вправо + case DirectionType.Right: + _startPosX += (int)EntityTank.Step; + break; + //вниз + case DirectionType.Down: + _startPosY += (int)EntityTank.Step; + break; + } + } + /// + /// Установка позиции + /// + /// Координата X + /// Координата Y + public void SetPosition(int x, int y) + { + if (EntityTank == null) return; + while (x + _tankWidth > _pictureWidth) + { + x -= (int)EntityTank.Step; + } + while (x < 0) + { + x += (int)EntityTank.Step; + } + while (y + _tankHeight > _pictureHeight) + { + y -= (int)EntityTank.Step; + } + while (y < 0) + { + y += (int)EntityTank.Step; + } + _startPosX = x; + _startPosY = y; + } + + /// + /// Прорисовка объекта + /// + /// + public virtual void DrawTransport(Graphics g) + { + if (EntityTank == null) { return; } + Pen pen = new(Color.Black); + pen.Width = 2; + Brush brush = new SolidBrush(EntityTank.BodyColor); + + Random random = new Random(); + Brush additionalBrush = new SolidBrush(EntityTank.AdditionalColor); + + // границы зенитной установки + g.DrawRectangle(pen, _startPosX + 3, _startPosY + 60, 121, 23); + g.DrawRectangle(pen, _startPosX + 20, _startPosY + 43, 54, 16); + g.DrawRectangle(pen, _startPosX + 42, _startPosY + 33, 16, 9); + + // корпус + g.FillRectangle(brush, _startPosX + 3, _startPosY + 60, 121, 23); + g.FillRectangle(brush, _startPosX + 20, _startPosY + 43, 54, 16); + g.FillRectangle(brush, _startPosX + 42, _startPosY + 33, 16, 9); + + // контур гусеницы + g.DrawLine(pen, _startPosX + 13, _startPosY + 100, _startPosX + 114, _startPosY + 100); + g.DrawLine(pen, _startPosX + 6, _startPosY + 99, _startPosX + 16, _startPosY + 99); + g.DrawLine(pen, _startPosX + 4, _startPosY + 98, _startPosX + 6, _startPosY + 98); + g.DrawLine(pen, _startPosX + 4, _startPosY + 97, _startPosX + 4, _startPosY + 86); + g.DrawLine(pen, _startPosX + 4, _startPosY + 86, _startPosX + 5, _startPosY + 86); + g.DrawLine(pen, _startPosX + 5, _startPosY + 85, _startPosX + 10, _startPosY + 85); + g.DrawLine(pen, _startPosX + 10, _startPosY + 84, _startPosX + 116, _startPosY + 84); + g.DrawLine(pen, _startPosX + 116, _startPosY + 85, _startPosX + 123, _startPosY + 85); + g.DrawLine(pen, _startPosX + 124, _startPosY + 86, _startPosX + 125, _startPosY + 86); + g.DrawLine(pen, _startPosX + 125, _startPosY + 87, _startPosX + 125, _startPosY + 97); + g.DrawLine(pen, _startPosX + 123, _startPosY + 98, _startPosX + 125, _startPosY + 98); + g.DrawLine(pen, _startPosX + 115, _startPosY + 99, _startPosX + 123, _startPosY + 99); + + //гусеница + g.FillRectangle(additionalBrush, _startPosX + 4, _startPosY + 87, 120, 10); + g.FillRectangle(additionalBrush, _startPosX + 19, _startPosY + 85, 92, 2); + g.FillRectangle(additionalBrush, _startPosX + 14, _startPosY + 93, 100, 7); + + // контур колес + g.DrawEllipse(pen, _startPosX + 5, _startPosY + 83, 18, 17); + g.DrawEllipse(pen, _startPosX + 30, _startPosY + 88, 15, 12); + g.DrawEllipse(pen, _startPosX + 50, _startPosY + 88, 15, 12); + g.DrawEllipse(pen, _startPosX + 70, _startPosY + 88, 15, 12); + g.DrawEllipse(pen, _startPosX + 87, _startPosY + 88, 15, 12); + g.DrawEllipse(pen, _startPosX + 107, _startPosY + 83, 18, 17); + + // контур верхних катков + g.DrawEllipse(pen, _startPosX + 43, _startPosY + 83, 7, 5); + g.DrawEllipse(pen, _startPosX + 64, _startPosY + 83, 7, 5); + g.DrawEllipse(pen, _startPosX + 82, _startPosY + 83, 7, 5); + + + // колеса + g.FillEllipse(brush, _startPosX + 5, _startPosY + 83, 18, 17); + g.FillEllipse(brush, _startPosX + 30, _startPosY + 88, 15, 12); + g.FillEllipse(brush, _startPosX + 50, _startPosY + 88, 15, 12); + g.FillEllipse(brush, _startPosX + 70, _startPosY + 88, 15, 12); + g.FillEllipse(brush, _startPosX + 87, _startPosY + 88, 15, 12); + g.FillEllipse(brush, _startPosX + 107, _startPosY + 83, 18, 17); + + // верхние катки + g.FillEllipse(brush, _startPosX + 43, _startPosY + 83, 7, 5); + g.FillEllipse(brush, _startPosX + 64, _startPosY + 83, 7, 5); + g.FillEllipse(brush, _startPosX + 82, _startPosY + 83, 7, 5); + } + } +} diff --git a/ProjectAntiAirCraftGun/Entities/EntityAntiAircraftGun.cs b/ProjectAntiAirCraftGun/Entities/EntityAntiAircraftGun.cs new file mode 100644 index 0000000..d9d0ee6 --- /dev/null +++ b/ProjectAntiAirCraftGun/Entities/EntityAntiAircraftGun.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectAntiAircraftGun.Entities +{ + public class EntityAntiAircraftGun : EntityTank + { + + /// + /// Дополнительный цвет (для опциональных элементов) + /// + public Color AdditionalColor { get; private set; } + + /// + /// Радар + /// + public bool Radar { get; private set; } + + /// + /// люк зенитной установки + /// + public bool Hatch { get; private set; } + + /// + /// пушка танк + /// + public bool Cannon { get; private set; } + + /// + /// Шаг перемещения зенитной установки + /// + public double Step => (double)Speed * 100 / Weight; + + /// + /// Инициализация полей объекта-класс зенитной установки + /// + /// Скорость + /// Вес зенитной установки + /// Основной цвет + /// Дополнительный цвет + /// Признак наличия радара + /// Признак наличия люка зенитной установки + /// Признак наличия пушки зенитной установки + public EntityAntiAircraftGun(int speed, double weight, Color bodyColor, Color additionalColor, bool radar, bool hatch, bool cannon) : base(speed, weight, bodyColor, additionalColor) + { + AdditionalColor = additionalColor; + Hatch = hatch; + Radar = radar; + Cannon = cannon; + } + } +} diff --git a/ProjectAntiAirCraftGun/Entities/EntityTank.cs b/ProjectAntiAirCraftGun/Entities/EntityTank.cs new file mode 100644 index 0000000..dbe6140 --- /dev/null +++ b/ProjectAntiAirCraftGun/Entities/EntityTank.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectAntiAircraftGun.Entities +{ + public 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 double Step => (double)Speed * 100 / Weight; + /// + /// Конструктор с параметрами + /// + /// Скорость + /// Вес автомобиля + /// Основной цвет + public EntityTank(int speed, double weight, Color bodyColor, Color additionalColor) + { + Speed = speed; + Weight = weight; + BodyColor = bodyColor; + AdditionalColor = additionalColor; + } + } +} diff --git a/ProjectAntiAirCraftGun/FormAntiAircraftGun.Designer.cs b/ProjectAntiAirCraftGun/FormAntiAircraftGun.Designer.cs new file mode 100644 index 0000000..eb2e726 --- /dev/null +++ b/ProjectAntiAirCraftGun/FormAntiAircraftGun.Designer.cs @@ -0,0 +1,178 @@ +namespace ProjectAntiAircraftGun +{ + partial class FormAntiAircraftGun + { + /// + /// 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() + { + pictureBoxAntiAircraftGun = new PictureBox(); + buttonCreateAntiAircraftGun = new Button(); + buttonRight = new Button(); + buttonLeft = new Button(); + buttonDown = new Button(); + buttonUp = new Button(); + comboBoxStrategy = new ComboBox(); + buttonCreateTank = new Button(); + buttonStep = new Button(); + ((System.ComponentModel.ISupportInitialize)pictureBoxAntiAircraftGun).BeginInit(); + SuspendLayout(); + // + // pictureBoxAntiAircraftGun + // + pictureBoxAntiAircraftGun.Dock = DockStyle.Fill; + pictureBoxAntiAircraftGun.Location = new Point(0, 0); + pictureBoxAntiAircraftGun.Name = "pictureBoxAntiAircraftGun"; + pictureBoxAntiAircraftGun.Size = new Size(800, 450); + pictureBoxAntiAircraftGun.SizeMode = PictureBoxSizeMode.AutoSize; + pictureBoxAntiAircraftGun.TabIndex = 0; + pictureBoxAntiAircraftGun.TabStop = false; + // + // buttonCreateAntiAircraftGun + // + buttonCreateAntiAircraftGun.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + buttonCreateAntiAircraftGun.Location = new Point(12, 415); + buttonCreateAntiAircraftGun.Name = "buttonCreateAntiAircraftGun"; + buttonCreateAntiAircraftGun.Size = new Size(174, 23); + buttonCreateAntiAircraftGun.TabIndex = 1; + buttonCreateAntiAircraftGun.Text = "создать зенитную установку"; + buttonCreateAntiAircraftGun.UseVisualStyleBackColor = true; + buttonCreateAntiAircraftGun.Click += ButtonCreateAntiAircraftGun; + // + // buttonRight + // + buttonRight.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonRight.BackgroundImage = Properties.Resources.png_transparent_grammatical_person_paper_narration_direzione_didattica_statale_gestione_scuola_elementare_copy_print_right_arrow_miscellaneous_game_angle; + buttonRight.BackgroundImageLayout = ImageLayout.Zoom; + buttonRight.Location = new Point(739, 413); + buttonRight.Name = "buttonRight"; + buttonRight.Size = new Size(61, 30); + buttonRight.TabIndex = 2; + buttonRight.UseVisualStyleBackColor = true; + buttonRight.Click += ButtonMove_Click; + // + // buttonLeft + // + buttonLeft.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonLeft.BackgroundImage = Properties.Resources.left; + buttonLeft.BackgroundImageLayout = ImageLayout.Zoom; + buttonLeft.Location = new Point(605, 413); + buttonLeft.Name = "buttonLeft"; + buttonLeft.Size = new Size(61, 30); + buttonLeft.TabIndex = 6; + buttonLeft.UseVisualStyleBackColor = true; + buttonLeft.Click += ButtonMove_Click; + // + // buttonDown + // + buttonDown.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonDown.BackgroundImage = Properties.Resources.bottom; + buttonDown.BackgroundImageLayout = ImageLayout.Zoom; + buttonDown.Location = new Point(672, 415); + buttonDown.Name = "buttonDown"; + buttonDown.Size = new Size(61, 30); + buttonDown.TabIndex = 7; + buttonDown.UseVisualStyleBackColor = true; + buttonDown.Click += ButtonMove_Click; + // + // buttonUp + // + buttonUp.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonUp.BackgroundImage = Properties.Resources.top; + buttonUp.BackgroundImageLayout = ImageLayout.Zoom; + buttonUp.Location = new Point(672, 379); + buttonUp.Name = "buttonUp"; + buttonUp.Size = new Size(61, 30); + buttonUp.TabIndex = 8; + buttonUp.UseVisualStyleBackColor = true; + buttonUp.Click += ButtonMove_Click; + // + // comboBoxStrategy + // + comboBoxStrategy.Anchor = AnchorStyles.Top | AnchorStyles.Right; + comboBoxStrategy.DropDownStyle = ComboBoxStyle.DropDownList; + comboBoxStrategy.FormattingEnabled = true; + comboBoxStrategy.Items.AddRange(new object[] { "0", "1" }); + comboBoxStrategy.Location = new Point(679, 0); + comboBoxStrategy.Name = "comboBoxStrategy"; + comboBoxStrategy.Size = new Size(121, 23); + comboBoxStrategy.TabIndex = 9; + // + // buttonCreateTank + // + buttonCreateTank.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + buttonCreateTank.Location = new Point(192, 415); + buttonCreateTank.Name = "buttonCreateTank"; + buttonCreateTank.Size = new Size(108, 23); + buttonCreateTank.TabIndex = 10; + buttonCreateTank.Text = "создать танк"; + buttonCreateTank.UseVisualStyleBackColor = true; + buttonCreateTank.Click += ButtonCreateTank_Click; + // + // buttonStep + // + buttonStep.Anchor = AnchorStyles.Top | AnchorStyles.Right; + buttonStep.Location = new Point(704, 29); + buttonStep.Name = "buttonStep"; + buttonStep.Size = new Size(75, 23); + buttonStep.TabIndex = 11; + buttonStep.Text = "шаг"; + buttonStep.UseVisualStyleBackColor = true; + buttonStep.Click += ButtonStep_Click; + // + // FormAntiAircraftGun + // + AutoScaleDimensions = new SizeF(7F, 15F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(800, 450); + Controls.Add(buttonStep); + Controls.Add(buttonCreateTank); + Controls.Add(comboBoxStrategy); + Controls.Add(buttonUp); + Controls.Add(buttonDown); + Controls.Add(buttonLeft); + Controls.Add(buttonRight); + Controls.Add(buttonCreateAntiAircraftGun); + Controls.Add(pictureBoxAntiAircraftGun); + Name = "FormAntiAircraftGun"; + Text = "Зенитная установка"; + ((System.ComponentModel.ISupportInitialize)pictureBoxAntiAircraftGun).EndInit(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private PictureBox pictureBoxAntiAircraftGun; + private Button buttonCreateAntiAircraftGun; + private Button buttonRight; + private Button buttonLeft; + private Button buttonDown; + private Button buttonUp; + private Button buttonCreateTank; + private Button buttonStep; + private ComboBox comboBoxStrategy; + } +} \ No newline at end of file diff --git a/ProjectAntiAirCraftGun/FormAntiAircraftGun.cs b/ProjectAntiAirCraftGun/FormAntiAircraftGun.cs new file mode 100644 index 0000000..a9d1f24 --- /dev/null +++ b/ProjectAntiAirCraftGun/FormAntiAircraftGun.cs @@ -0,0 +1,156 @@ +using ProjectAntiAircraftGun.DrawingObjects; +using ProjectAntiAircraftGun.MovementStrategy; + +namespace ProjectAntiAircraftGun +{ + /// + /// " " + /// + public partial class FormAntiAircraftGun : Form + { + /// + /// - + /// + private DrawingTank? _drawingTank; + /// + /// + /// + private AbstractStrategy? _abstractStrategy; + + /// + /// + /// + public FormAntiAircraftGun() + { + InitializeComponent(); + } + + /// + /// + /// + private void Draw() + { + if (_drawingTank == null) + { + return; + } + Bitmap bmp = new(pictureBoxAntiAircraftGun.Width, + pictureBoxAntiAircraftGun.Height); + Graphics gr = Graphics.FromImage(bmp); + _drawingTank.DrawTransport(gr); + pictureBoxAntiAircraftGun.Image = bmp; + } + + /// + /// " " + /// + /// + /// + private void ButtonCreateTank_Click(object sender, EventArgs e) + { + Random random = new(); + _drawingTank = new DrawingTank(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)), + pictureBoxAntiAircraftGun.Width, pictureBoxAntiAircraftGun.Height); + _drawingTank.SetPosition(random.Next(10, 100), random.Next(10, + 100)); + Draw(); + } + + /// + /// " " + /// + /// + /// + private void ButtonCreateAntiAircraftGun(object sender, EventArgs e) + { + Random random = new(); + _drawingTank = new DrawingAntiAircraftGun(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)), Convert.ToBoolean(random.Next(0, 2)), + pictureBoxAntiAircraftGun.Width, pictureBoxAntiAircraftGun.Height); + _drawingTank.SetPosition(random.Next(10, 100), random.Next(10, + 100)); + Draw(); + + } + + /// + /// + /// + /// + /// + private void ButtonMove_Click(object sender, EventArgs e) + { + if (_drawingTank == null) return; + + string name = ((Button)sender)?.Name ?? string.Empty; + switch (name) + { + case "buttonUp": + _drawingTank.MoveTransport(DirectionType.Up); + break; + case "buttonDown": + _drawingTank.MoveTransport(DirectionType.Down); + break; + case "buttonLeft": + _drawingTank.MoveTransport(DirectionType.Left); + break; + case "buttonRight": + _drawingTank.MoveTransport(DirectionType.Right); + break; + } + Draw(); + } + + /// + /// "" + /// + /// + /// + private void ButtonStep_Click(object sender, EventArgs e) + { + if (_drawingTank == null) + { + return; + } + if (comboBoxStrategy.Enabled) + { + _abstractStrategy = comboBoxStrategy.SelectedIndex + switch + { + 0 => new MoveToCenter(), + 1 => new MoveToBorder(), + _ => null, + }; + if (_abstractStrategy == null) + { + return; + } + _abstractStrategy.SetData(new + DrawingObjectTank(_drawingTank), pictureBoxAntiAircraftGun.Width, + pictureBoxAntiAircraftGun.Height); + comboBoxStrategy.Enabled = false; + } + if (_abstractStrategy == null) + { + return; + } + _abstractStrategy.MakeStep(); + Draw(); + if (_abstractStrategy.GetStatus() == Status.Finish) + { + comboBoxStrategy.Enabled = true; + _abstractStrategy = null; + } + } + } +} \ No newline at end of file diff --git a/AntiAircraftGun/Form1.resx b/ProjectAntiAirCraftGun/FormAntiAircraftGun.resx similarity index 93% rename from AntiAircraftGun/Form1.resx rename to ProjectAntiAirCraftGun/FormAntiAircraftGun.resx index 1af7de1..af32865 100644 --- a/AntiAircraftGun/Form1.resx +++ b/ProjectAntiAirCraftGun/FormAntiAircraftGun.resx @@ -1,17 +1,17 @@  - diff --git a/ProjectAntiAirCraftGun/MovementStrategy/AbstractStrategy.cs b/ProjectAntiAirCraftGun/MovementStrategy/AbstractStrategy.cs new file mode 100644 index 0000000..4fe3140 --- /dev/null +++ b/ProjectAntiAirCraftGun/MovementStrategy/AbstractStrategy.cs @@ -0,0 +1,132 @@ +using ProjectAntiAircraftGun; +using static System.Windows.Forms.AxHost; +using static System.Windows.Forms.VisualStyles.VisualStyleElement; + +namespace ProjectAntiAircraftGun.MovementStrategy +{ + /// + /// Класс-стратегия перемещения объекта + /// + public abstract class AbstractStrategy + { + /// + /// Перемещаемый объект + /// + private IMoveableObject? _moveableObject; + /// + /// Статус перемещения + /// + private Status _state = Status.NotInit; + /// + /// Ширина поля + /// + protected int FieldWidth { get; private set; } + /// + /// Высота поля + /// + protected int FieldHeight { get; private set; } + /// + /// Статус перемещения + /// + public Status GetStatus() { return _state; } + /// + /// Установка данных + /// + /// Перемещаемый объект + /// Ширина поля + /// Высота поля + public void SetData(IMoveableObject moveableObject, int width, int + height) + { + if (moveableObject == null) + { + _state = Status.NotInit; + return; + } + _state = Status.InProgress; + _moveableObject = moveableObject; + FieldWidth = width; + FieldHeight = height; + } + /// + /// Шаг перемещения + /// + public void MakeStep() + { + if (_state != Status.InProgress) + { + return; + } + if (IsTargetDestinaion()) + { + _state = Status.Finish; + return; + } + MoveToTarget(); + } + + /// + /// Перемещение влево + /// + /// Результат перемещения (true - удалось переместиться, false - неудача) + protected bool MoveLeft() => MoveTo(DirectionType.Left); + /// + /// Перемещение вправо + /// + /// Результат перемещения (true - удалось переместиться, false - неудача) + protected bool MoveRight() => MoveTo(DirectionType.Right); + /// + /// Перемещение вверх + /// + /// Результат перемещения (true - удалось переместиться,false - неудача) + protected bool MoveUp() => MoveTo(DirectionType.Up); + /// + /// Перемещение вниз + /// + /// Результат перемещения (true - удалось переместиться, false - неудача) + protected bool MoveDown() => MoveTo(DirectionType.Down); + /// + /// Параметры объекта + /// + protected ObjectParameters? GetObjectParameters => _moveableObject?.GetObjectPosition; + /// + /// Шаг объекта + /// + /// + protected int? GetStep() + { + if (_state != Status.InProgress) + { + return null; + } + return _moveableObject?.GetStep; + } + /// + /// Перемещение к цели + /// + protected abstract void MoveToTarget(); + /// + /// Достигнута ли цель + /// + /// + protected abstract bool IsTargetDestinaion(); + /// + /// Попытка перемещения в требуемом направлении + /// + /// Направление + /// Результат попытки (true - удалось переместиться, false - неудача) + private bool MoveTo(DirectionType directionType) + { + if (_state != Status.InProgress) + { + return false; + } + if (_moveableObject?.CheckCanMove(directionType) ?? false) + { + _moveableObject.MoveObject(directionType); + return true; + } + return false; + } + } +} \ No newline at end of file diff --git a/ProjectAntiAirCraftGun/MovementStrategy/DrawingObjectTank.cs b/ProjectAntiAirCraftGun/MovementStrategy/DrawingObjectTank.cs new file mode 100644 index 0000000..1229ff9 --- /dev/null +++ b/ProjectAntiAirCraftGun/MovementStrategy/DrawingObjectTank.cs @@ -0,0 +1,32 @@ +using ProjectAntiAircraftGun.DrawingObjects; +namespace ProjectAntiAircraftGun.MovementStrategy +{ + /// + /// Реализация интерфейса IDrawningObject для работы с объектом Drawning (паттерн Adapter) + + public class DrawingObjectTank : IMoveableObject + { + private readonly DrawingTank? _drawingTank = null; + public DrawingObjectTank(DrawingTank drawingTank) + { + _drawingTank = drawingTank; + } + public ObjectParameters? GetObjectPosition + { + get + { + if (_drawingTank == null || _drawingTank.EntityTank == null) + { + return null; + } + return new ObjectParameters(_drawingTank.GetPosX, + _drawingTank.GetPosY, _drawingTank.GetWidth, _drawingTank.GetHeight); + } + } + public int GetStep => (int)(_drawingTank?.EntityTank?.Step ?? 0); + public bool CheckCanMove(DirectionType direction) => + _drawingTank?.CanMove(direction) ?? false; + public void MoveObject(DirectionType direction) => + _drawingTank?.MoveTransport(direction); + } +} diff --git a/ProjectAntiAirCraftGun/MovementStrategy/IMoveableObject.cs b/ProjectAntiAirCraftGun/MovementStrategy/IMoveableObject.cs new file mode 100644 index 0000000..e29e723 --- /dev/null +++ b/ProjectAntiAirCraftGun/MovementStrategy/IMoveableObject.cs @@ -0,0 +1,29 @@ +using ProjectAntiAircraftGun; +namespace ProjectAntiAircraftGun.MovementStrategy +{ + /// + /// Интерфейс для работы с перемещаемым объектом + /// + public interface IMoveableObject + { + /// + /// Получение координаты X объекта + /// + ObjectParameters? GetObjectPosition { get; } + /// + /// Шаг объекта + /// + int GetStep { get; } + /// + /// Проверка, можно ли переместиться по нужному направлению + /// + /// + /// + bool CheckCanMove(DirectionType direction); + /// + /// Изменение направления пермещения объекта + /// + /// Направление + void MoveObject(DirectionType direction); + } +} \ No newline at end of file diff --git a/ProjectAntiAirCraftGun/MovementStrategy/MoveToBorder.cs b/ProjectAntiAirCraftGun/MovementStrategy/MoveToBorder.cs new file mode 100644 index 0000000..b9b4c06 --- /dev/null +++ b/ProjectAntiAirCraftGun/MovementStrategy/MoveToBorder.cs @@ -0,0 +1,60 @@ +using ProjectAntiAircraftGun.Entities; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectAntiAircraftGun.MovementStrategy +{ + /// + /// Стратегия перемещения объекта к правому нижнему краю формы + /// + public class MoveToBorder : AbstractStrategy + { + protected override bool IsTargetDestinaion() + { + var objParams = GetObjectParameters; + if (objParams == null) + { + return false; + } + return objParams.ObjectMiddleHorizontal <= FieldWidth && + objParams.ObjectMiddleHorizontal + GetStep() >= FieldWidth && + objParams.ObjectMiddleVertical <= FieldHeight && + objParams.ObjectMiddleVertical + GetStep() >= FieldHeight; + } + protected override void MoveToTarget() + { + var objParams = GetObjectParameters; + if (objParams == null) + { + return; + } + var diffX = objParams.ObjectMiddleHorizontal - FieldWidth; + if (Math.Abs(diffX) > GetStep()) + { + if (diffX > 0) + { + MoveLeft(); + } + else + { + MoveRight(); + } + } + var diffY = objParams.ObjectMiddleVertical - FieldHeight; + if (Math.Abs(diffY) > GetStep()) + { + if (diffY > 0) + { + MoveUp(); + } + else + { + MoveDown(); + } + } + } + } +} diff --git a/ProjectAntiAirCraftGun/MovementStrategy/MoveToCenter.cs b/ProjectAntiAirCraftGun/MovementStrategy/MoveToCenter.cs new file mode 100644 index 0000000..972fbf9 --- /dev/null +++ b/ProjectAntiAirCraftGun/MovementStrategy/MoveToCenter.cs @@ -0,0 +1,60 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectAntiAircraftGun.MovementStrategy +{ + /// + /// Стратегия перемещения объекта в центр экрана + /// + public class MoveToCenter : AbstractStrategy + { + protected override bool IsTargetDestinaion() + { + var objParams = GetObjectParameters; + if (objParams == null) + { + return false; + } + return objParams.ObjectMiddleHorizontal <= FieldWidth / 2 && + objParams.ObjectMiddleHorizontal + GetStep() >= FieldWidth / 2 && + objParams.ObjectMiddleVertical <= FieldHeight / 2 && + objParams.ObjectMiddleVertical + GetStep() >= FieldHeight / 2; + } + protected override void MoveToTarget() + { + var objParams = GetObjectParameters; + if (objParams == null) + { + return; + } + var diffX = objParams.ObjectMiddleHorizontal - FieldWidth / 2; + if (Math.Abs(diffX) > GetStep()) + { + if (diffX > 0) + { + MoveLeft(); + } + else + { + MoveRight(); + } + } + var diffY = objParams.ObjectMiddleVertical - FieldHeight / 2; + if (Math.Abs(diffY) > GetStep()) + { + if (diffY > 0) + { + MoveUp(); + } + else + { + MoveDown(); + } + } + } + } +} + diff --git a/ProjectAntiAirCraftGun/MovementStrategy/ObjectParametrs.cs b/ProjectAntiAirCraftGun/MovementStrategy/ObjectParametrs.cs new file mode 100644 index 0000000..2348c75 --- /dev/null +++ b/ProjectAntiAirCraftGun/MovementStrategy/ObjectParametrs.cs @@ -0,0 +1,51 @@ +namespace ProjectAntiAircraftGun.MovementStrategy +{ + /// + /// Параметры-координаты объекта + /// + public class ObjectParameters + { + private readonly int _x; + private readonly int _y; + private readonly int _width; + private readonly int _height; + /// + /// Левая граница + /// + public int LeftBorder => _x; + /// + /// Верхняя граница + /// + public int TopBorder => _y; + /// + /// Правая граница + /// + public int RightBorder => _x + _width; + /// + /// Нижняя граница + /// + public int DownBorder => _y + _height; + /// + /// Середина объекта + /// + public int ObjectMiddleHorizontal => _x + _width / 2; + /// + /// Середина объекта + /// + public int ObjectMiddleVertical => _y + _height / 2; + /// + /// Конструктор + /// + /// Координата X + /// Координата Y + /// Ширина + /// Высота + public ObjectParameters(int x, int y, int width, int height) + { + _x = x; + _y = y; + _width = width; + _height = height; + } + } +} diff --git a/ProjectAntiAirCraftGun/MovementStrategy/Status.cs b/ProjectAntiAirCraftGun/MovementStrategy/Status.cs new file mode 100644 index 0000000..ee3877c --- /dev/null +++ b/ProjectAntiAirCraftGun/MovementStrategy/Status.cs @@ -0,0 +1,12 @@ +namespace ProjectAntiAircraftGun.MovementStrategy +{ + /// + /// Статус выполнения операции перемещения + /// + public enum Status + { + NotInit, + InProgress, + Finish + } +} diff --git a/ProjectAntiAirCraftGun/Program.cs b/ProjectAntiAirCraftGun/Program.cs new file mode 100644 index 0000000..e5ff67e --- /dev/null +++ b/ProjectAntiAirCraftGun/Program.cs @@ -0,0 +1,17 @@ +namespace ProjectAntiAircraftGun +{ + internal static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + // To customize application configuration such as set high DPI settings or default font, + // see https://aka.ms/applicationconfiguration. + ApplicationConfiguration.Initialize(); + Application.Run(new FormAntiAircraftGun()); + } + } +} \ No newline at end of file diff --git a/AntiAircraftGun/AntiAircraftGun.csproj b/ProjectAntiAirCraftGun/ProjectAntiAircraftGun.csproj similarity index 78% rename from AntiAircraftGun/AntiAircraftGun.csproj rename to ProjectAntiAirCraftGun/ProjectAntiAircraftGun.csproj index 2b10ea1..13ee123 100644 --- a/AntiAircraftGun/AntiAircraftGun.csproj +++ b/ProjectAntiAirCraftGun/ProjectAntiAircraftGun.csproj @@ -8,12 +8,6 @@ enable - - - - - - True diff --git a/ProjectAntiAirCraftGun/ProjectAntiAircraftGun.sln b/ProjectAntiAirCraftGun/ProjectAntiAircraftGun.sln new file mode 100644 index 0000000..b7ca572 --- /dev/null +++ b/ProjectAntiAirCraftGun/ProjectAntiAircraftGun.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.5.33530.505 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectAntiAircraftGun", "ProjectAntiAircraftGun.csproj", "{3D00CFC0-D6DA-4872-B170-5D543632BC67}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3D00CFC0-D6DA-4872-B170-5D543632BC67}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3D00CFC0-D6DA-4872-B170-5D543632BC67}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3D00CFC0-D6DA-4872-B170-5D543632BC67}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3D00CFC0-D6DA-4872-B170-5D543632BC67}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {0F97A468-ED8E-4382-904C-8D6C96065D61} + EndGlobalSection +EndGlobal diff --git a/ProjectAntiAirCraftGun/Properties/Resources.Designer.cs b/ProjectAntiAirCraftGun/Properties/Resources.Designer.cs new file mode 100644 index 0000000..758a8e2 --- /dev/null +++ b/ProjectAntiAirCraftGun/Properties/Resources.Designer.cs @@ -0,0 +1,145 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +namespace ProjectAntiAircraftGun.Properties { + using System; + + + /// + /// Класс ресурса со строгой типизацией для поиска локализованных строк и т.д. + /// + // Этот класс создан автоматически классом StronglyTypedResourceBuilder + // с помощью такого средства, как ResGen или Visual Studio. + // Чтобы добавить или удалить член, измените файл .ResX и снова запустите ResGen + // с параметром /str или перестройте свой проект VS. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.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("ProjectAntiAircraftGun.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; + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap bottom { + get { + object obj = ResourceManager.GetObject("bottom", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap left { + get { + object obj = ResourceManager.GetObject("left", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap png_clipart_computer_icons_uma_musume_pretty_derby_fate_grand_order_saber_kemono_friends_three_arrow_game_angle { + get { + object obj = ResourceManager.GetObject("png-clipart-computer-icons-uma-musume-pretty-derby-fate-grand-order-saber-kemono-" + + "friends-three-arrow-game-angle", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap png_transparent_arrow_arrow_cdr_angle_triangle { + get { + object obj = ResourceManager.GetObject("png-transparent-arrow-arrow-cdr-angle-triangle", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap png_transparent_arrow_left_thin_zondicons_icon { + get { + object obj = ResourceManager.GetObject("png-transparent-arrow-left-thin-zondicons-icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap png_transparent_grammatical_person_paper_narration_direzione_didattica_statale_gestione_scuola_elementare_copy_print_right_arrow_miscellaneous_game_angle { + get { + object obj = ResourceManager.GetObject("png-transparent-grammatical-person-paper-narration-direzione-didattica-statale-ge" + + "stione-scuola-elementare-copy-print-right-arrow-miscellaneous-game-angle", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap right { + get { + object obj = ResourceManager.GetObject("right", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap top { + get { + object obj = ResourceManager.GetObject("top", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/ProjectAntiAirCraftGun/Properties/Resources.resx b/ProjectAntiAirCraftGun/Properties/Resources.resx new file mode 100644 index 0000000..4f804e0 --- /dev/null +++ b/ProjectAntiAirCraftGun/Properties/Resources.resx @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + ..\Resources\png-transparent-arrow-arrow-cdr-angle-triangle.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\png-clipart-computer-icons-uma-musume-pretty-derby-fate-grand-order-saber-kemono-friends-three-arrow-game-angle.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\png-transparent-grammatical-person-paper-narration-direzione-didattica-statale-gestione-scuola-elementare-copy-print-right-arrow-miscellaneous-game-angle.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\png-transparent-arrow-left-thin-zondicons-icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\bottom.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\left.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\right.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\top.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/ProjectAntiAirCraftGun/Resources/bottom.png b/ProjectAntiAirCraftGun/Resources/bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..2228e2f2325dbfa2bb565621716f72fc991edbab GIT binary patch literal 2881 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 literal 0 HcmV?d00001 diff --git a/ProjectAntiAirCraftGun/Resources/png-clipart-computer-icons-uma-musume-pretty-derby-fate-grand-order-saber-kemono-friends-three-arrow-game-angle.png b/ProjectAntiAirCraftGun/Resources/png-clipart-computer-icons-uma-musume-pretty-derby-fate-grand-order-saber-kemono-friends-three-arrow-game-angle.png new file mode 100644 index 0000000000000000000000000000000000000000..32b8866fc857f7a26d8e6560cf4e71da7b2ffb7b GIT binary patch literal 2939 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 F{{;<%GOPdq literal 0 HcmV?d00001 diff --git a/ProjectAntiAirCraftGun/Resources/png-transparent-arrow-left-thin-zondicons-icon.png b/ProjectAntiAirCraftGun/Resources/png-transparent-arrow-left-thin-zondicons-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8d65f1d82eabd6132028e2261e8ad130a5f031d8 GIT binary patch literal 4573 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 EU*8IyivR!s literal 0 HcmV?d00001 diff --git a/ProjectAntiAirCraftGun/Resources/png-transparent-grammatical-person-paper-narration-direzione-didattica-statale-gestione-scuola-elementare-copy-print-right-arrow-miscellaneous-game-angle.png b/ProjectAntiAirCraftGun/Resources/png-transparent-grammatical-person-paper-narration-direzione-didattica-statale-gestione-scuola-elementare-copy-print-right-arrow-miscellaneous-game-angle.png new file mode 100644 index 0000000000000000000000000000000000000000..c54d1d7a7365250b5a4e5dae97e6a0ce60aae107 GIT binary patch literal 2404 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 literal 0 HcmV?d00001 diff --git a/ProjectAntiAirCraftGun/Resources/top.png b/ProjectAntiAirCraftGun/Resources/top.png new file mode 100644 index 0000000000000000000000000000000000000000..29abf7e4b00592f85c1fd5c2c876cf43eaeeb8a8 GIT binary patch literal 3141 zcmd5;eNYo;8h>^-$r1@BP`(rpw4!`9MwEi5!qP}Z@FOaMCC z6R5!;T8WAl5doPwf5kbWqwFp)NI!Gij>@A&frgiwknVXxro!NPx=QsPl zzvulu&(8e*Az8W9Y|_+80ARK(aLF0~lnJqX7RD^AEkoBb3lhI(=_gRuYCpgvtgZel z`~faxo4)ys&E$N^@{oYOzCN0!nM@{=H8eDsQrFHg30E2z9uF|NVf;mI#1?M>Fs)y< z#6Kjl`}spzT(6Jd`oCSOa8WuIeU*L7tf|#_`=a@--XmSCtn=lebdT|`kDHfUFSgoq z`RL4~Lp2XAPbryW$#4iyc!|W1$A5bASvevB@+Sy@YCr8^oAC|^(OlwR1nXTiSXmkE zG=Bd-KBO~nG4nqn#6v{)5IcNursM?WdA zMw0yUIZ~U!6_~wRcj`0Hjd7*bJdOBRBssZu{&2 zV-%##g*~IDlpWST)>F?*zXiiI=5rL4j?r`36*MQ>h2`|){fv4!CMeiE56c}Kp}WkF zApP}hpFN+0@Dcj@TPw0bXW*wzw*w;|zH2ohY1c42FgPLyzvYtIj);oI=%PpTm!dl!R4PK9=T%P{x&ThR^bPF(!_OE|?AZM_$g$ebkvEkQ z8`<~fuzYs^6IIV)4V_0l9@1N=`Y5r2fFs98>FC(@y|b7ao=s<%PTc-|9G=M06-(F?(#L=Hx- zWwv7D1%kSc-Z*6^M-_z#IN}zF2!(xDCGN1_%fNS7?G8paD8vbC*M+f{cG0OjW1K2q zno@;!h*X&eb>`%*=VSF8aWkUtfI2SuP;Y#Mi))b)JJ=#BveU>g@{t!*#L%9$Ys}hW zQJ=4#BEq9k#B<~L?7UCUw{7RO#j=LFk!r2nEiDNdIg0Fx5jm4HS3G$xWa8Mo*|J<$ zzde^^^rgZR64SP&FqDZzWEuAto@kp?k&Q}2O*OtJA+ZX6@G;OHX+elS5H`6IS^G)X zQ!7bvsWEtI(PYiysg!Y=gd>QhbystQq-+UH;SHd#GfV_MZk?RAYY*xbS7$FT}og(2tjX z2WoUI*z^IBX_O!K_X3#(lyjT{xV$MNYstA>e8vldYC)J83}~THOSb11maa0e$vM@m^sKM2gtI#N!h_#!CLix1P7W3vc=cn1-nid${T#{{qt0$7 z6|%NtJ0c*w@d*C-p8PQubP62~2W>rhfAAmR#%N1*lOMO)d^N5j!PH$YoSHP&wQAf6) z2LlRqv&d}Jkex&fd`h+|18-qL-l(O^-szp&A>|0K3M^gsPS1my8P1|DrI@NwOex|W z;O{}vfmWdHJrGljXf&p?P}1YB?k;@FC~#jbwWZT$_fTd6tP;CNr8UI4(cq zEnO+ZKqz_AS@d{=Ev0O|`#YI%@AMd?NA`jjfTWD>T%<~{BVJh8#(iWWso)pPQ(!LL zc#A7XQ&NM~al~v$aaa(G=9F$b_&6+NH@?p^ z--hZuyjE$YDq#j&=uX5i<@(w-ztl)!<0a2rYd2& zkYh%59$ClGBE^-=lpF!K6sE{NvfT;4EQc^i{U;WTfrFI@$+jS)(#R-i)#E$Ph-3|;M=ZC;VfVOvrno|gx5eYH!%{oC`w3B3HgY8EQ1SH|sAV?J6_N#v4njAwc471jo*ie@%dufte#!og8I-t8wyKn0@JlcFo57_HJM1XYYktWLRz;-}18Ldko~89=ZA9i@VU#?$5m7LoRinks zbTxboEqr9{%G-52R$BXAyt$qE^;a?C^E7uJA*=WkB>co4OUC(Xma3iaf+cIwm zbOGbGBZWO=1>~F2Zf~Vu{c=n&8Zfq-`;KuS=R)`dF2{o0H<2CLa&-ci0~Qn75%vTw z2ML_eJ6TWQa#&8EP2`>a--{(OZ=dhAcq_7q>vX{Ke065@~#OdJo rS3(%`-fgQ@ym#CF>tb*HdSB~zY;$0ef@{$@F3hrkl}pM#iT?UO%4r74 literal 0 HcmV?d00001 -- 2.25.1 From de7cafdec7df6e8e9433164c12ae87c670da2bc2 Mon Sep 17 00:00:00 2001 From: I1nur Date: Fri, 20 Oct 2023 00:40:49 +0400 Subject: [PATCH 2/3] changes --- ProjectAntiAirCraftGun/DirectionType.cs | 34 +++ .../DrawingObjects/DrawingAntiAircraftGun.cs | 78 ++++++ .../DrawingObjects/DrawingTank.cs | 265 ++++++++++++++++++ .../Entities/EntityAntiAircraftGun.cs | 55 ++++ ProjectAntiAirCraftGun/Entities/EntityTank.cs | 45 +++ .../FormAntiAircraftGun.Designer.cs | 178 ++++++++++++ ProjectAntiAirCraftGun/FormAntiAircraftGun.cs | 156 +++++++++++ .../FormAntiAircraftGun.resx | 120 ++++++++ .../MovementStrategy/AbstractStrategy.cs | 132 +++++++++ .../MovementStrategy/DrawingObjectTank.cs | 32 +++ .../MovementStrategy/IMoveableObject.cs | 29 ++ .../MovementStrategy/MoveToBorder.cs | 60 ++++ .../MovementStrategy/MoveToCenter.cs | 60 ++++ .../MovementStrategy/ObjectParametrs.cs | 51 ++++ .../MovementStrategy/Status.cs | 12 + ProjectAntiAirCraftGun/Program.cs | 17 ++ .../ProjectAntiAircraftGun.csproj | 26 ++ .../ProjectAntiAircraftGun.sln | 25 ++ .../Properties/Resources.Designer.cs | 145 ++++++++++ .../Properties/Resources.resx | 145 ++++++++++ ProjectAntiAirCraftGun/Resources/bottom.png | Bin 0 -> 2881 bytes ProjectAntiAirCraftGun/Resources/left.png | Bin 0 -> 2957 bytes ...-kemono-friends-three-arrow-game-angle.png | Bin 0 -> 2939 bytes ...sparent-arrow-arrow-cdr-angle-triangle.png | Bin 0 -> 4450 bytes ...sparent-arrow-left-thin-zondicons-icon.png | Bin 0 -> 4573 bytes ...t-right-arrow-miscellaneous-game-angle.png | Bin 0 -> 2404 bytes ProjectAntiAirCraftGun/Resources/right.png | Bin 0 -> 3343 bytes ProjectAntiAirCraftGun/Resources/top.png | Bin 0 -> 3141 bytes 28 files changed, 1665 insertions(+) create mode 100644 ProjectAntiAirCraftGun/DirectionType.cs create mode 100644 ProjectAntiAirCraftGun/DrawingObjects/DrawingAntiAircraftGun.cs create mode 100644 ProjectAntiAirCraftGun/DrawingObjects/DrawingTank.cs create mode 100644 ProjectAntiAirCraftGun/Entities/EntityAntiAircraftGun.cs create mode 100644 ProjectAntiAirCraftGun/Entities/EntityTank.cs create mode 100644 ProjectAntiAirCraftGun/FormAntiAircraftGun.Designer.cs create mode 100644 ProjectAntiAirCraftGun/FormAntiAircraftGun.cs create mode 100644 ProjectAntiAirCraftGun/FormAntiAircraftGun.resx create mode 100644 ProjectAntiAirCraftGun/MovementStrategy/AbstractStrategy.cs create mode 100644 ProjectAntiAirCraftGun/MovementStrategy/DrawingObjectTank.cs create mode 100644 ProjectAntiAirCraftGun/MovementStrategy/IMoveableObject.cs create mode 100644 ProjectAntiAirCraftGun/MovementStrategy/MoveToBorder.cs create mode 100644 ProjectAntiAirCraftGun/MovementStrategy/MoveToCenter.cs create mode 100644 ProjectAntiAirCraftGun/MovementStrategy/ObjectParametrs.cs create mode 100644 ProjectAntiAirCraftGun/MovementStrategy/Status.cs create mode 100644 ProjectAntiAirCraftGun/Program.cs create mode 100644 ProjectAntiAirCraftGun/ProjectAntiAircraftGun.csproj create mode 100644 ProjectAntiAirCraftGun/ProjectAntiAircraftGun.sln create mode 100644 ProjectAntiAirCraftGun/Properties/Resources.Designer.cs create mode 100644 ProjectAntiAirCraftGun/Properties/Resources.resx create mode 100644 ProjectAntiAirCraftGun/Resources/bottom.png create mode 100644 ProjectAntiAirCraftGun/Resources/left.png create mode 100644 ProjectAntiAirCraftGun/Resources/png-clipart-computer-icons-uma-musume-pretty-derby-fate-grand-order-saber-kemono-friends-three-arrow-game-angle.png create mode 100644 ProjectAntiAirCraftGun/Resources/png-transparent-arrow-arrow-cdr-angle-triangle.png create mode 100644 ProjectAntiAirCraftGun/Resources/png-transparent-arrow-left-thin-zondicons-icon.png create mode 100644 ProjectAntiAirCraftGun/Resources/png-transparent-grammatical-person-paper-narration-direzione-didattica-statale-gestione-scuola-elementare-copy-print-right-arrow-miscellaneous-game-angle.png create mode 100644 ProjectAntiAirCraftGun/Resources/right.png create mode 100644 ProjectAntiAirCraftGun/Resources/top.png diff --git a/ProjectAntiAirCraftGun/DirectionType.cs b/ProjectAntiAirCraftGun/DirectionType.cs new file mode 100644 index 0000000..bf12d1e --- /dev/null +++ b/ProjectAntiAirCraftGun/DirectionType.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectAntiAircraftGun +{ + ///

+ /// Направленте перемещения + /// + public enum DirectionType + { + /// + /// Вверх + /// + Up = 1, + + /// + /// Вниз + /// + Down = 2, + + /// + /// Влево + /// + Left = 3, + + /// + /// Вправо + /// + Right = 4 + } +} diff --git a/ProjectAntiAirCraftGun/DrawingObjects/DrawingAntiAircraftGun.cs b/ProjectAntiAirCraftGun/DrawingObjects/DrawingAntiAircraftGun.cs new file mode 100644 index 0000000..c24aac5 --- /dev/null +++ b/ProjectAntiAirCraftGun/DrawingObjects/DrawingAntiAircraftGun.cs @@ -0,0 +1,78 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ProjectAntiAircraftGun.Entities; + +namespace ProjectAntiAircraftGun.DrawingObjects +{ + /// + /// Класс, отвечающий за прорисовку и перемещение объекта-сущности + /// + public class DrawingAntiAircraftGun : DrawingTank + { + /// + /// Конструктор + /// + /// Скорость + /// Вес + /// Основной цвет + /// Дополнительный цвет + /// Признак наличия радара + /// Признак наличия люка + /// Признак наличия пушки + /// Ширина картинки + /// Высота картинки + public DrawingAntiAircraftGun(int speed, double weight, Color bodyColor, Color +additionalColor, bool radar, bool hatch, bool cannon, int width, int height) : + base(speed, weight, bodyColor, additionalColor, width, height, 102, 139) + { + if (EntityTank != null) + { + EntityTank = new EntityAntiAircraftGun(speed, weight, bodyColor, + additionalColor, radar, hatch, cannon); + } + } + + public override void DrawTransport(Graphics g) + { + + if (EntityTank is not EntityAntiAircraftGun antiAircraftGun) + { + return; + } + + Pen pen = new(Color.Black); + pen.Width = 2; + + base.DrawTransport(g); + + // радар + if (antiAircraftGun.Radar) + { + Pen penRadar = new(Color.DarkGreen); + g.DrawEllipse(penRadar, _startPosX + 52, _startPosY + 46, 21, 12); + g.DrawEllipse(penRadar, _startPosX + 55, _startPosY + 48, 14, 8); + pen = new(Color.Green); + g.DrawLine(penRadar, _startPosX + 61, _startPosY + 52, _startPosX + 70, _startPosY + 48); + } + + // пушка + if (antiAircraftGun.Cannon) + { + g.DrawLine(pen, _startPosX + 54, _startPosY + 33, _startPosX + 113, _startPosY + 2); + g.DrawLine(pen, _startPosX + 57, _startPosY + 35, _startPosX + 122, _startPosY + 2); + } + + // люк + if (antiAircraftGun.Hatch) + { + pen = new(antiAircraftGun.AdditionalColor); + g.DrawRectangle(pen, _startPosX + 88, _startPosY + 64, 17, 6); + g.DrawLine(pen, _startPosX + 88, _startPosY + 67, _startPosX + 105, _startPosY + 67); + g.DrawLine(pen, _startPosX + 94, _startPosY + 64, _startPosX + 94, _startPosY + 70); + } + } + } +} diff --git a/ProjectAntiAirCraftGun/DrawingObjects/DrawingTank.cs b/ProjectAntiAirCraftGun/DrawingObjects/DrawingTank.cs new file mode 100644 index 0000000..c052327 --- /dev/null +++ b/ProjectAntiAirCraftGun/DrawingObjects/DrawingTank.cs @@ -0,0 +1,265 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ProjectAntiAircraftGun.Entities; +using static System.Windows.Forms.VisualStyles.VisualStyleElement; + +namespace ProjectAntiAircraftGun.DrawingObjects +{ + public class DrawingTank + { + /// + /// Класс-сущность + /// + public EntityTank? EntityTank { get; protected set; } + /// + /// Ширина окна + /// + private int _pictureWidth; + /// + /// Высота окна + /// + private int _pictureHeight; + /// + /// Левая координата прорисовки танка + /// + protected int _startPosX; + /// + /// Верхняя кооридната прорисовки танка + /// + protected int _startPosY; + /// + /// Ширина прорисовки танка + /// + protected readonly int _tankWidth = 130; + /// + /// Высота прорисовки танка + /// + protected readonly int _tankHeight = 102; + + /// + /// Координата X объекта + /// + public int GetPosX => _startPosX; + /// + /// Координата Y объекта + /// + public int GetPosY => _startPosY; + /// + /// Ширина объекта + /// + public int GetWidth => _tankWidth; + /// + /// Высота объекта + /// + public int GetHeight => _tankHeight; + /// + /// Конструктор + /// + /// Скорость + /// Вес + /// Основной цвет + /// Дополнительный цвет + /// Ширина картинки + /// Высота картинки + public DrawingTank(int speed, double weight, Color bodyColor, Color additionalColor, int + width, int height) + { + + _pictureWidth = width; + _pictureHeight = height; + EntityTank = new EntityTank(speed, weight, bodyColor, additionalColor); + + if (_pictureWidth > _tankWidth && _pictureHeight > _tankHeight) + { + EntityTank = new EntityTank(speed, weight, bodyColor, additionalColor); + } + else + { + EntityTank = null; + } + } + /// + /// Конструктор + /// + /// Скорость + /// Вес + /// Основной цвет + /// Ширина картинки + /// Высота картинки + /// Ширина прорисовки танка + /// Высота прорисовки танка + protected DrawingTank(int speed, double weight, Color bodyColor, Color additionalColor, int + width, int height, int tankWidth, int tankHeight) + { + _pictureWidth = width; + _pictureHeight = height; + EntityTank = new EntityTank(speed, weight, bodyColor, additionalColor); + + if (_pictureWidth > _tankWidth && _pictureHeight > _tankHeight) + { + EntityTank = new EntityTank(speed, weight, bodyColor, additionalColor); + } + else + { + EntityTank = null; + } + } + + /// + /// Проверка, что объект может переместится по указанному направлению + /// + /// Направление + /// true - можно переместится по указанному направлению + public bool CanMove(DirectionType direction) + { + if (EntityTank == null) + { + return false; + } + return direction switch + { + //влево + DirectionType.Left => _startPosX - EntityTank.Step > 0, + //вверх + DirectionType.Up => _startPosY - EntityTank.Step > 0, + // вправо + DirectionType.Right => _startPosX + _tankWidth + EntityTank.Step < _pictureWidth, + //вниз + DirectionType.Down => _startPosY + _tankHeight + EntityTank.Step < _pictureHeight, + _ => false, + }; + } + + /// + /// Изменение направления перемещения + /// + /// Направление + public void MoveTransport(DirectionType direction) + { + if (!CanMove(direction) || EntityTank == null) + { + return; + } + switch (direction) + { + //влево + case DirectionType.Left: + _startPosX -= (int)EntityTank.Step; + break; + //вверх + case DirectionType.Up: + _startPosY -= (int)EntityTank.Step; + break; + // вправо + case DirectionType.Right: + _startPosX += (int)EntityTank.Step; + break; + //вниз + case DirectionType.Down: + _startPosY += (int)EntityTank.Step; + break; + } + } + /// + /// Установка позиции + /// + /// Координата X + /// Координата Y + public void SetPosition(int x, int y) + { + if (EntityTank == null) return; + while (x + _tankWidth > _pictureWidth) + { + x -= (int)EntityTank.Step; + } + while (x < 0) + { + x += (int)EntityTank.Step; + } + while (y + _tankHeight > _pictureHeight) + { + y -= (int)EntityTank.Step; + } + while (y < 0) + { + y += (int)EntityTank.Step; + } + _startPosX = x; + _startPosY = y; + } + + /// + /// Прорисовка объекта + /// + /// + public virtual void DrawTransport(Graphics g) + { + if (EntityTank == null) { return; } + Pen pen = new(Color.Black); + pen.Width = 2; + Brush brush = new SolidBrush(EntityTank.BodyColor); + + Random random = new Random(); + Brush additionalBrush = new SolidBrush(EntityTank.AdditionalColor); + + // границы зенитной установки + g.DrawRectangle(pen, _startPosX + 3, _startPosY + 60, 121, 23); + g.DrawRectangle(pen, _startPosX + 20, _startPosY + 43, 54, 16); + g.DrawRectangle(pen, _startPosX + 42, _startPosY + 33, 16, 9); + + // корпус + g.FillRectangle(brush, _startPosX + 3, _startPosY + 60, 121, 23); + g.FillRectangle(brush, _startPosX + 20, _startPosY + 43, 54, 16); + g.FillRectangle(brush, _startPosX + 42, _startPosY + 33, 16, 9); + + // контур гусеницы + g.DrawLine(pen, _startPosX + 13, _startPosY + 100, _startPosX + 114, _startPosY + 100); + g.DrawLine(pen, _startPosX + 6, _startPosY + 99, _startPosX + 16, _startPosY + 99); + g.DrawLine(pen, _startPosX + 4, _startPosY + 98, _startPosX + 6, _startPosY + 98); + g.DrawLine(pen, _startPosX + 4, _startPosY + 97, _startPosX + 4, _startPosY + 86); + g.DrawLine(pen, _startPosX + 4, _startPosY + 86, _startPosX + 5, _startPosY + 86); + g.DrawLine(pen, _startPosX + 5, _startPosY + 85, _startPosX + 10, _startPosY + 85); + g.DrawLine(pen, _startPosX + 10, _startPosY + 84, _startPosX + 116, _startPosY + 84); + g.DrawLine(pen, _startPosX + 116, _startPosY + 85, _startPosX + 123, _startPosY + 85); + g.DrawLine(pen, _startPosX + 124, _startPosY + 86, _startPosX + 125, _startPosY + 86); + g.DrawLine(pen, _startPosX + 125, _startPosY + 87, _startPosX + 125, _startPosY + 97); + g.DrawLine(pen, _startPosX + 123, _startPosY + 98, _startPosX + 125, _startPosY + 98); + g.DrawLine(pen, _startPosX + 115, _startPosY + 99, _startPosX + 123, _startPosY + 99); + + //гусеница + g.FillRectangle(additionalBrush, _startPosX + 4, _startPosY + 87, 120, 10); + g.FillRectangle(additionalBrush, _startPosX + 19, _startPosY + 85, 92, 2); + g.FillRectangle(additionalBrush, _startPosX + 14, _startPosY + 93, 100, 7); + + // контур колес + g.DrawEllipse(pen, _startPosX + 5, _startPosY + 83, 18, 17); + g.DrawEllipse(pen, _startPosX + 30, _startPosY + 88, 15, 12); + g.DrawEllipse(pen, _startPosX + 50, _startPosY + 88, 15, 12); + g.DrawEllipse(pen, _startPosX + 70, _startPosY + 88, 15, 12); + g.DrawEllipse(pen, _startPosX + 87, _startPosY + 88, 15, 12); + g.DrawEllipse(pen, _startPosX + 107, _startPosY + 83, 18, 17); + + // контур верхних катков + g.DrawEllipse(pen, _startPosX + 43, _startPosY + 83, 7, 5); + g.DrawEllipse(pen, _startPosX + 64, _startPosY + 83, 7, 5); + g.DrawEllipse(pen, _startPosX + 82, _startPosY + 83, 7, 5); + + + // колеса + g.FillEllipse(brush, _startPosX + 5, _startPosY + 83, 18, 17); + g.FillEllipse(brush, _startPosX + 30, _startPosY + 88, 15, 12); + g.FillEllipse(brush, _startPosX + 50, _startPosY + 88, 15, 12); + g.FillEllipse(brush, _startPosX + 70, _startPosY + 88, 15, 12); + g.FillEllipse(brush, _startPosX + 87, _startPosY + 88, 15, 12); + g.FillEllipse(brush, _startPosX + 107, _startPosY + 83, 18, 17); + + // верхние катки + g.FillEllipse(brush, _startPosX + 43, _startPosY + 83, 7, 5); + g.FillEllipse(brush, _startPosX + 64, _startPosY + 83, 7, 5); + g.FillEllipse(brush, _startPosX + 82, _startPosY + 83, 7, 5); + } + } +} diff --git a/ProjectAntiAirCraftGun/Entities/EntityAntiAircraftGun.cs b/ProjectAntiAirCraftGun/Entities/EntityAntiAircraftGun.cs new file mode 100644 index 0000000..d9d0ee6 --- /dev/null +++ b/ProjectAntiAirCraftGun/Entities/EntityAntiAircraftGun.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectAntiAircraftGun.Entities +{ + public class EntityAntiAircraftGun : EntityTank + { + + /// + /// Дополнительный цвет (для опциональных элементов) + /// + public Color AdditionalColor { get; private set; } + + /// + /// Радар + /// + public bool Radar { get; private set; } + + /// + /// люк зенитной установки + /// + public bool Hatch { get; private set; } + + /// + /// пушка танк + /// + public bool Cannon { get; private set; } + + /// + /// Шаг перемещения зенитной установки + /// + public double Step => (double)Speed * 100 / Weight; + + /// + /// Инициализация полей объекта-класс зенитной установки + /// + /// Скорость + /// Вес зенитной установки + /// Основной цвет + /// Дополнительный цвет + /// Признак наличия радара + /// Признак наличия люка зенитной установки + /// Признак наличия пушки зенитной установки + public EntityAntiAircraftGun(int speed, double weight, Color bodyColor, Color additionalColor, bool radar, bool hatch, bool cannon) : base(speed, weight, bodyColor, additionalColor) + { + AdditionalColor = additionalColor; + Hatch = hatch; + Radar = radar; + Cannon = cannon; + } + } +} diff --git a/ProjectAntiAirCraftGun/Entities/EntityTank.cs b/ProjectAntiAirCraftGun/Entities/EntityTank.cs new file mode 100644 index 0000000..dbe6140 --- /dev/null +++ b/ProjectAntiAirCraftGun/Entities/EntityTank.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectAntiAircraftGun.Entities +{ + public 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 double Step => (double)Speed * 100 / Weight; + /// + /// Конструктор с параметрами + /// + /// Скорость + /// Вес автомобиля + /// Основной цвет + public EntityTank(int speed, double weight, Color bodyColor, Color additionalColor) + { + Speed = speed; + Weight = weight; + BodyColor = bodyColor; + AdditionalColor = additionalColor; + } + } +} diff --git a/ProjectAntiAirCraftGun/FormAntiAircraftGun.Designer.cs b/ProjectAntiAirCraftGun/FormAntiAircraftGun.Designer.cs new file mode 100644 index 0000000..eb2e726 --- /dev/null +++ b/ProjectAntiAirCraftGun/FormAntiAircraftGun.Designer.cs @@ -0,0 +1,178 @@ +namespace ProjectAntiAircraftGun +{ + partial class FormAntiAircraftGun + { + /// + /// 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() + { + pictureBoxAntiAircraftGun = new PictureBox(); + buttonCreateAntiAircraftGun = new Button(); + buttonRight = new Button(); + buttonLeft = new Button(); + buttonDown = new Button(); + buttonUp = new Button(); + comboBoxStrategy = new ComboBox(); + buttonCreateTank = new Button(); + buttonStep = new Button(); + ((System.ComponentModel.ISupportInitialize)pictureBoxAntiAircraftGun).BeginInit(); + SuspendLayout(); + // + // pictureBoxAntiAircraftGun + // + pictureBoxAntiAircraftGun.Dock = DockStyle.Fill; + pictureBoxAntiAircraftGun.Location = new Point(0, 0); + pictureBoxAntiAircraftGun.Name = "pictureBoxAntiAircraftGun"; + pictureBoxAntiAircraftGun.Size = new Size(800, 450); + pictureBoxAntiAircraftGun.SizeMode = PictureBoxSizeMode.AutoSize; + pictureBoxAntiAircraftGun.TabIndex = 0; + pictureBoxAntiAircraftGun.TabStop = false; + // + // buttonCreateAntiAircraftGun + // + buttonCreateAntiAircraftGun.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + buttonCreateAntiAircraftGun.Location = new Point(12, 415); + buttonCreateAntiAircraftGun.Name = "buttonCreateAntiAircraftGun"; + buttonCreateAntiAircraftGun.Size = new Size(174, 23); + buttonCreateAntiAircraftGun.TabIndex = 1; + buttonCreateAntiAircraftGun.Text = "создать зенитную установку"; + buttonCreateAntiAircraftGun.UseVisualStyleBackColor = true; + buttonCreateAntiAircraftGun.Click += ButtonCreateAntiAircraftGun; + // + // buttonRight + // + buttonRight.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonRight.BackgroundImage = Properties.Resources.png_transparent_grammatical_person_paper_narration_direzione_didattica_statale_gestione_scuola_elementare_copy_print_right_arrow_miscellaneous_game_angle; + buttonRight.BackgroundImageLayout = ImageLayout.Zoom; + buttonRight.Location = new Point(739, 413); + buttonRight.Name = "buttonRight"; + buttonRight.Size = new Size(61, 30); + buttonRight.TabIndex = 2; + buttonRight.UseVisualStyleBackColor = true; + buttonRight.Click += ButtonMove_Click; + // + // buttonLeft + // + buttonLeft.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonLeft.BackgroundImage = Properties.Resources.left; + buttonLeft.BackgroundImageLayout = ImageLayout.Zoom; + buttonLeft.Location = new Point(605, 413); + buttonLeft.Name = "buttonLeft"; + buttonLeft.Size = new Size(61, 30); + buttonLeft.TabIndex = 6; + buttonLeft.UseVisualStyleBackColor = true; + buttonLeft.Click += ButtonMove_Click; + // + // buttonDown + // + buttonDown.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonDown.BackgroundImage = Properties.Resources.bottom; + buttonDown.BackgroundImageLayout = ImageLayout.Zoom; + buttonDown.Location = new Point(672, 415); + buttonDown.Name = "buttonDown"; + buttonDown.Size = new Size(61, 30); + buttonDown.TabIndex = 7; + buttonDown.UseVisualStyleBackColor = true; + buttonDown.Click += ButtonMove_Click; + // + // buttonUp + // + buttonUp.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonUp.BackgroundImage = Properties.Resources.top; + buttonUp.BackgroundImageLayout = ImageLayout.Zoom; + buttonUp.Location = new Point(672, 379); + buttonUp.Name = "buttonUp"; + buttonUp.Size = new Size(61, 30); + buttonUp.TabIndex = 8; + buttonUp.UseVisualStyleBackColor = true; + buttonUp.Click += ButtonMove_Click; + // + // comboBoxStrategy + // + comboBoxStrategy.Anchor = AnchorStyles.Top | AnchorStyles.Right; + comboBoxStrategy.DropDownStyle = ComboBoxStyle.DropDownList; + comboBoxStrategy.FormattingEnabled = true; + comboBoxStrategy.Items.AddRange(new object[] { "0", "1" }); + comboBoxStrategy.Location = new Point(679, 0); + comboBoxStrategy.Name = "comboBoxStrategy"; + comboBoxStrategy.Size = new Size(121, 23); + comboBoxStrategy.TabIndex = 9; + // + // buttonCreateTank + // + buttonCreateTank.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + buttonCreateTank.Location = new Point(192, 415); + buttonCreateTank.Name = "buttonCreateTank"; + buttonCreateTank.Size = new Size(108, 23); + buttonCreateTank.TabIndex = 10; + buttonCreateTank.Text = "создать танк"; + buttonCreateTank.UseVisualStyleBackColor = true; + buttonCreateTank.Click += ButtonCreateTank_Click; + // + // buttonStep + // + buttonStep.Anchor = AnchorStyles.Top | AnchorStyles.Right; + buttonStep.Location = new Point(704, 29); + buttonStep.Name = "buttonStep"; + buttonStep.Size = new Size(75, 23); + buttonStep.TabIndex = 11; + buttonStep.Text = "шаг"; + buttonStep.UseVisualStyleBackColor = true; + buttonStep.Click += ButtonStep_Click; + // + // FormAntiAircraftGun + // + AutoScaleDimensions = new SizeF(7F, 15F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(800, 450); + Controls.Add(buttonStep); + Controls.Add(buttonCreateTank); + Controls.Add(comboBoxStrategy); + Controls.Add(buttonUp); + Controls.Add(buttonDown); + Controls.Add(buttonLeft); + Controls.Add(buttonRight); + Controls.Add(buttonCreateAntiAircraftGun); + Controls.Add(pictureBoxAntiAircraftGun); + Name = "FormAntiAircraftGun"; + Text = "Зенитная установка"; + ((System.ComponentModel.ISupportInitialize)pictureBoxAntiAircraftGun).EndInit(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private PictureBox pictureBoxAntiAircraftGun; + private Button buttonCreateAntiAircraftGun; + private Button buttonRight; + private Button buttonLeft; + private Button buttonDown; + private Button buttonUp; + private Button buttonCreateTank; + private Button buttonStep; + private ComboBox comboBoxStrategy; + } +} \ No newline at end of file diff --git a/ProjectAntiAirCraftGun/FormAntiAircraftGun.cs b/ProjectAntiAirCraftGun/FormAntiAircraftGun.cs new file mode 100644 index 0000000..a9d1f24 --- /dev/null +++ b/ProjectAntiAirCraftGun/FormAntiAircraftGun.cs @@ -0,0 +1,156 @@ +using ProjectAntiAircraftGun.DrawingObjects; +using ProjectAntiAircraftGun.MovementStrategy; + +namespace ProjectAntiAircraftGun +{ + /// + /// " " + /// + public partial class FormAntiAircraftGun : Form + { + /// + /// - + /// + private DrawingTank? _drawingTank; + /// + /// + /// + private AbstractStrategy? _abstractStrategy; + + /// + /// + /// + public FormAntiAircraftGun() + { + InitializeComponent(); + } + + /// + /// + /// + private void Draw() + { + if (_drawingTank == null) + { + return; + } + Bitmap bmp = new(pictureBoxAntiAircraftGun.Width, + pictureBoxAntiAircraftGun.Height); + Graphics gr = Graphics.FromImage(bmp); + _drawingTank.DrawTransport(gr); + pictureBoxAntiAircraftGun.Image = bmp; + } + + /// + /// " " + /// + /// + /// + private void ButtonCreateTank_Click(object sender, EventArgs e) + { + Random random = new(); + _drawingTank = new DrawingTank(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)), + pictureBoxAntiAircraftGun.Width, pictureBoxAntiAircraftGun.Height); + _drawingTank.SetPosition(random.Next(10, 100), random.Next(10, + 100)); + Draw(); + } + + /// + /// " " + /// + /// + /// + private void ButtonCreateAntiAircraftGun(object sender, EventArgs e) + { + Random random = new(); + _drawingTank = new DrawingAntiAircraftGun(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)), Convert.ToBoolean(random.Next(0, 2)), + pictureBoxAntiAircraftGun.Width, pictureBoxAntiAircraftGun.Height); + _drawingTank.SetPosition(random.Next(10, 100), random.Next(10, + 100)); + Draw(); + + } + + /// + /// + /// + /// + /// + private void ButtonMove_Click(object sender, EventArgs e) + { + if (_drawingTank == null) return; + + string name = ((Button)sender)?.Name ?? string.Empty; + switch (name) + { + case "buttonUp": + _drawingTank.MoveTransport(DirectionType.Up); + break; + case "buttonDown": + _drawingTank.MoveTransport(DirectionType.Down); + break; + case "buttonLeft": + _drawingTank.MoveTransport(DirectionType.Left); + break; + case "buttonRight": + _drawingTank.MoveTransport(DirectionType.Right); + break; + } + Draw(); + } + + /// + /// "" + /// + /// + /// + private void ButtonStep_Click(object sender, EventArgs e) + { + if (_drawingTank == null) + { + return; + } + if (comboBoxStrategy.Enabled) + { + _abstractStrategy = comboBoxStrategy.SelectedIndex + switch + { + 0 => new MoveToCenter(), + 1 => new MoveToBorder(), + _ => null, + }; + if (_abstractStrategy == null) + { + return; + } + _abstractStrategy.SetData(new + DrawingObjectTank(_drawingTank), pictureBoxAntiAircraftGun.Width, + pictureBoxAntiAircraftGun.Height); + comboBoxStrategy.Enabled = false; + } + if (_abstractStrategy == null) + { + return; + } + _abstractStrategy.MakeStep(); + Draw(); + if (_abstractStrategy.GetStatus() == Status.Finish) + { + comboBoxStrategy.Enabled = true; + _abstractStrategy = null; + } + } + } +} \ No newline at end of file diff --git a/ProjectAntiAirCraftGun/FormAntiAircraftGun.resx b/ProjectAntiAirCraftGun/FormAntiAircraftGun.resx new file mode 100644 index 0000000..af32865 --- /dev/null +++ b/ProjectAntiAirCraftGun/FormAntiAircraftGun.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/ProjectAntiAirCraftGun/MovementStrategy/AbstractStrategy.cs b/ProjectAntiAirCraftGun/MovementStrategy/AbstractStrategy.cs new file mode 100644 index 0000000..4fe3140 --- /dev/null +++ b/ProjectAntiAirCraftGun/MovementStrategy/AbstractStrategy.cs @@ -0,0 +1,132 @@ +using ProjectAntiAircraftGun; +using static System.Windows.Forms.AxHost; +using static System.Windows.Forms.VisualStyles.VisualStyleElement; + +namespace ProjectAntiAircraftGun.MovementStrategy +{ + /// + /// Класс-стратегия перемещения объекта + /// + public abstract class AbstractStrategy + { + /// + /// Перемещаемый объект + /// + private IMoveableObject? _moveableObject; + /// + /// Статус перемещения + /// + private Status _state = Status.NotInit; + /// + /// Ширина поля + /// + protected int FieldWidth { get; private set; } + /// + /// Высота поля + /// + protected int FieldHeight { get; private set; } + /// + /// Статус перемещения + /// + public Status GetStatus() { return _state; } + /// + /// Установка данных + /// + /// Перемещаемый объект + /// Ширина поля + /// Высота поля + public void SetData(IMoveableObject moveableObject, int width, int + height) + { + if (moveableObject == null) + { + _state = Status.NotInit; + return; + } + _state = Status.InProgress; + _moveableObject = moveableObject; + FieldWidth = width; + FieldHeight = height; + } + /// + /// Шаг перемещения + /// + public void MakeStep() + { + if (_state != Status.InProgress) + { + return; + } + if (IsTargetDestinaion()) + { + _state = Status.Finish; + return; + } + MoveToTarget(); + } + + /// + /// Перемещение влево + /// + /// Результат перемещения (true - удалось переместиться, false - неудача) + protected bool MoveLeft() => MoveTo(DirectionType.Left); + /// + /// Перемещение вправо + /// + /// Результат перемещения (true - удалось переместиться, false - неудача) + protected bool MoveRight() => MoveTo(DirectionType.Right); + /// + /// Перемещение вверх + /// + /// Результат перемещения (true - удалось переместиться,false - неудача) + protected bool MoveUp() => MoveTo(DirectionType.Up); + /// + /// Перемещение вниз + /// + /// Результат перемещения (true - удалось переместиться, false - неудача) + protected bool MoveDown() => MoveTo(DirectionType.Down); + /// + /// Параметры объекта + /// + protected ObjectParameters? GetObjectParameters => _moveableObject?.GetObjectPosition; + /// + /// Шаг объекта + /// + /// + protected int? GetStep() + { + if (_state != Status.InProgress) + { + return null; + } + return _moveableObject?.GetStep; + } + /// + /// Перемещение к цели + /// + protected abstract void MoveToTarget(); + /// + /// Достигнута ли цель + /// + /// + protected abstract bool IsTargetDestinaion(); + /// + /// Попытка перемещения в требуемом направлении + /// + /// Направление + /// Результат попытки (true - удалось переместиться, false - неудача) + private bool MoveTo(DirectionType directionType) + { + if (_state != Status.InProgress) + { + return false; + } + if (_moveableObject?.CheckCanMove(directionType) ?? false) + { + _moveableObject.MoveObject(directionType); + return true; + } + return false; + } + } +} \ No newline at end of file diff --git a/ProjectAntiAirCraftGun/MovementStrategy/DrawingObjectTank.cs b/ProjectAntiAirCraftGun/MovementStrategy/DrawingObjectTank.cs new file mode 100644 index 0000000..1229ff9 --- /dev/null +++ b/ProjectAntiAirCraftGun/MovementStrategy/DrawingObjectTank.cs @@ -0,0 +1,32 @@ +using ProjectAntiAircraftGun.DrawingObjects; +namespace ProjectAntiAircraftGun.MovementStrategy +{ + /// + /// Реализация интерфейса IDrawningObject для работы с объектом Drawning (паттерн Adapter) + + public class DrawingObjectTank : IMoveableObject + { + private readonly DrawingTank? _drawingTank = null; + public DrawingObjectTank(DrawingTank drawingTank) + { + _drawingTank = drawingTank; + } + public ObjectParameters? GetObjectPosition + { + get + { + if (_drawingTank == null || _drawingTank.EntityTank == null) + { + return null; + } + return new ObjectParameters(_drawingTank.GetPosX, + _drawingTank.GetPosY, _drawingTank.GetWidth, _drawingTank.GetHeight); + } + } + public int GetStep => (int)(_drawingTank?.EntityTank?.Step ?? 0); + public bool CheckCanMove(DirectionType direction) => + _drawingTank?.CanMove(direction) ?? false; + public void MoveObject(DirectionType direction) => + _drawingTank?.MoveTransport(direction); + } +} diff --git a/ProjectAntiAirCraftGun/MovementStrategy/IMoveableObject.cs b/ProjectAntiAirCraftGun/MovementStrategy/IMoveableObject.cs new file mode 100644 index 0000000..e29e723 --- /dev/null +++ b/ProjectAntiAirCraftGun/MovementStrategy/IMoveableObject.cs @@ -0,0 +1,29 @@ +using ProjectAntiAircraftGun; +namespace ProjectAntiAircraftGun.MovementStrategy +{ + /// + /// Интерфейс для работы с перемещаемым объектом + /// + public interface IMoveableObject + { + /// + /// Получение координаты X объекта + /// + ObjectParameters? GetObjectPosition { get; } + /// + /// Шаг объекта + /// + int GetStep { get; } + /// + /// Проверка, можно ли переместиться по нужному направлению + /// + /// + /// + bool CheckCanMove(DirectionType direction); + /// + /// Изменение направления пермещения объекта + /// + /// Направление + void MoveObject(DirectionType direction); + } +} \ No newline at end of file diff --git a/ProjectAntiAirCraftGun/MovementStrategy/MoveToBorder.cs b/ProjectAntiAirCraftGun/MovementStrategy/MoveToBorder.cs new file mode 100644 index 0000000..b9b4c06 --- /dev/null +++ b/ProjectAntiAirCraftGun/MovementStrategy/MoveToBorder.cs @@ -0,0 +1,60 @@ +using ProjectAntiAircraftGun.Entities; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectAntiAircraftGun.MovementStrategy +{ + /// + /// Стратегия перемещения объекта к правому нижнему краю формы + /// + public class MoveToBorder : AbstractStrategy + { + protected override bool IsTargetDestinaion() + { + var objParams = GetObjectParameters; + if (objParams == null) + { + return false; + } + return objParams.ObjectMiddleHorizontal <= FieldWidth && + objParams.ObjectMiddleHorizontal + GetStep() >= FieldWidth && + objParams.ObjectMiddleVertical <= FieldHeight && + objParams.ObjectMiddleVertical + GetStep() >= FieldHeight; + } + protected override void MoveToTarget() + { + var objParams = GetObjectParameters; + if (objParams == null) + { + return; + } + var diffX = objParams.ObjectMiddleHorizontal - FieldWidth; + if (Math.Abs(diffX) > GetStep()) + { + if (diffX > 0) + { + MoveLeft(); + } + else + { + MoveRight(); + } + } + var diffY = objParams.ObjectMiddleVertical - FieldHeight; + if (Math.Abs(diffY) > GetStep()) + { + if (diffY > 0) + { + MoveUp(); + } + else + { + MoveDown(); + } + } + } + } +} diff --git a/ProjectAntiAirCraftGun/MovementStrategy/MoveToCenter.cs b/ProjectAntiAirCraftGun/MovementStrategy/MoveToCenter.cs new file mode 100644 index 0000000..972fbf9 --- /dev/null +++ b/ProjectAntiAirCraftGun/MovementStrategy/MoveToCenter.cs @@ -0,0 +1,60 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectAntiAircraftGun.MovementStrategy +{ + /// + /// Стратегия перемещения объекта в центр экрана + /// + public class MoveToCenter : AbstractStrategy + { + protected override bool IsTargetDestinaion() + { + var objParams = GetObjectParameters; + if (objParams == null) + { + return false; + } + return objParams.ObjectMiddleHorizontal <= FieldWidth / 2 && + objParams.ObjectMiddleHorizontal + GetStep() >= FieldWidth / 2 && + objParams.ObjectMiddleVertical <= FieldHeight / 2 && + objParams.ObjectMiddleVertical + GetStep() >= FieldHeight / 2; + } + protected override void MoveToTarget() + { + var objParams = GetObjectParameters; + if (objParams == null) + { + return; + } + var diffX = objParams.ObjectMiddleHorizontal - FieldWidth / 2; + if (Math.Abs(diffX) > GetStep()) + { + if (diffX > 0) + { + MoveLeft(); + } + else + { + MoveRight(); + } + } + var diffY = objParams.ObjectMiddleVertical - FieldHeight / 2; + if (Math.Abs(diffY) > GetStep()) + { + if (diffY > 0) + { + MoveUp(); + } + else + { + MoveDown(); + } + } + } + } +} + diff --git a/ProjectAntiAirCraftGun/MovementStrategy/ObjectParametrs.cs b/ProjectAntiAirCraftGun/MovementStrategy/ObjectParametrs.cs new file mode 100644 index 0000000..2348c75 --- /dev/null +++ b/ProjectAntiAirCraftGun/MovementStrategy/ObjectParametrs.cs @@ -0,0 +1,51 @@ +namespace ProjectAntiAircraftGun.MovementStrategy +{ + /// + /// Параметры-координаты объекта + /// + public class ObjectParameters + { + private readonly int _x; + private readonly int _y; + private readonly int _width; + private readonly int _height; + /// + /// Левая граница + /// + public int LeftBorder => _x; + /// + /// Верхняя граница + /// + public int TopBorder => _y; + /// + /// Правая граница + /// + public int RightBorder => _x + _width; + /// + /// Нижняя граница + /// + public int DownBorder => _y + _height; + /// + /// Середина объекта + /// + public int ObjectMiddleHorizontal => _x + _width / 2; + /// + /// Середина объекта + /// + public int ObjectMiddleVertical => _y + _height / 2; + /// + /// Конструктор + /// + /// Координата X + /// Координата Y + /// Ширина + /// Высота + public ObjectParameters(int x, int y, int width, int height) + { + _x = x; + _y = y; + _width = width; + _height = height; + } + } +} diff --git a/ProjectAntiAirCraftGun/MovementStrategy/Status.cs b/ProjectAntiAirCraftGun/MovementStrategy/Status.cs new file mode 100644 index 0000000..ee3877c --- /dev/null +++ b/ProjectAntiAirCraftGun/MovementStrategy/Status.cs @@ -0,0 +1,12 @@ +namespace ProjectAntiAircraftGun.MovementStrategy +{ + /// + /// Статус выполнения операции перемещения + /// + public enum Status + { + NotInit, + InProgress, + Finish + } +} diff --git a/ProjectAntiAirCraftGun/Program.cs b/ProjectAntiAirCraftGun/Program.cs new file mode 100644 index 0000000..e5ff67e --- /dev/null +++ b/ProjectAntiAirCraftGun/Program.cs @@ -0,0 +1,17 @@ +namespace ProjectAntiAircraftGun +{ + internal static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + // To customize application configuration such as set high DPI settings or default font, + // see https://aka.ms/applicationconfiguration. + ApplicationConfiguration.Initialize(); + Application.Run(new FormAntiAircraftGun()); + } + } +} \ No newline at end of file diff --git a/ProjectAntiAirCraftGun/ProjectAntiAircraftGun.csproj b/ProjectAntiAirCraftGun/ProjectAntiAircraftGun.csproj new file mode 100644 index 0000000..13ee123 --- /dev/null +++ b/ProjectAntiAirCraftGun/ProjectAntiAircraftGun.csproj @@ -0,0 +1,26 @@ + + + + WinExe + net6.0-windows + enable + true + enable + + + + + True + True + Resources.resx + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + \ No newline at end of file diff --git a/ProjectAntiAirCraftGun/ProjectAntiAircraftGun.sln b/ProjectAntiAirCraftGun/ProjectAntiAircraftGun.sln new file mode 100644 index 0000000..b7ca572 --- /dev/null +++ b/ProjectAntiAirCraftGun/ProjectAntiAircraftGun.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.5.33530.505 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectAntiAircraftGun", "ProjectAntiAircraftGun.csproj", "{3D00CFC0-D6DA-4872-B170-5D543632BC67}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3D00CFC0-D6DA-4872-B170-5D543632BC67}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3D00CFC0-D6DA-4872-B170-5D543632BC67}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3D00CFC0-D6DA-4872-B170-5D543632BC67}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3D00CFC0-D6DA-4872-B170-5D543632BC67}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {0F97A468-ED8E-4382-904C-8D6C96065D61} + EndGlobalSection +EndGlobal diff --git a/ProjectAntiAirCraftGun/Properties/Resources.Designer.cs b/ProjectAntiAirCraftGun/Properties/Resources.Designer.cs new file mode 100644 index 0000000..758a8e2 --- /dev/null +++ b/ProjectAntiAirCraftGun/Properties/Resources.Designer.cs @@ -0,0 +1,145 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +namespace ProjectAntiAircraftGun.Properties { + using System; + + + /// + /// Класс ресурса со строгой типизацией для поиска локализованных строк и т.д. + /// + // Этот класс создан автоматически классом StronglyTypedResourceBuilder + // с помощью такого средства, как ResGen или Visual Studio. + // Чтобы добавить или удалить член, измените файл .ResX и снова запустите ResGen + // с параметром /str или перестройте свой проект VS. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.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("ProjectAntiAircraftGun.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; + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap bottom { + get { + object obj = ResourceManager.GetObject("bottom", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap left { + get { + object obj = ResourceManager.GetObject("left", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap png_clipart_computer_icons_uma_musume_pretty_derby_fate_grand_order_saber_kemono_friends_three_arrow_game_angle { + get { + object obj = ResourceManager.GetObject("png-clipart-computer-icons-uma-musume-pretty-derby-fate-grand-order-saber-kemono-" + + "friends-three-arrow-game-angle", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap png_transparent_arrow_arrow_cdr_angle_triangle { + get { + object obj = ResourceManager.GetObject("png-transparent-arrow-arrow-cdr-angle-triangle", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap png_transparent_arrow_left_thin_zondicons_icon { + get { + object obj = ResourceManager.GetObject("png-transparent-arrow-left-thin-zondicons-icon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap png_transparent_grammatical_person_paper_narration_direzione_didattica_statale_gestione_scuola_elementare_copy_print_right_arrow_miscellaneous_game_angle { + get { + object obj = ResourceManager.GetObject("png-transparent-grammatical-person-paper-narration-direzione-didattica-statale-ge" + + "stione-scuola-elementare-copy-print-right-arrow-miscellaneous-game-angle", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap right { + get { + object obj = ResourceManager.GetObject("right", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap top { + get { + object obj = ResourceManager.GetObject("top", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/ProjectAntiAirCraftGun/Properties/Resources.resx b/ProjectAntiAirCraftGun/Properties/Resources.resx new file mode 100644 index 0000000..4f804e0 --- /dev/null +++ b/ProjectAntiAirCraftGun/Properties/Resources.resx @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + ..\Resources\png-transparent-arrow-arrow-cdr-angle-triangle.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\png-clipart-computer-icons-uma-musume-pretty-derby-fate-grand-order-saber-kemono-friends-three-arrow-game-angle.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\png-transparent-grammatical-person-paper-narration-direzione-didattica-statale-gestione-scuola-elementare-copy-print-right-arrow-miscellaneous-game-angle.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\png-transparent-arrow-left-thin-zondicons-icon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\bottom.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\left.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\right.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\top.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/ProjectAntiAirCraftGun/Resources/bottom.png b/ProjectAntiAirCraftGun/Resources/bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..2228e2f2325dbfa2bb565621716f72fc991edbab GIT binary patch literal 2881 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 literal 0 HcmV?d00001 diff --git a/ProjectAntiAirCraftGun/Resources/png-clipart-computer-icons-uma-musume-pretty-derby-fate-grand-order-saber-kemono-friends-three-arrow-game-angle.png b/ProjectAntiAirCraftGun/Resources/png-clipart-computer-icons-uma-musume-pretty-derby-fate-grand-order-saber-kemono-friends-three-arrow-game-angle.png new file mode 100644 index 0000000000000000000000000000000000000000..32b8866fc857f7a26d8e6560cf4e71da7b2ffb7b GIT binary patch literal 2939 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 F{{;<%GOPdq literal 0 HcmV?d00001 diff --git a/ProjectAntiAirCraftGun/Resources/png-transparent-arrow-left-thin-zondicons-icon.png b/ProjectAntiAirCraftGun/Resources/png-transparent-arrow-left-thin-zondicons-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8d65f1d82eabd6132028e2261e8ad130a5f031d8 GIT binary patch literal 4573 zcmbtY2~?9;7DlK7v5E+SAjn~?>|zk3pe*Bpj2f^O1<^njN*ESFOqE3vz$A46VWtZF z0z!`#oE9Vuix}BM6CC}~wiF|xrV#xt64Vd~glzKysK8O$an3u*{qOtkz3<-d-j|%@ z%;)~Ti%{k$EiJ7@JO8%*3oR`jNb~wc2kdM`wqyZe@Huv$4}u`zQLR=VJ$h7ITf52f zaIcn@;hCM=x9m%ND0)ovKh(c0t@oB=i;+nhj5>WYE%Qeef1jS)c_QgFl_ef+q?N0n z&RqecUY_$)hH}@|=kXus<>kdAKc7#FWN4Otr{3f;Dm9!~@!npI8(8WK@qLCi*i{n? z+A+1z=O&jo+ET~z>ZC$6pIV&tQ)^$k*(69zMo)Q6Gs?>BU;ew>;TeZ7=Qi}Tz=S7) zmU6<&mDg85hOm54x`3=BiFB!3Tc%GLSFhib!G26TC8HF|z8!6V_LTJ(nYsB31ge$> zHr?GDX%qA)qd0{Y5|wnBBoagP&tl`@=UoiI4I%-_4h&l1;6bU}5@tV9^>P)@6SXN>;!BecXT^`X3U)sF`K_i{L3N5u zIEZeBzo9m&AGQ=CgMw5-5_j)|uj15g+=f28n45L#UQ$y9f+6`Qw8|4*SQ}6UizW29 z@H)N))9;i_bq{JTw}F$YSO!5x$o6i&FR1mhXy6J+F+e)f3bL`6kDt#@CuD6_$w;B$ z#v6rxRQ%||0k+yhXWe;rF)LxY zPcGk>c}`6;bw)5gL}9al35G;<3A<9AFrsqq&^4i~3Ftg8Z5(!yCdDfQy zk)_i!qb=^wP5|^)w=+(TBHnJ=1cq-37(Tka+ySWTfV%XZ%4@|X?>tXsW_8XQ(HZJg zj4}{oTF7Wv{N3*Sk8F1vX(e^j#~yrEe9u3kigg#2(e${t>F^9OI&jjkFL>Nvvgy_=g1-GAl$Jw_4(E2Cf6d0 z2ZPOHKYdo)qyGFvU3ZF05k=vN42h!UH`H-$gTgz}^~w_`qCK7`YEi_bSgX3wV&(W6 zWN1%#Bd;~(HNgQgsb)mF*m6C5rOz;nk)gQo#vQFVMQ=9W4M6lrmu)k|X2`^q!B%AT zV^GMD_m3|zpO)?kpV$OJ+Hn~9kokhnx+-g|ci3?>b zXM3Vo;?iZsS0-q9}0#8e`Qi2JT~RGp{R4BC3} zl1)%xHNAgb2A}VT@A|XJt^!Hs&>_@7!NsUj?A_OpMVclhtOy*qCF&udK6|?!{*ls8;YVmPP2JY z$-LrBS@8)ZYVU(Oozw_nH;=BqjVkLm%Rb4z4^SOKMQwhOSPyc%RvO`` zfVL4TssXedDk}#N_}0=uCnsXk2^H}k;!NFETo}evNJIy1E=qiw*N%(Bcn;k&6R>j* z-``YpV^ipBx5iLoX~!z7`IOrFQeQ7EtUbjXo zAEGsO?*Y94<3NrvlZo~ru70m-0?-nG0^)Bcwf(&DeRy-fi`EvK^|Mh%&1{Sk*6Lf$bT zFb;I{f8`6f?~MBs6=>Koo@A%~$Hdaj1@AZjkvPKzbMQBfT@61yez^2TGi7NdCq6mb z9yLH1_nYXtet@y2&6*T7GcijABa%BcBE{=ycf0-G=Kp8veluAh==Fjd+9zDWnQsON zWCA)nN9U%7WcSpNNHR^?oHHC$d%x1|PcS!aGBiZ|pToaPsORfG{p!r3>BB0xSPx?R zP@)byl%vJf(JK>!|Hq>{t?`?WS-jq1JI#AqW1Z%_Meo|~^Op8$T?U_-sjU`dTtof} zNSL`WNW$a8>Adi=r22ICUlN;BT!+j3+9@-N}f zWiqNR28{uLM$bC?c_HY_koluA}I->u+;0 z*1CwFr;EDvE$a6)RoSkz2iBj^Db?S3HWhHPzRoP>l7*4VfZzi5NKzOzyW7w;D7@~v zhkK^id~(y#WKL$6077rH;$K5b+8M!5?P5|HY{#R<$Em9g$mgz9DhhpETMdG&ZAWL{-nLEM8Ts;!@ZD0gm=7MJ-X&0jvre#U0w2Lu{XI-KM z>By2!Ok##0KW}5I`7(%or{CT=*H(w@1s|ZDu_Rv?n+8%^U^kkZ{0F*BWcBb+h_ z?BBz$b;(U)bpV8fG zz9TmRUxL0O>*lW_zgX}p7USEa?Mij`ac?P)%gQai=ox%wPi_Oobq&8Ehy0t4q5LdcR1zl*-r0PhSQ+GU=2&hSP!a|0sa|i zAD}{B%O^JVj7s$a81@`vq6v530*9*_4E&E_IJr9koCOXQE!&^f07LywU7bmD;GqFP zq`q92ob=m~6E6Cb;92w(Xjtlq-s`>w7;}bOzsoA7qATyTi5+%;KWVgf`uK0J*h)D0 EU*8IyivR!s literal 0 HcmV?d00001 diff --git a/ProjectAntiAirCraftGun/Resources/png-transparent-grammatical-person-paper-narration-direzione-didattica-statale-gestione-scuola-elementare-copy-print-right-arrow-miscellaneous-game-angle.png b/ProjectAntiAirCraftGun/Resources/png-transparent-grammatical-person-paper-narration-direzione-didattica-statale-gestione-scuola-elementare-copy-print-right-arrow-miscellaneous-game-angle.png new file mode 100644 index 0000000000000000000000000000000000000000..c54d1d7a7365250b5a4e5dae97e6a0ce60aae107 GIT binary patch literal 2404 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 literal 0 HcmV?d00001 diff --git a/ProjectAntiAirCraftGun/Resources/top.png b/ProjectAntiAirCraftGun/Resources/top.png new file mode 100644 index 0000000000000000000000000000000000000000..29abf7e4b00592f85c1fd5c2c876cf43eaeeb8a8 GIT binary patch literal 3141 zcmd5;eNYo;8h>^-$r1@BP`(rpw4!`9MwEi5!qP}Z@FOaMCC z6R5!;T8WAl5doPwf5kbWqwFp)NI!Gij>@A&frgiwknVXxro!NPx=QsPl zzvulu&(8e*Az8W9Y|_+80ARK(aLF0~lnJqX7RD^AEkoBb3lhI(=_gRuYCpgvtgZel z`~faxo4)ys&E$N^@{oYOzCN0!nM@{=H8eDsQrFHg30E2z9uF|NVf;mI#1?M>Fs)y< z#6Kjl`}spzT(6Jd`oCSOa8WuIeU*L7tf|#_`=a@--XmSCtn=lebdT|`kDHfUFSgoq z`RL4~Lp2XAPbryW$#4iyc!|W1$A5bASvevB@+Sy@YCr8^oAC|^(OlwR1nXTiSXmkE zG=Bd-KBO~nG4nqn#6v{)5IcNursM?WdA zMw0yUIZ~U!6_~wRcj`0Hjd7*bJdOBRBssZu{&2 zV-%##g*~IDlpWST)>F?*zXiiI=5rL4j?r`36*MQ>h2`|){fv4!CMeiE56c}Kp}WkF zApP}hpFN+0@Dcj@TPw0bXW*wzw*w;|zH2ohY1c42FgPLyzvYtIj);oI=%PpTm!dl!R4PK9=T%P{x&ThR^bPF(!_OE|?AZM_$g$ebkvEkQ z8`<~fuzYs^6IIV)4V_0l9@1N=`Y5r2fFs98>FC(@y|b7ao=s<%PTc-|9G=M06-(F?(#L=Hx- zWwv7D1%kSc-Z*6^M-_z#IN}zF2!(xDCGN1_%fNS7?G8paD8vbC*M+f{cG0OjW1K2q zno@;!h*X&eb>`%*=VSF8aWkUtfI2SuP;Y#Mi))b)JJ=#BveU>g@{t!*#L%9$Ys}hW zQJ=4#BEq9k#B<~L?7UCUw{7RO#j=LFk!r2nEiDNdIg0Fx5jm4HS3G$xWa8Mo*|J<$ zzde^^^rgZR64SP&FqDZzWEuAto@kp?k&Q}2O*OtJA+ZX6@G;OHX+elS5H`6IS^G)X zQ!7bvsWEtI(PYiysg!Y=gd>QhbystQq-+UH;SHd#GfV_MZk?RAYY*xbS7$FT}og(2tjX z2WoUI*z^IBX_O!K_X3#(lyjT{xV$MNYstA>e8vldYC)J83}~THOSb11maa0e$vM@m^sKM2gtI#N!h_#!CLix1P7W3vc=cn1-nid${T#{{qt0$7 z6|%NtJ0c*w@d*C-p8PQubP62~2W>rhfAAmR#%N1*lOMO)d^N5j!PH$YoSHP&wQAf6) z2LlRqv&d}Jkex&fd`h+|18-qL-l(O^-szp&A>|0K3M^gsPS1my8P1|DrI@NwOex|W z;O{}vfmWdHJrGljXf&p?P}1YB?k;@FC~#jbwWZT$_fTd6tP;CNr8UI4(cq zEnO+ZKqz_AS@d{=Ev0O|`#YI%@AMd?NA`jjfTWD>T%<~{BVJh8#(iWWso)pPQ(!LL zc#A7XQ&NM~al~v$aaa(G=9F$b_&6+NH@?p^ z--hZuyjE$YDq#j&=uX5i<@(w-ztl)!<0a2rYd2& zkYh%59$ClGBE^-=lpF!K6sE{NvfT;4EQc^i{U;WTfrFI@$+jS)(#R-i)#E$Ph-3|;M=ZC;VfVOvrno|gx5eYH!%{oC`w3B3HgY8EQ1SH|sAV?J6_N#v4njAwc471jo*ie@%dufte#!og8I-t8wyKn0@JlcFo57_HJM1XYYktWLRz;-}18Ldko~89=ZA9i@VU#?$5m7LoRinks zbTxboEqr9{%G-52R$BXAyt$qE^;a?C^E7uJA*=WkB>co4OUC(Xma3iaf+cIwm zbOGbGBZWO=1>~F2Zf~Vu{c=n&8Zfq-`;KuS=R)`dF2{o0H<2CLa&-ci0~Qn75%vTw z2ML_eJ6TWQa#&8EP2`>a--{(OZ=dhAcq_7q>vX{Ke065@~#OdJo rS3(%`-fgQ@ym#CF>tb*HdSB~zY;$0ef@{$@F3hrkl}pM#iT?UO%4r74 literal 0 HcmV?d00001 -- 2.25.1 From 29c5d47017fee249765c0ac7220e9c33596206a4 Mon Sep 17 00:00:00 2001 From: I1nur Date: Fri, 20 Oct 2023 07:31:32 +0400 Subject: [PATCH 3/3] deleted unnecessary --- AntiAircraftGun.sln | 25 -- AntiAircraftGun/DirectionType.cs | 34 --- AntiAircraftGun/DrawingAntiAircraftGun.cs | 225 ------------------ AntiAircraftGun/EntityAntiAircraftGun.cs | 72 ------ AntiAircraftGun/Form1.Designer.cs | 39 --- AntiAircraftGun/Form1.cs | 10 - .../FormAntiAircraftGun.Designer.cs | 136 ----------- AntiAircraftGun/FormAntiAircraftGun.cs | 78 ------ AntiAircraftGun/FormAntiAircraftGun.resx | 120 ---------- AntiAircraftGun/Program.cs | 17 -- AntiAircraftGun/ProjectAntiAircraftGun.csproj | 26 -- AntiAircraftGun/ProjectAntiAircraftGun.sln | 25 -- .../Properties/Resources.Designer.cs | 103 -------- AntiAircraftGun/Properties/Resources.resx | 133 ----------- AntiAircraftGun/Resources/bottom.jpg | Bin 64244 -> 0 bytes AntiAircraftGun/Resources/bottom.png | Bin 2881 -> 0 bytes AntiAircraftGun/Resources/left.jpg | Bin 64309 -> 0 bytes AntiAircraftGun/Resources/left.png | Bin 2957 -> 0 bytes ...-kemono-friends-three-arrow-game-angle.png | Bin 2939 -> 0 bytes ...sparent-arrow-arrow-cdr-angle-triangle.png | Bin 4450 -> 0 bytes ...sparent-arrow-left-thin-zondicons-icon.png | Bin 4573 -> 0 bytes ...t-right-arrow-miscellaneous-game-angle.png | Bin 2404 -> 0 bytes AntiAircraftGun/Resources/right.jpg | Bin 64308 -> 0 bytes AntiAircraftGun/Resources/right.png | Bin 3343 -> 0 bytes AntiAircraftGun/Resources/top.jpg | Bin 8553 -> 0 bytes AntiAircraftGun/Resources/top.png | Bin 3141 -> 0 bytes 26 files changed, 1043 deletions(-) delete mode 100644 AntiAircraftGun.sln delete mode 100644 AntiAircraftGun/DirectionType.cs delete mode 100644 AntiAircraftGun/DrawingAntiAircraftGun.cs delete mode 100644 AntiAircraftGun/EntityAntiAircraftGun.cs delete mode 100644 AntiAircraftGun/Form1.Designer.cs delete mode 100644 AntiAircraftGun/Form1.cs delete mode 100644 AntiAircraftGun/FormAntiAircraftGun.Designer.cs delete mode 100644 AntiAircraftGun/FormAntiAircraftGun.cs delete mode 100644 AntiAircraftGun/FormAntiAircraftGun.resx delete mode 100644 AntiAircraftGun/Program.cs delete mode 100644 AntiAircraftGun/ProjectAntiAircraftGun.csproj delete mode 100644 AntiAircraftGun/ProjectAntiAircraftGun.sln delete mode 100644 AntiAircraftGun/Properties/Resources.Designer.cs delete mode 100644 AntiAircraftGun/Properties/Resources.resx delete mode 100644 AntiAircraftGun/Resources/bottom.jpg delete mode 100644 AntiAircraftGun/Resources/bottom.png delete mode 100644 AntiAircraftGun/Resources/left.jpg delete mode 100644 AntiAircraftGun/Resources/left.png delete mode 100644 AntiAircraftGun/Resources/png-clipart-computer-icons-uma-musume-pretty-derby-fate-grand-order-saber-kemono-friends-three-arrow-game-angle.png delete mode 100644 AntiAircraftGun/Resources/png-transparent-arrow-arrow-cdr-angle-triangle.png delete mode 100644 AntiAircraftGun/Resources/png-transparent-arrow-left-thin-zondicons-icon.png delete mode 100644 AntiAircraftGun/Resources/png-transparent-grammatical-person-paper-narration-direzione-didattica-statale-gestione-scuola-elementare-copy-print-right-arrow-miscellaneous-game-angle.png delete mode 100644 AntiAircraftGun/Resources/right.jpg delete mode 100644 AntiAircraftGun/Resources/right.png delete mode 100644 AntiAircraftGun/Resources/top.jpg delete mode 100644 AntiAircraftGun/Resources/top.png diff --git a/AntiAircraftGun.sln b/AntiAircraftGun.sln deleted file mode 100644 index b7808b4..0000000 --- a/AntiAircraftGun.sln +++ /dev/null @@ -1,25 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.7.33808.371 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AntiAircraftGun", "AntiAircraftGun\AntiAircraftGun.csproj", "{08E6BE2F-AC65-4661-8FB9-CC82073D7BA4}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {08E6BE2F-AC65-4661-8FB9-CC82073D7BA4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {08E6BE2F-AC65-4661-8FB9-CC82073D7BA4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {08E6BE2F-AC65-4661-8FB9-CC82073D7BA4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {08E6BE2F-AC65-4661-8FB9-CC82073D7BA4}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {71FC936E-B675-45C0-A3BA-F16DAF0C20ED} - EndGlobalSection -EndGlobal diff --git a/AntiAircraftGun/DirectionType.cs b/AntiAircraftGun/DirectionType.cs deleted file mode 100644 index bf12d1e..0000000 --- a/AntiAircraftGun/DirectionType.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace ProjectAntiAircraftGun -{ - ///

- /// Направленте перемещения - /// - public enum DirectionType - { - /// - /// Вверх - /// - Up = 1, - - /// - /// Вниз - /// - Down = 2, - - /// - /// Влево - /// - Left = 3, - - /// - /// Вправо - /// - Right = 4 - } -} diff --git a/AntiAircraftGun/DrawingAntiAircraftGun.cs b/AntiAircraftGun/DrawingAntiAircraftGun.cs deleted file mode 100644 index 6a9527d..0000000 --- a/AntiAircraftGun/DrawingAntiAircraftGun.cs +++ /dev/null @@ -1,225 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace ProjectAntiAircraftGun -{ - /// - /// Класс, отвечающий за прорисовку и перемещение объекта-сущности - /// - internal class DrawingAntiAircraftGun - { - /// - /// Класс-сущность - /// - public EntityAntiAircraftGun? EntityAntiAircraftGun { get; private set; } - - /// - /// Ширина окна - /// - private static int _pictureWidth; - - /// - /// Высота окна - /// - private static int _pictureHeight; - - /// - /// Левая координата прорисовки зенитной установки - /// - private int _startPosX; - - /// - /// Верхняя координата прорисовки зенитной установки - /// - private int _startPosY; - - /// - /// Ширина прорисовки зенитной установки - /// - private readonly int _AntiAircraftGunWidth = 125; - - /// - /// Высота прорисовки зенитной установки - /// - private readonly int _AntiAircraftGunHeight = 100; - - /// - /// Инициализация свойств - /// - /// Скорость - /// Вес зенитной установки - /// Основной цвет - /// Дополнительный цвет - /// Признак наличия радара - /// Признак наличия люка зенитной установки - /// Признак наличия пушки зенитной установки - /// Ширина картинки - /// Высота картинки - /// true - объект создан, false - проверка не пройдена, нельзя создать объект в этих размерах - public bool Init(int speed, int weight, Color bodyColor, Color additionalColor, bool radar, bool hatch, bool cannon, int width, int height) - { - _pictureWidth = width; - _pictureHeight = height; - if (_pictureWidth > _AntiAircraftGunWidth && _pictureHeight > _AntiAircraftGunHeight) { - EntityAntiAircraftGun = new EntityAntiAircraftGun(); - EntityAntiAircraftGun.Init(speed, weight, bodyColor, additionalColor, radar, hatch, cannon); - return true; - } - return false; - } - - /// - /// Установка позиции - /// - /// Координата Х - /// Координата Y - public void SetPosition(int x, int y) - { - if (EntityAntiAircraftGun == null) return; - while (x + _AntiAircraftGunWidth > _pictureWidth) - { - x -= (int)EntityAntiAircraftGun.Step; - } - while (x < 0) - { - x += (int)EntityAntiAircraftGun.Step; - } - while (y + _AntiAircraftGunHeight > _pictureHeight) - { - y -= (int)EntityAntiAircraftGun.Step; - } - while (y < 0) - { - y += (int)EntityAntiAircraftGun.Step; - } - _startPosX = x; - _startPosY = y; - } - - public void MoveTransport(DirectionType direction) - { - if (EntityAntiAircraftGun == null) - { return; } - switch (direction) - { - case DirectionType.Left: - if (_startPosX - EntityAntiAircraftGun.Step > 0) - { - _startPosX -= (int)EntityAntiAircraftGun.Step; - } - break; - case DirectionType.Right: - if (_startPosX + _AntiAircraftGunWidth + EntityAntiAircraftGun.Step < DrawingAntiAircraftGun._pictureWidth) - { - _startPosX += (int)EntityAntiAircraftGun.Step; - } - break; - case DirectionType.Up: - if (_startPosY - EntityAntiAircraftGun.Step > 0) - { - _startPosY -= (int)EntityAntiAircraftGun.Step; - } - break; - case DirectionType.Down: - if (_startPosY + _AntiAircraftGunHeight + EntityAntiAircraftGun.Step < DrawingAntiAircraftGun._pictureHeight) - { - _startPosY += (int)EntityAntiAircraftGun.Step; - } - break; - } - } - public void DrawTransport(Graphics g) - { - if (EntityAntiAircraftGun == null) { return; } - Pen pen = new(Color.Black); - pen.Width = 2; - Brush brush = new SolidBrush(EntityAntiAircraftGun.BodyColor); - Brush additionalBrush = new SolidBrush(EntityAntiAircraftGun.AdditionalColor); - - // границы зенитной установки - g.DrawRectangle(pen, _startPosX + 3, _startPosY + 60, 121, 23); - g.DrawRectangle(pen, _startPosX + 20, _startPosY + 43, 54, 16); - g.DrawRectangle(pen, _startPosX + 42, _startPosY + 33, 16, 9); - - // корпус - g.FillRectangle(brush, _startPosX + 3, _startPosY + 60, 121, 23); - g.FillRectangle(brush, _startPosX + 20, _startPosY + 43, 54, 16); - g.FillRectangle(brush, _startPosX + 42, _startPosY + 33, 16, 9); - - // контур гусеницы - g.DrawLine(pen, _startPosX + 13, _startPosY + 100, _startPosX + 114, _startPosY + 100); - g.DrawLine(pen, _startPosX + 6, _startPosY + 99, _startPosX + 16, _startPosY + 99); - g.DrawLine(pen, _startPosX + 4, _startPosY + 98, _startPosX + 6, _startPosY + 98); - g.DrawLine(pen, _startPosX + 4, _startPosY + 97, _startPosX + 4, _startPosY + 86); - g.DrawLine(pen, _startPosX + 4, _startPosY + 86, _startPosX + 5, _startPosY + 86); - g.DrawLine(pen, _startPosX + 5, _startPosY + 85, _startPosX + 10, _startPosY + 85); - g.DrawLine(pen, _startPosX + 10, _startPosY + 84, _startPosX + 116, _startPosY + 84); - g.DrawLine(pen, _startPosX + 116, _startPosY + 85, _startPosX + 123, _startPosY + 85); - g.DrawLine(pen, _startPosX + 124, _startPosY + 86, _startPosX + 125, _startPosY + 86); - g.DrawLine(pen, _startPosX + 125, _startPosY + 87, _startPosX + 125, _startPosY + 97); - g.DrawLine(pen, _startPosX + 123, _startPosY + 98, _startPosX + 125, _startPosY + 98); - g.DrawLine(pen, _startPosX + 115, _startPosY + 99, _startPosX + 123, _startPosY + 99); - - //гусеница - g.FillRectangle(additionalBrush, _startPosX + 4, _startPosY + 87, 120, 10); - g.FillRectangle(additionalBrush, _startPosX + 19, _startPosY + 85, 92, 2); - g.FillRectangle(additionalBrush, _startPosX + 14, _startPosY + 93, 100, 7); - - // контур колес - g.DrawEllipse(pen, _startPosX + 5, _startPosY + 83, 18, 17); - g.DrawEllipse(pen, _startPosX + 30, _startPosY + 88, 15, 12); - g.DrawEllipse(pen, _startPosX + 50, _startPosY + 88, 15, 12); - g.DrawEllipse(pen, _startPosX + 70, _startPosY + 88, 15, 12); - g.DrawEllipse(pen, _startPosX + 87, _startPosY + 88, 15, 12); - g.DrawEllipse(pen, _startPosX + 107, _startPosY + 83, 18, 17); - - // контур верхних катков - g.DrawEllipse(pen, _startPosX + 43, _startPosY + 83, 7, 5); - g.DrawEllipse(pen, _startPosX + 64, _startPosY + 83, 7, 5); - g.DrawEllipse(pen, _startPosX + 82, _startPosY + 83, 7, 5); - - - // колеса - g.FillEllipse(brush, _startPosX + 5, _startPosY + 83, 18, 17); - g.FillEllipse(brush, _startPosX + 30, _startPosY + 88, 15, 12); - g.FillEllipse(brush, _startPosX + 50, _startPosY + 88, 15, 12); - g.FillEllipse(brush, _startPosX + 70, _startPosY + 88, 15, 12); - g.FillEllipse(brush, _startPosX + 87, _startPosY + 88, 15, 12); - g.FillEllipse(brush, _startPosX + 107, _startPosY + 83, 18, 17); - - // верхние катки - g.FillEllipse(brush, _startPosX + 43, _startPosY + 83, 7, 5); - g.FillEllipse(brush, _startPosX + 64, _startPosY + 83, 7, 5); - g.FillEllipse(brush, _startPosX + 82, _startPosY + 83, 7, 5); - - // радар - if (EntityAntiAircraftGun.Radar) - { - Pen penRadar = new(Color.DarkGreen); - g.DrawEllipse(penRadar, _startPosX + 52, _startPosY + 46, 21, 12); - g.DrawEllipse(penRadar, _startPosX + 55, _startPosY + 48, 14, 8); - pen = new(Color.Green); - g.DrawLine(penRadar, _startPosX + 61, _startPosY + 52, _startPosX + 70, _startPosY + 48); - } - - // пушка - if (EntityAntiAircraftGun.Cannon) - { - g.DrawLine(pen, _startPosX + 54, _startPosY + 33, _startPosX + 113, _startPosY + 2); - g.DrawLine(pen, _startPosX + 57, _startPosY + 35, _startPosX + 122, _startPosY + 2); - } - - // люк - if (EntityAntiAircraftGun.Hatch) - { - pen = new(EntityAntiAircraftGun.AdditionalColor); - g.DrawRectangle(pen, _startPosX + 88, _startPosY + 64, 17, 6); - g.DrawLine(pen, _startPosX + 88, _startPosY + 67, _startPosX + 105, _startPosY + 67); - g.DrawLine(pen, _startPosX + 94, _startPosY + 64, _startPosX + 94, _startPosY + 70); - } - } - } -} diff --git a/AntiAircraftGun/EntityAntiAircraftGun.cs b/AntiAircraftGun/EntityAntiAircraftGun.cs deleted file mode 100644 index da95d5e..0000000 --- a/AntiAircraftGun/EntityAntiAircraftGun.cs +++ /dev/null @@ -1,72 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace ProjectAntiAircraftGun -{ - public class EntityAntiAircraftGun - { - /// - /// Скорость - /// - public int Speed { get; private set; } - - /// - /// Вес - /// - public int Weight { get; private set; } - - /// - /// Основной цвет - /// - public Color BodyColor { get; private set; } - - /// - /// Дополнительный цвет (для опциональных элементов) - /// - public Color AdditionalColor { get; private set; } - - /// - /// Радар - /// - public bool Radar { get; private set; } - - /// - /// люк зенитной установки - /// - public bool Hatch { get; private set; } - - /// - /// пушка танк - /// - public bool Cannon { get; private set; } - - /// - /// Шаг перемещения зенитной установки - /// - public double Step => (double)Speed * 100 / Weight; - - /// - /// Инициализация полей объекта-класс зенитной установки - /// - /// Скорость - /// Вес зенитной установки - /// Основной цвет - /// Дополнительный цвет - /// Признак наличия радара - /// Признак наличия люка зенитной установки - /// Признак наличия пушки зенитной установки - public void Init(int speed, int weight, Color bodyColor, Color additionalColor, bool radar, bool hatch, bool cannon) - { - Speed = speed; - Weight = weight; - BodyColor = bodyColor; - AdditionalColor = additionalColor; - Hatch = hatch; - Radar = radar; - Cannon = cannon; - } - } -} diff --git a/AntiAircraftGun/Form1.Designer.cs b/AntiAircraftGun/Form1.Designer.cs deleted file mode 100644 index 4350061..0000000 --- a/AntiAircraftGun/Form1.Designer.cs +++ /dev/null @@ -1,39 +0,0 @@ -namespace AntiAircraftGun -{ - partial class Form1 - { - /// - /// 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() - { - this.components = new System.ComponentModel.Container(); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 450); - this.Text = "Form1"; - } - - #endregion - } -} \ No newline at end of file diff --git a/AntiAircraftGun/Form1.cs b/AntiAircraftGun/Form1.cs deleted file mode 100644 index 90486ab..0000000 --- a/AntiAircraftGun/Form1.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace AntiAircraftGun -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - } -} \ No newline at end of file diff --git a/AntiAircraftGun/FormAntiAircraftGun.Designer.cs b/AntiAircraftGun/FormAntiAircraftGun.Designer.cs deleted file mode 100644 index 37e3ac7..0000000 --- a/AntiAircraftGun/FormAntiAircraftGun.Designer.cs +++ /dev/null @@ -1,136 +0,0 @@ -namespace ProjectAntiAircraftGun -{ - partial class FormAntiAircraftGun - { - /// - /// 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() - { - pictureBoxAntiAircraftGun = new PictureBox(); - createButton = new Button(); - buttonRight = new Button(); - buttonLeft = new Button(); - buttonDown = new Button(); - buttonUp = new Button(); - ((System.ComponentModel.ISupportInitialize)pictureBoxAntiAircraftGun).BeginInit(); - SuspendLayout(); - // - // pictureBoxAntiAircraftGun - // - pictureBoxAntiAircraftGun.Dock = DockStyle.Fill; - pictureBoxAntiAircraftGun.Location = new Point(0, 0); - pictureBoxAntiAircraftGun.Name = "pictureBoxAntiAircraftGun"; - pictureBoxAntiAircraftGun.Size = new Size(800, 450); - pictureBoxAntiAircraftGun.SizeMode = PictureBoxSizeMode.AutoSize; - pictureBoxAntiAircraftGun.TabIndex = 0; - pictureBoxAntiAircraftGun.TabStop = false; - // - // createButton - // - createButton.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; - createButton.Location = new Point(12, 415); - createButton.Name = "createButton"; - createButton.Size = new Size(75, 23); - createButton.TabIndex = 1; - createButton.Text = "создать"; - createButton.UseVisualStyleBackColor = true; - createButton.Click += ButtonCreateAntiAircraftGun; - // - // buttonRight - // - buttonRight.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; - buttonRight.BackgroundImage = AntiAircraftGun.Properties.Resources.right; - buttonRight.BackgroundImageLayout = ImageLayout.Zoom; - buttonRight.Location = new Point(739, 413); - buttonRight.Name = "buttonRight"; - buttonRight.Size = new Size(61, 30); - buttonRight.TabIndex = 2; - buttonRight.UseVisualStyleBackColor = true; - buttonRight.Click += ButtonMove_Click; - // - // buttonLeft - // - buttonLeft.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; - buttonLeft.BackgroundImage = AntiAircraftGun.Properties.Resources.left; - buttonLeft.BackgroundImageLayout = ImageLayout.Zoom; - buttonLeft.Location = new Point(605, 413); - buttonLeft.Name = "buttonLeft"; - buttonLeft.Size = new Size(61, 30); - buttonLeft.TabIndex = 6; - buttonLeft.UseVisualStyleBackColor = true; - buttonLeft.Click += ButtonMove_Click; - // - // buttonDown - // - buttonDown.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; - buttonDown.BackgroundImage = AntiAircraftGun.Properties.Resources.bottom; - buttonDown.BackgroundImageLayout = ImageLayout.Zoom; - buttonDown.Location = new Point(672, 415); - buttonDown.Name = "buttonDown"; - buttonDown.Size = new Size(61, 30); - buttonDown.TabIndex = 7; - buttonDown.UseVisualStyleBackColor = true; - buttonDown.Click += ButtonMove_Click; - // - // buttonUp - // - buttonUp.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; - buttonUp.BackgroundImage = AntiAircraftGun.Properties.Resources.top; - buttonUp.BackgroundImageLayout = ImageLayout.Zoom; - buttonUp.Location = new Point(672, 379); - buttonUp.Name = "buttonUp"; - buttonUp.Size = new Size(61, 30); - buttonUp.TabIndex = 8; - buttonUp.UseVisualStyleBackColor = true; - buttonUp.Click += ButtonMove_Click; - // - // FormAntiAircraftGun - // - AutoScaleDimensions = new SizeF(7F, 15F); - AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(800, 450); - Controls.Add(buttonUp); - Controls.Add(buttonDown); - Controls.Add(buttonLeft); - Controls.Add(buttonRight); - Controls.Add(createButton); - Controls.Add(pictureBoxAntiAircraftGun); - Name = "FormAntiAircraftGun"; - Text = "Зенитная установка"; - ((System.ComponentModel.ISupportInitialize)pictureBoxAntiAircraftGun).EndInit(); - ResumeLayout(false); - PerformLayout(); - } - - #endregion - - private PictureBox pictureBoxAntiAircraftGun; - private Button createButton; - private Button buttonRight; - private Button buttonLeft; - private Button buttonDown; - private Button buttonUp; - } -} \ No newline at end of file diff --git a/AntiAircraftGun/FormAntiAircraftGun.cs b/AntiAircraftGun/FormAntiAircraftGun.cs deleted file mode 100644 index e2ab86a..0000000 --- a/AntiAircraftGun/FormAntiAircraftGun.cs +++ /dev/null @@ -1,78 +0,0 @@ -namespace ProjectAntiAircraftGun -{ - /// - /// " " - /// - public partial class FormAntiAircraftGun : Form - { - /// - /// - - /// - private DrawingAntiAircraftGun? _drawingAntiAircraftGun; - - /// - /// - /// - public FormAntiAircraftGun() - { - InitializeComponent(); - } - - - /// - /// - /// - private void Draw() - { - if (_drawingAntiAircraftGun == null) { return; } - Bitmap bmp = new(pictureBoxAntiAircraftGun.Width, pictureBoxAntiAircraftGun.Height); - Graphics gr = Graphics.FromImage(bmp); - _drawingAntiAircraftGun.DrawTransport(gr); - pictureBoxAntiAircraftGun.Image = bmp; - } - /// - /// "" - /// - /// - /// - private void ButtonCreateAntiAircraftGun(object sender, EventArgs e) - { - Random random = new(); - _drawingAntiAircraftGun = new DrawingAntiAircraftGun(); - _drawingAntiAircraftGun.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)), Convert.ToBoolean(random.Next(0, 2)), - pictureBoxAntiAircraftGun.Width, pictureBoxAntiAircraftGun.Height); - _drawingAntiAircraftGun.SetPosition(random.Next(10, 100), random.Next(10, 100)); - Draw(); - } - - /// - /// - /// - /// - /// - private void ButtonMove_Click(object sender, EventArgs e) - { - if (_drawingAntiAircraftGun == null) return; - - string name = ((Button)sender)?.Name ?? string.Empty; - switch (name) - { - case "buttonUp": - _drawingAntiAircraftGun.MoveTransport(DirectionType.Up); - break; - case "buttonDown": - _drawingAntiAircraftGun.MoveTransport(DirectionType.Down); - break; - case "buttonLeft": - _drawingAntiAircraftGun.MoveTransport(DirectionType.Left); - break; - case "buttonRight": - _drawingAntiAircraftGun.MoveTransport(DirectionType.Right); - break; - } - Draw(); - } - - } -} \ No newline at end of file diff --git a/AntiAircraftGun/FormAntiAircraftGun.resx b/AntiAircraftGun/FormAntiAircraftGun.resx deleted file mode 100644 index af32865..0000000 --- a/AntiAircraftGun/FormAntiAircraftGun.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/AntiAircraftGun/Program.cs b/AntiAircraftGun/Program.cs deleted file mode 100644 index e5ff67e..0000000 --- a/AntiAircraftGun/Program.cs +++ /dev/null @@ -1,17 +0,0 @@ -namespace ProjectAntiAircraftGun -{ - internal static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - // To customize application configuration such as set high DPI settings or default font, - // see https://aka.ms/applicationconfiguration. - ApplicationConfiguration.Initialize(); - Application.Run(new FormAntiAircraftGun()); - } - } -} \ No newline at end of file diff --git a/AntiAircraftGun/ProjectAntiAircraftGun.csproj b/AntiAircraftGun/ProjectAntiAircraftGun.csproj deleted file mode 100644 index 13ee123..0000000 --- a/AntiAircraftGun/ProjectAntiAircraftGun.csproj +++ /dev/null @@ -1,26 +0,0 @@ - - - - WinExe - net6.0-windows - enable - true - enable - - - - - True - True - Resources.resx - - - - - - ResXFileCodeGenerator - Resources.Designer.cs - - - - \ No newline at end of file diff --git a/AntiAircraftGun/ProjectAntiAircraftGun.sln b/AntiAircraftGun/ProjectAntiAircraftGun.sln deleted file mode 100644 index b7ca572..0000000 --- a/AntiAircraftGun/ProjectAntiAircraftGun.sln +++ /dev/null @@ -1,25 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.5.33530.505 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectAntiAircraftGun", "ProjectAntiAircraftGun.csproj", "{3D00CFC0-D6DA-4872-B170-5D543632BC67}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3D00CFC0-D6DA-4872-B170-5D543632BC67}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3D00CFC0-D6DA-4872-B170-5D543632BC67}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3D00CFC0-D6DA-4872-B170-5D543632BC67}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3D00CFC0-D6DA-4872-B170-5D543632BC67}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {0F97A468-ED8E-4382-904C-8D6C96065D61} - EndGlobalSection -EndGlobal diff --git a/AntiAircraftGun/Properties/Resources.Designer.cs b/AntiAircraftGun/Properties/Resources.Designer.cs deleted file mode 100644 index ce16850..0000000 --- a/AntiAircraftGun/Properties/Resources.Designer.cs +++ /dev/null @@ -1,103 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace AntiAircraftGun.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.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() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [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("AntiAircraftGun.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap bottom { - get { - object obj = ResourceManager.GetObject("bottom", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap left { - get { - object obj = ResourceManager.GetObject("left", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap right { - get { - object obj = ResourceManager.GetObject("right", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap top { - get { - object obj = ResourceManager.GetObject("top", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - } -} diff --git a/AntiAircraftGun/Properties/Resources.resx b/AntiAircraftGun/Properties/Resources.resx deleted file mode 100644 index dde4c2d..0000000 --- a/AntiAircraftGun/Properties/Resources.resx +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - - ..\Resources\left.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\right.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\top.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\bottom.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - \ No newline at end of file diff --git a/AntiAircraftGun/Resources/bottom.jpg b/AntiAircraftGun/Resources/bottom.jpg deleted file mode 100644 index dc9c3c543d5c3ec63918cad7559f3c5940225acd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64244 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 acJVfWQmM$oZAjKP1IhXeH^Zx-Wo&*8_ diff --git a/AntiAircraftGun/Resources/bottom.png b/AntiAircraftGun/Resources/bottom.png deleted file mode 100644 index 2228e2f2325dbfa2bb565621716f72fc991edbab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2881 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 diff --git a/AntiAircraftGun/Resources/png-clipart-computer-icons-uma-musume-pretty-derby-fate-grand-order-saber-kemono-friends-three-arrow-game-angle.png b/AntiAircraftGun/Resources/png-clipart-computer-icons-uma-musume-pretty-derby-fate-grand-order-saber-kemono-friends-three-arrow-game-angle.png deleted file mode 100644 index 32b8866fc857f7a26d8e6560cf4e71da7b2ffb7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2939 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 F{{;<%GOPdq diff --git a/AntiAircraftGun/Resources/png-transparent-arrow-left-thin-zondicons-icon.png b/AntiAircraftGun/Resources/png-transparent-arrow-left-thin-zondicons-icon.png deleted file mode 100644 index 8d65f1d82eabd6132028e2261e8ad130a5f031d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4573 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 EU*8IyivR!s diff --git a/AntiAircraftGun/Resources/png-transparent-grammatical-person-paper-narration-direzione-didattica-statale-gestione-scuola-elementare-copy-print-right-arrow-miscellaneous-game-angle.png b/AntiAircraftGun/Resources/png-transparent-grammatical-person-paper-narration-direzione-didattica-statale-gestione-scuola-elementare-copy-print-right-arrow-miscellaneous-game-angle.png deleted file mode 100644 index c54d1d7a7365250b5a4e5dae97e6a0ce60aae107..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2404 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 HUk3gMi^iff diff --git a/AntiAircraftGun/Resources/right.png b/AntiAircraftGun/Resources/right.png deleted file mode 100644 index 20ef8252de41ee9a6dabfcebcce97a566ea9de09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3343 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 diff --git a/AntiAircraftGun/Resources/top.jpg b/AntiAircraftGun/Resources/top.jpg deleted file mode 100644 index b6815d1c0b1f533425f3ccd3f1d4a3334166a943..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8553 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 diff --git a/AntiAircraftGun/Resources/top.png b/AntiAircraftGun/Resources/top.png deleted file mode 100644 index 29abf7e4b00592f85c1fd5c2c876cf43eaeeb8a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3141 zcmd5;eNYo;8h>^-$r1@BP`(rpw4!`9MwEi5!qP}Z@FOaMCC z6R5!;T8WAl5doPwf5kbWqwFp)NI!Gij>@A&frgiwknVXxro!NPx=QsPl zzvulu&(8e*Az8W9Y|_+80ARK(aLF0~lnJqX7RD^AEkoBb3lhI(=_gRuYCpgvtgZel z`~faxo4)ys&E$N^@{oYOzCN0!nM@{=H8eDsQrFHg30E2z9uF|NVf;mI#1?M>Fs)y< z#6Kjl`}spzT(6Jd`oCSOa8WuIeU*L7tf|#_`=a@--XmSCtn=lebdT|`kDHfUFSgoq z`RL4~Lp2XAPbryW$#4iyc!|W1$A5bASvevB@+Sy@YCr8^oAC|^(OlwR1nXTiSXmkE zG=Bd-KBO~nG4nqn#6v{)5IcNursM?WdA zMw0yUIZ~U!6_~wRcj`0Hjd7*bJdOBRBssZu{&2 zV-%##g*~IDlpWST)>F?*zXiiI=5rL4j?r`36*MQ>h2`|){fv4!CMeiE56c}Kp}WkF zApP}hpFN+0@Dcj@TPw0bXW*wzw*w;|zH2ohY1c42FgPLyzvYtIj);oI=%PpTm!dl!R4PK9=T%P{x&ThR^bPF(!_OE|?AZM_$g$ebkvEkQ z8`<~fuzYs^6IIV)4V_0l9@1N=`Y5r2fFs98>FC(@y|b7ao=s<%PTc-|9G=M06-(F?(#L=Hx- zWwv7D1%kSc-Z*6^M-_z#IN}zF2!(xDCGN1_%fNS7?G8paD8vbC*M+f{cG0OjW1K2q zno@;!h*X&eb>`%*=VSF8aWkUtfI2SuP;Y#Mi))b)JJ=#BveU>g@{t!*#L%9$Ys}hW zQJ=4#BEq9k#B<~L?7UCUw{7RO#j=LFk!r2nEiDNdIg0Fx5jm4HS3G$xWa8Mo*|J<$ zzde^^^rgZR64SP&FqDZzWEuAto@kp?k&Q}2O*OtJA+ZX6@G;OHX+elS5H`6IS^G)X zQ!7bvsWEtI(PYiysg!Y=gd>QhbystQq-+UH;SHd#GfV_MZk?RAYY*xbS7$FT}og(2tjX z2WoUI*z^IBX_O!K_X3#(lyjT{xV$MNYstA>e8vldYC)J83}~THOSb11maa0e$vM@m^sKM2gtI#N!h_#!CLix1P7W3vc=cn1-nid${T#{{qt0$7 z6|%NtJ0c*w@d*C-p8PQubP62~2W>rhfAAmR#%N1*lOMO)d^N5j!PH$YoSHP&wQAf6) z2LlRqv&d}Jkex&fd`h+|18-qL-l(O^-szp&A>|0K3M^gsPS1my8P1|DrI@NwOex|W z;O{}vfmWdHJrGljXf&p?P}1YB?k;@FC~#jbwWZT$_fTd6tP;CNr8UI4(cq zEnO+ZKqz_AS@d{=Ev0O|`#YI%@AMd?NA`jjfTWD>T%<~{BVJh8#(iWWso)pPQ(!LL zc#A7XQ&NM~al~v$aaa(G=9F$b_&6+NH@?p^ z--hZuyjE$YDq#j&=uX5i<@(w-ztl)!<0a2rYd2& zkYh%59$ClGBE^-=lpF!K6sE{NvfT;4EQc^i{U;WTfrFI@$+jS)(#R-i)#E$Ph-3|;M=ZC;VfVOvrno|gx5eYH!%{oC`w3B3HgY8EQ1SH|sAV?J6_N#v4njAwc471jo*ie@%dufte#!og8I-t8wyKn0@JlcFo57_HJM1XYYktWLRz;-}18Ldko~89=ZA9i@VU#?$5m7LoRinks zbTxboEqr9{%G-52R$BXAyt$qE^;a?C^E7uJA*=WkB>co4OUC(Xma3iaf+cIwm zbOGbGBZWO=1>~F2Zf~Vu{c=n&8Zfq-`;KuS=R)`dF2{o0H<2CLa&-ci0~Qn75%vTw z2ML_eJ6TWQa#&8EP2`>a--{(OZ=dhAcq_7q>vX{Ke065@~#OdJo rS3(%`-fgQ@ym#CF>tb*HdSB~zY;$0ef@{$@F3hrkl}pM#iT?UO%4r74 -- 2.25.1