From d24c649c28ca06d0d042f6a188fb7561ccdbfa0a Mon Sep 17 00:00:00 2001 From: Extrimal Date: Sun, 8 Oct 2023 20:22:39 +0300 Subject: [PATCH] =?UTF-8?q?=D0=93=D0=BE=D1=82=D0=BE=D0=B2=D0=B0=D1=8F=20?= =?UTF-8?q?=D0=BF=D0=B5=D1=80=D0=B2=D0=B0=D1=8F=20=D0=BB=D0=B0=D0=B1=D0=BE?= =?UTF-8?q?=D1=80=D0=B0=D1=82=D0=BE=D1=80=D0=BD=D0=B0=D1=8F=20=D1=80=D0=B0?= =?UTF-8?q?=D0=B1=D0=BE=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AircraftCarrier/AircraftCarrier.csproj | 15 ++ AircraftCarrier/AircraftCarrier/Direction.cs | 27 ++++ .../DrawningAircraftCarrier.cs | 113 ++++++++++++++ .../AircraftCarrier/EntityAircraftCarrier.cs | 55 +++++++ .../AircraftCarrier/Form1.Designer.cs | 39 ----- AircraftCarrier/AircraftCarrier/Form1.cs | 10 -- .../FormAircraftCarrier.Designer.cs | 138 ++++++++++++++++++ .../AircraftCarrier/FormAircraftCarrier.cs | 63 ++++++++ .../{Form1.resx => FormAircraftCarrier.resx} | 50 +++---- AircraftCarrier/AircraftCarrier/Program.cs | 2 +- .../Properties/Resources.Designer.cs | 103 +++++++++++++ .../AircraftCarrier/Properties/Resources.resx | 133 +++++++++++++++++ .../AircraftCarrier/Resources/Icon_Down.png | Bin 0 -> 4270 bytes .../AircraftCarrier/Resources/Icon_Left.png | Bin 0 -> 3535 bytes .../AircraftCarrier/Resources/Icon_Right.png | Bin 0 -> 3450 bytes .../AircraftCarrier/Resources/Icon_Up.png | Bin 0 -> 4264 bytes 16 files changed, 673 insertions(+), 75 deletions(-) create mode 100644 AircraftCarrier/AircraftCarrier/Direction.cs create mode 100644 AircraftCarrier/AircraftCarrier/DrawningAircraftCarrier.cs create mode 100644 AircraftCarrier/AircraftCarrier/EntityAircraftCarrier.cs delete mode 100644 AircraftCarrier/AircraftCarrier/Form1.Designer.cs delete mode 100644 AircraftCarrier/AircraftCarrier/Form1.cs create mode 100644 AircraftCarrier/AircraftCarrier/FormAircraftCarrier.Designer.cs create mode 100644 AircraftCarrier/AircraftCarrier/FormAircraftCarrier.cs rename AircraftCarrier/AircraftCarrier/{Form1.resx => FormAircraftCarrier.resx} (93%) create mode 100644 AircraftCarrier/AircraftCarrier/Properties/Resources.Designer.cs create mode 100644 AircraftCarrier/AircraftCarrier/Properties/Resources.resx create mode 100644 AircraftCarrier/AircraftCarrier/Resources/Icon_Down.png create mode 100644 AircraftCarrier/AircraftCarrier/Resources/Icon_Left.png create mode 100644 AircraftCarrier/AircraftCarrier/Resources/Icon_Right.png create mode 100644 AircraftCarrier/AircraftCarrier/Resources/Icon_Up.png diff --git a/AircraftCarrier/AircraftCarrier/AircraftCarrier.csproj b/AircraftCarrier/AircraftCarrier/AircraftCarrier.csproj index b57c89e..13ee123 100644 --- a/AircraftCarrier/AircraftCarrier/AircraftCarrier.csproj +++ b/AircraftCarrier/AircraftCarrier/AircraftCarrier.csproj @@ -8,4 +8,19 @@ enable + + + True + True + Resources.resx + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + \ No newline at end of file diff --git a/AircraftCarrier/AircraftCarrier/Direction.cs b/AircraftCarrier/AircraftCarrier/Direction.cs new file mode 100644 index 0000000..5042925 --- /dev/null +++ b/AircraftCarrier/AircraftCarrier/Direction.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +namespace AircraftCarrier +{ + public enum Direction + { + /// + /// Вверх + /// + Up = 1, + /// + /// Вниз + /// + Down = 2, + /// + /// Влево + /// + Left = 3, + /// + /// Вправо + /// + Right = 4 + } +} diff --git a/AircraftCarrier/AircraftCarrier/DrawningAircraftCarrier.cs b/AircraftCarrier/AircraftCarrier/DrawningAircraftCarrier.cs new file mode 100644 index 0000000..6230099 --- /dev/null +++ b/AircraftCarrier/AircraftCarrier/DrawningAircraftCarrier.cs @@ -0,0 +1,113 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +namespace AircraftCarrier +{ + internal class DrawningAircraftCarrier + { + public EntityAircraftCarrier? EntityAircraftCarrier { get; private set; } + private int _pictureWidth; + private int _pictureHeight; + private int _startPosX; + private int _startPosY; + private readonly int _AircraftCarrierWidth = 164; + private readonly int _AircraftCarrierHeight = 40; + public bool Init(int speed, double weight, Color bodyColor, Color + additionalColor, bool bodyKit, bool wing, bool sportLine, int width, int height) + { + _pictureWidth = width; + _pictureHeight = height; + if(_AircraftCarrierWidth <_pictureWidth || _AircraftCarrierHeight <_pictureHeight) + { + EntityAircraftCarrier = new EntityAircraftCarrier(); + EntityAircraftCarrier.Init(speed, weight, bodyColor, additionalColor, + bodyKit, wing, sportLine); + return true; + } + return false; + } + public void SetPosition(int x, int y) + { + _startPosX = x; + _startPosY = y; + if (_startPosX < 0 || _startPosY < 0 || _startPosX > (_pictureWidth - _AircraftCarrierWidth) || _startPosY>(_pictureHeight - _AircraftCarrierHeight)) + { + _startPosX = 50; + _startPosY = 50; + } + } + public void MoveTransport(Direction direction) + { + if (EntityAircraftCarrier == null) + { + return; + } + switch (direction) + { + //влево + case Direction.Left: + if (_startPosX - EntityAircraftCarrier.Step > 0) + { + _startPosX -= (int)EntityAircraftCarrier.Step; + } + break; + //вверх + case Direction.Up: + if (_startPosY - EntityAircraftCarrier.Step > 0) + { + _startPosY -= (int)EntityAircraftCarrier.Step; + } + break; + // вправо + case Direction.Right: + if (_startPosX + EntityAircraftCarrier.Step + _AircraftCarrierWidth < _pictureWidth) + { + _startPosX += (int)EntityAircraftCarrier.Step; + } + break; + //вниз + case Direction.Down: + if(_startPosY + EntityAircraftCarrier.Step + _AircraftCarrierHeight < _pictureHeight) + { + _startPosY += (int)EntityAircraftCarrier.Step; + } + break; + } + } + public void DrawTransport(Graphics g) + { + if (EntityAircraftCarrier == null) + { + return; + } + Pen pen = new(Color.Black); + Brush additionalBrush = new SolidBrush(EntityAircraftCarrier.AdditionalColor); + g.DrawLine(pen, _startPosX+4, _startPosY, _startPosX + 124, _startPosY); + g.DrawLine(pen, _startPosX+124, _startPosY, _startPosX + 164, _startPosY+20); + g.DrawLine(pen, _startPosX + 164, _startPosY+20, _startPosX + 124, _startPosY + 40); + g.DrawLine(pen, _startPosX + 164, _startPosY + 20, _startPosX + 124, _startPosY + 40); + g.DrawLine(pen, _startPosX + 124, _startPosY + 40, _startPosX + 4, _startPosY + 40); + g.DrawLine(pen, _startPosX+4, _startPosY + 40, _startPosX + 4, _startPosY); + g.FillRectangle(additionalBrush, _startPosX, _startPosY + 6, 4, 12); + g.FillRectangle(additionalBrush, _startPosX, _startPosY + 24, 4, 12); + g.DrawEllipse(pen, _startPosX + 115, _startPosY + 13, 14, 14); + g.DrawRectangle(pen, _startPosX + 63, _startPosY + 13, 27, 14); + g.DrawRectangle(pen, _startPosX + 90, _startPosY + 9, 14, 22); + Pen penWhite = new(Color.White); + if (EntityAircraftCarrier.BodyKit) + { + g.FillRectangle(additionalBrush, _startPosX + 4, _startPosY + 13, 59, 14); + g.DrawLine(penWhite, _startPosX + 62, _startPosY + 19, _startPosX + 52, _startPosY + 19); + g.DrawLine(penWhite, _startPosX + 47, _startPosY + 19, _startPosX + 37, _startPosY + 19); + g.DrawLine(penWhite, _startPosX + 32, _startPosY + 19, _startPosX + 22, _startPosY + 19); + g.DrawLine(penWhite, _startPosX + 17, _startPosY + 19, _startPosX + 7, _startPosY + 19); + } + if (EntityAircraftCarrier.Wing) + { + g.FillRectangle(additionalBrush, _startPosX + 90, _startPosY, 15, 9); + } + } + } +} diff --git a/AircraftCarrier/AircraftCarrier/EntityAircraftCarrier.cs b/AircraftCarrier/AircraftCarrier/EntityAircraftCarrier.cs new file mode 100644 index 0000000..eac481b --- /dev/null +++ b/AircraftCarrier/AircraftCarrier/EntityAircraftCarrier.cs @@ -0,0 +1,55 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace AircraftCarrier +{ + public class EntityAircraftCarrier + { + /// + /// Скорость + /// + public int Speed { get; private set; } + /// + /// Вес + /// + public double Weight { get; private set; } + /// + /// Основной цвет + /// + public Color BodyColor { get; private set; } + /// + /// Дополнительный цвет (для опциональных элементов) + /// + public Color AdditionalColor { get; private set; } + /// + /// Признак (опция) наличия обвеса + /// + public bool BodyKit { get; private set; } + /// + /// Признак (опция) наличия антикрыла + /// + public bool Wing { get; private set; } + /// + /// Признак (опция) наличия гоночной полосы + /// + public bool SportLine { get; private set; } + /// + /// Шаг перемещения автомобиля + /// + public double Step => (double)Speed * 100 / Weight; + public void Init(int speed, double weight, Color bodyColor, Color + additionalColor, bool bodyKit, bool wing, bool sportLine) + { + Speed = speed; + Weight = weight; + BodyColor = bodyColor; + AdditionalColor = additionalColor; + BodyKit = bodyKit; + Wing = wing; + SportLine = sportLine; + } + } +} \ No newline at end of file diff --git a/AircraftCarrier/AircraftCarrier/Form1.Designer.cs b/AircraftCarrier/AircraftCarrier/Form1.Designer.cs deleted file mode 100644 index d531f87..0000000 --- a/AircraftCarrier/AircraftCarrier/Form1.Designer.cs +++ /dev/null @@ -1,39 +0,0 @@ -namespace AircraftCarrier -{ - 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/AircraftCarrier/AircraftCarrier/Form1.cs b/AircraftCarrier/AircraftCarrier/Form1.cs deleted file mode 100644 index 1c6b704..0000000 --- a/AircraftCarrier/AircraftCarrier/Form1.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace AircraftCarrier -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - } -} \ No newline at end of file diff --git a/AircraftCarrier/AircraftCarrier/FormAircraftCarrier.Designer.cs b/AircraftCarrier/AircraftCarrier/FormAircraftCarrier.Designer.cs new file mode 100644 index 0000000..bd09e0b --- /dev/null +++ b/AircraftCarrier/AircraftCarrier/FormAircraftCarrier.Designer.cs @@ -0,0 +1,138 @@ +namespace AircraftCarrier +{ + partial class FormAircraftCarrier + { + /// + /// 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() + { + pictureBox = new PictureBox(); + buttonCreate = new Button(); + buttonUp = new Button(); + buttonLeft = new Button(); + buttonDown = new Button(); + buttonRight = new Button(); + ((System.ComponentModel.ISupportInitialize)pictureBox).BeginInit(); + SuspendLayout(); + // + // pictureBox + // + pictureBox.Dock = DockStyle.Fill; + pictureBox.Location = new Point(0, 0); + pictureBox.Name = "pictureBox"; + pictureBox.Size = new Size(882, 453); + pictureBox.SizeMode = PictureBoxSizeMode.AutoSize; + pictureBox.TabIndex = 0; + pictureBox.TabStop = false; + pictureBox.Click += buttonMove_Click; + // + // buttonCreate + // + buttonCreate.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + buttonCreate.Location = new Point(23, 403); + buttonCreate.Name = "buttonCreate"; + buttonCreate.Size = new Size(94, 29); + buttonCreate.TabIndex = 1; + buttonCreate.Text = "Создать"; + buttonCreate.UseVisualStyleBackColor = true; + buttonCreate.Click += buttonCreate_Click; + // + // buttonUp + // + buttonUp.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonUp.BackgroundImage = Properties.Resources.Icon_Up; + buttonUp.BackgroundImageLayout = ImageLayout.Zoom; + buttonUp.Location = new Point(791, 366); + buttonUp.Name = "buttonUp"; + buttonUp.Size = new Size(30, 30); + buttonUp.TabIndex = 2; + buttonUp.UseVisualStyleBackColor = true; + buttonUp.Click += buttonMove_Click; + // + // buttonLeft + // + buttonLeft.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonLeft.BackgroundImage = Properties.Resources.Icon_Left; + buttonLeft.BackgroundImageLayout = ImageLayout.Zoom; + buttonLeft.Location = new Point(755, 402); + buttonLeft.Name = "buttonLeft"; + buttonLeft.Size = new Size(30, 30); + buttonLeft.TabIndex = 3; + buttonLeft.UseVisualStyleBackColor = true; + buttonLeft.Click += buttonMove_Click; + // + // buttonDown + // + buttonDown.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonDown.BackgroundImage = Properties.Resources.Icon_Down; + buttonDown.BackgroundImageLayout = ImageLayout.Zoom; + buttonDown.Location = new Point(791, 402); + buttonDown.Name = "buttonDown"; + buttonDown.Size = new Size(30, 30); + buttonDown.TabIndex = 4; + buttonDown.UseVisualStyleBackColor = true; + buttonDown.Click += buttonMove_Click; + // + // buttonRight + // + buttonRight.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonRight.BackgroundImage = Properties.Resources.Icon_Right; + buttonRight.BackgroundImageLayout = ImageLayout.Zoom; + buttonRight.Location = new Point(827, 402); + buttonRight.Name = "buttonRight"; + buttonRight.Size = new Size(30, 30); + buttonRight.TabIndex = 5; + buttonRight.UseVisualStyleBackColor = true; + buttonRight.Click += buttonMove_Click; + // + // FormAircraftCarrier + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(882, 453); + Controls.Add(buttonRight); + Controls.Add(buttonDown); + Controls.Add(buttonLeft); + Controls.Add(buttonUp); + Controls.Add(buttonCreate); + Controls.Add(pictureBox); + Name = "FormAircraftCarrier"; + StartPosition = FormStartPosition.CenterScreen; + Text = "AircraftCarrier"; + ((System.ComponentModel.ISupportInitialize)pictureBox).EndInit(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private PictureBox pictureBox; + private Button buttonCreate; + private Button buttonUp; + private Button buttonLeft; + private Button buttonDown; + private Button buttonRight; + } +} \ No newline at end of file diff --git a/AircraftCarrier/AircraftCarrier/FormAircraftCarrier.cs b/AircraftCarrier/AircraftCarrier/FormAircraftCarrier.cs new file mode 100644 index 0000000..f9cf77b --- /dev/null +++ b/AircraftCarrier/AircraftCarrier/FormAircraftCarrier.cs @@ -0,0 +1,63 @@ +namespace AircraftCarrier +{ + public partial class FormAircraftCarrier : System.Windows.Forms.Form + { + private DrawningAircraftCarrier? _drawningAircraftCarrier; + public FormAircraftCarrier() + { + InitializeComponent(); + } + private void Draw() + { + if (_drawningAircraftCarrier == null) + { + return; + } + Bitmap bmp = new(pictureBox.Width, pictureBox.Height); + Graphics gr = Graphics.FromImage(bmp); + _drawningAircraftCarrier.DrawTransport(gr); + pictureBox.Image = bmp; + } + private void buttonCreate_Click(object sender, EventArgs e) + { + Random random = new(); + _drawningAircraftCarrier = new DrawningAircraftCarrier(); + _drawningAircraftCarrier.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)), + pictureBox.Width, pictureBox.Height); + _drawningAircraftCarrier.SetPosition(random.Next(10, 100), + random.Next(10, 100)); + Draw(); + } + private void buttonMove_Click(object sender, EventArgs e) + { + if (_drawningAircraftCarrier == null) + { + return; + } + string name = ((Button)sender)?.Name ?? string.Empty; + switch (name) + { + case "buttonUp": + _drawningAircraftCarrier.MoveTransport(Direction.Up); + break; + case "buttonDown": + _drawningAircraftCarrier.MoveTransport(Direction.Down); + break; + case "buttonLeft": + _drawningAircraftCarrier.MoveTransport(Direction.Left); + break; + case "buttonRight": + _drawningAircraftCarrier.MoveTransport(Direction.Right); + break; + } + Draw(); + } + } +} \ No newline at end of file diff --git a/AircraftCarrier/AircraftCarrier/Form1.resx b/AircraftCarrier/AircraftCarrier/FormAircraftCarrier.resx similarity index 93% rename from AircraftCarrier/AircraftCarrier/Form1.resx rename to AircraftCarrier/AircraftCarrier/FormAircraftCarrier.resx index 1af7de1..af32865 100644 --- a/AircraftCarrier/AircraftCarrier/Form1.resx +++ b/AircraftCarrier/AircraftCarrier/FormAircraftCarrier.resx @@ -1,17 +1,17 @@  - diff --git a/AircraftCarrier/AircraftCarrier/Program.cs b/AircraftCarrier/AircraftCarrier/Program.cs index 58eab96..f373679 100644 --- a/AircraftCarrier/AircraftCarrier/Program.cs +++ b/AircraftCarrier/AircraftCarrier/Program.cs @@ -11,7 +11,7 @@ namespace AircraftCarrier // To customize application configuration such as set high DPI settings or default font, // see https://aka.ms/applicationconfiguration. ApplicationConfiguration.Initialize(); - Application.Run(new Form1()); + Application.Run(new FormAircraftCarrier()); } } } \ No newline at end of file diff --git a/AircraftCarrier/AircraftCarrier/Properties/Resources.Designer.cs b/AircraftCarrier/AircraftCarrier/Properties/Resources.Designer.cs new file mode 100644 index 0000000..9d3f211 --- /dev/null +++ b/AircraftCarrier/AircraftCarrier/Properties/Resources.Designer.cs @@ -0,0 +1,103 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +namespace AircraftCarrier.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("AircraftCarrier.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 Icon_Down { + get { + object obj = ResourceManager.GetObject("Icon_Down", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Icon_Left { + get { + object obj = ResourceManager.GetObject("Icon_Left", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Icon_Right { + get { + object obj = ResourceManager.GetObject("Icon_Right", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Icon_Up { + get { + object obj = ResourceManager.GetObject("Icon_Up", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/AircraftCarrier/AircraftCarrier/Properties/Resources.resx b/AircraftCarrier/AircraftCarrier/Properties/Resources.resx new file mode 100644 index 0000000..538913c --- /dev/null +++ b/AircraftCarrier/AircraftCarrier/Properties/Resources.resx @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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\Icon_Down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Icon_Left.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Icon_Right.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Icon_Up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/AircraftCarrier/AircraftCarrier/Resources/Icon_Down.png b/AircraftCarrier/AircraftCarrier/Resources/Icon_Down.png new file mode 100644 index 0000000000000000000000000000000000000000..7ad371f7d5ba970a1f66a940f096471fada4b8f0 GIT binary patch literal 4270 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 L?efyVm@obX-f}Zs literal 0 HcmV?d00001 diff --git a/AircraftCarrier/AircraftCarrier/Resources/Icon_Up.png b/AircraftCarrier/AircraftCarrier/Resources/Icon_Up.png new file mode 100644 index 0000000000000000000000000000000000000000..518147eb42b1f437ff3ba0fbe58f86bac4a8ca56 GIT binary patch literal 4264 zcmeHK`&Sd!7T$?L0;mzS0xF;(K3e3h732}IAVd(XwVI`N+2rhOSQo;N7GC zw6nnnjR>?$4_=r4RZ3!dMqFwFWMpKxChgds79S@}a7{@S{Lt$+17Px8UQpoL%!;=f zUrFMNIF&(gtjHzinq{cP;qk%C53c?!dbf}hoz6*W|0(py9w~d@_v|&UuKDcf)0MnG zUu;d{}FzY(^F8gi{NcPDm#I58kglW8NfXIi=SE%fRhRxhco zwLlB|yMHaI-wv9I*ZUvtEH3dY?Tq|Dc69Kb@%oj#0K0TI(1{&F``1eQ<_;@3j`N2H zj}912^5JJDasU^P&>{NWYN?I%s{Fn=Sv6oXwP$|Qb!8mb3_j$LhdZNOxx`KN`BBC2 zLp$vx&{fD*_Me-z!&oejeM{N{zMR-3WqE0gT7So0aueXo+DnMp_gSQ2VDG4MCX_#U z&rt|W24&9XVkU^!7dc?o0A4Y-jD-N@&G%HX48X6KE;X?M=3N*x*w8@8-)={d%rDf9 zxxw4*DYxw6hcP!WW^A@Q-M_imGw&iRH*Xr6o&WR|718^~qnlJj4;Q@~9r%iGiC}>D z8z^k`xm?QGB~dcrq=X7})B|M|ds0hSt)kSoY*C_Rc9e8MJVj3UpUGuAg8*tT%Q`Pf z9Jzvw&4o6N{db=ND4sQD#& z<$21M7_?p1G^n^`Oc_Bv-Wx~w9%6#dOQn2`TnY9PP2P}TL&)rtD3JoKzq=4+oaTMd zkkRX}NEm9Q;p6SF?mPr0A2wvPr3C@LAFL zXi-f@-vfSZ;G0R5UN=w@t3=|&r)U?~&DQs|qUXi;*kS_e38v#lUnjIQ+dq&+1Y6{X zc_ZbDB0b5qYG|6?mz|GziFdqB-0=Q4^xmD%2Hu$3D*HUTQQWE9?8!>blIg;-0olwE zU$ha`Rar#Idox@^CZZh*+wMqiJwX!=DNmrsza}BuHjJB%bQ=#F$p0K48&;GU$lUEL zaS#K9=YX|Lc`U>3Hnzn3?9`lG9%aANHC>!=uGCa|aY)P`9WXXpN z%B!dU0&U52NmdkCg_ysp#=vcMWYafe391emxD{Q0fwpARwy~HCWd^Pvt%fS*Eo0;t zAc|nXLWx0s2#mR?kaHyDMF##G%E(t?*>v4jgiY3SSv28NYjF3{a~)|y3}N$B*k-ye z8I4f$<XqSioe(AP zP+^xDcw7O9{q@RZy6#;NtX3P{;J6YXKp8iq!Qw+dPj?;PSqf@BU|{Ls_XF&k9YH2jq<`F1kI z7XW{;gsfwV4M9+oslsv?xMx1_f02-%TZmswrs2yXvRZxXaL3OJUv3Lw9OC)#<{CEM?yW9*5@h%kXvK`hK3RQ9@ zv~4APA|QD$6Cx4_p8|M1$r}FCWK5eut8rn2QDW%MW8fe10XL@2qt&cp13Ip4UqEsh zQ@mUyAD99i^XMn@4c%**&81!l>u zVRmF-*SPExjAe4P*Dq%)(`ww+0>Zq#;-=BD6nY-m($tQf8Iz_zf62-4G>zL{9Z#?# zVQ^ca*!PLQ*RjXrD&1D=3>?KN!Q_;A!yO#u%v|fo`Pzgbk6mel!HKCyHC_XTyEadj z(%gT;c>Q;J!dkBzn-)D~>we^rejld@Kfz=g^WL7a2VLHqKgdhn&>741(M3q-vj#d; zysLEg^Vq7JeZQ!QIEPgV#;k-P%g?IXRdwb>GGeOsF0o?>E?+4^4!y4{qrVN@@|6y$UJb5nt zktuu=2hm~=HR7MxVvkE*g7D+=p9|;0X~O`gJ|y<}6bU!^{&6SW?%nFOlfoffA0d?= zYP@b{hdr*lv;vQ;%{iUQr}LL`9df_3ayQ+HE3&RRE%=nfYb@1-MOTsmZ)@9FwHjqT zKWxWVV&qnqx~L$JByv>}~$o)7)@a`BleFG}9R^7Ya z^4tJ_Hy7WM9z4>Djb5eW(@KezxI#Z4B5pau{f|nHo22o&g{X_gX~~H&7 zMZ;&U2*FcobE2+w`IUHBzgr_ApISf{)o}6Gja;v$4)Z3F|G-!;b$4ggmX`y6hgvW+ z;g~+R>$b5~KBai;$CL@gD(RW-?7ig`!2j2o+MLqxVN?GK(QUaWTGx;dp|)r!>EufN z0y<)@&0;{MpG@QR;*MhcRk_CNPR7VruYc!|<>$!9x=86&S!Z*WLLH7+{>L<4T_qde zj_UVv$Z6c?HUR^dI9gtRsx-z&Ykuzphuc#9le~OX)yjjKX^~rpT8G!Sk^jcea}=Dc z&zl|F^5P@X(N~=J-S-@Ac>fum!|mSJ@z_yKb1ys~6*)J@Kk+}~aJ!pJAN}o(ELs`fKVWpuwdwxYV` zls4dZl=mHMF$;0pu@J~JdX@~#sX%O!+@(0aa`KvPaZJ@)WKi}T9X%H{g ze6q~~)*V<}^y+x8<)!MPMi9ETOGV|KtQE1H6VTl)RT>!*%V^*#0ADIP-f2_mwsVp) z-*DjT$x!1!z2ei>HQCenUpF4n2-?E}wB>Kkn~T@9UlxxM;C(WoQLGYF*}cH|S2AuR`60(`diw()mvUZd~JmjZc)*Vd|JmuQIixM?C!oqve7e>5>4-j#I^+U?j+*jscH6)Z`k^K?q&e`_{o5=l> z1yNlaq$%^V<}_p7Chh!pchSYQo`YFqzp#>zvxGgVE?3k&jv6^9D+9|b*~I+2Z`M>i a_ba4%m`%0IBj>Z#l+O!}2&!Jr-}7HK1t!D* literal 0 HcmV?d00001