From a902a068b3ae900eae5dce6ac4b92fd83ed842ac Mon Sep 17 00:00:00 2001 From: grishazagidulin Date: Mon, 19 Feb 2024 14:14:16 +0400 Subject: [PATCH] =?UTF-8?q?1=20=D0=BB=D0=B0=D0=B1=D0=BE=D1=80=D0=B0=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=BD=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Battleship/Battleship/DirectionType.cs | 13 ++ Battleship/Battleship/DrawningBattleship.cs | 126 +++++++++++++++++ Battleship/Battleship/EntityBattleship.cs | 26 ++++ Battleship/Battleship/Form1.Designer.cs | 39 ----- Battleship/Battleship/Form1.cs | 10 -- .../Battleship/FormBattleship.Designer.cs | 131 +++++++++++++++++ Battleship/Battleship/FormBattleship.cs | 68 +++++++++ .../{Form1.resx => FormBattleship.resx} | 50 +++---- Battleship/Battleship/Program.cs | 2 +- .../Properties/Resources.Designer.cs | 103 ++++++++++++++ .../Battleship/Properties/Resources.resx | 133 ++++++++++++++++++ .../Battleship/Resources/right-arrow-2.png | Bin 0 -> 12334 bytes .../Battleship/Resources/right-arrow-3.png | Bin 0 -> 3168 bytes .../Battleship/Resources/right-arrow-4.png | Bin 0 -> 10252 bytes .../Battleship/Resources/right-arrow.png | Bin 0 -> 11912 bytes 15 files changed, 626 insertions(+), 75 deletions(-) create mode 100644 Battleship/Battleship/DirectionType.cs create mode 100644 Battleship/Battleship/DrawningBattleship.cs create mode 100644 Battleship/Battleship/EntityBattleship.cs delete mode 100644 Battleship/Battleship/Form1.Designer.cs delete mode 100644 Battleship/Battleship/Form1.cs create mode 100644 Battleship/Battleship/FormBattleship.Designer.cs create mode 100644 Battleship/Battleship/FormBattleship.cs rename Battleship/Battleship/{Form1.resx => FormBattleship.resx} (93%) create mode 100644 Battleship/Battleship/Properties/Resources.Designer.cs create mode 100644 Battleship/Battleship/Properties/Resources.resx create mode 100644 Battleship/Battleship/Resources/right-arrow-2.png create mode 100644 Battleship/Battleship/Resources/right-arrow-3.png create mode 100644 Battleship/Battleship/Resources/right-arrow-4.png create mode 100644 Battleship/Battleship/Resources/right-arrow.png diff --git a/Battleship/Battleship/DirectionType.cs b/Battleship/Battleship/DirectionType.cs new file mode 100644 index 0000000..c1e811b --- /dev/null +++ b/Battleship/Battleship/DirectionType.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +namespace Battleship; +public enum DirectionType +{ + Up = 1, //Вверх + Down = 2,//Вниз + Right = 3,//Вправо + Left = 4 //Влево +} diff --git a/Battleship/Battleship/DrawningBattleship.cs b/Battleship/Battleship/DrawningBattleship.cs new file mode 100644 index 0000000..e7b2217 --- /dev/null +++ b/Battleship/Battleship/DrawningBattleship.cs @@ -0,0 +1,126 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +namespace Battleship; +// класс прорисовки и пермещения +public class DrawningBattleship +{ + #region [Variables Initialization] + public EntityBattleship? EntityBattleship { get; private set; } //класс сущность + private int? _pictureWidth; //ширина окна + private int? _pictureHeight; //высота окна + private int? _startX; // Х начальной позиции + private int? _startY; // Y начальной позиции + private readonly int _drawningShipWidth = 143; // длина корабля + private readonly int _drawningShipHeight = 75; // высота корабля + #endregion + public void Init(EntityBattleship entityBattleship) //инициализация свойств корабля и параметров окна, позиции + { + EntityBattleship = entityBattleship; + _pictureWidth = null; + _pictureHeight = null; + _startX = null; + _startY = null; + } + public bool SetPictureSize(int width, int height) // установка размеров окна + { + if (width > _drawningShipWidth && height > _drawningShipHeight) //если размеры окна позволяют вместить корабль, то присваиваем + { + if (_startX.HasValue && _startY.HasValue) + { + if (_drawningShipHeight + _startY.Value > height) + { + _startY = height - _drawningShipHeight; + } + if (_drawningShipWidth + _startX.Value > width) + { + _startX = width - _drawningShipWidth; + } + } + _pictureWidth = width; + _pictureHeight = height; + return true; + } + return false; + } + public void SetPosition(int x, int y) // установка позиции корабля + { + if (!_pictureHeight.HasValue || !_pictureWidth.HasValue) // проверка инициализации размеров окна + return; + if (x < 0 || x + _drawningShipWidth > _pictureWidth) // если корабль не вмещается по Х - присваиваем 0 + x = 0; + if (y < 0 || y + _drawningShipHeight > _pictureHeight) // если корабль не вмещается по Y - присваиваем 0 + y = 0; + _startX = x; + _startY = y; + } + public bool MoveTransport(DirectionType direction) //метод движения корабля + { + if (EntityBattleship == null || !_startX.HasValue || !_startY.HasValue) //проверка наличия корабля и инициализации начальной позиции + return false; + switch (direction) + { + case DirectionType.Left: // Влево + if (_startX.Value - EntityBattleship.Step > 0) // Проверяем, есть ли место для шага (аналогично далее) + _startX -= (int)EntityBattleship.Step; + return true; + case DirectionType.Right: // Вправо + if (_startX.Value + EntityBattleship.Step + _drawningShipWidth < _pictureWidth) + _startX += (int)EntityBattleship.Step; + return true; + case DirectionType.Up: // Вверх + if (_startY.Value - EntityBattleship.Step > 0) + _startY -= (int)EntityBattleship.Step; + return true; + case DirectionType.Down: // Вниз + if (_startY.Value + _drawningShipHeight + EntityBattleship.Step < _pictureHeight) + _startY += (int)EntityBattleship.Step; + return true; + default: return false; + } + } + public void DrawTransport(Graphics g) //метод рисования корабля + { + if (EntityBattleship == null || !_startX.HasValue || !_startY.HasValue) //проверка наличия корабля и инициализации начальной позиции + return; + Pen pen = new(Color.Black, 3); + Brush addBr = new SolidBrush(EntityBattleship.AdditionalColor); + Brush br = new SolidBrush(EntityBattleship.BodyColor); + #region [Drawing] + // Гриницы Линкора + g.DrawLine(pen, _startX.Value + 3, _startY.Value + 15, _startX.Value + 93, _startY.Value + 15); + g.DrawLine(pen, _startX.Value + 93, _startY.Value + 15, _startX.Value + 143, _startY.Value + 15 + 30); + g.DrawLine(pen, _startX.Value + 143, _startY.Value + 15 + 30, _startX.Value + 93, _startY.Value + 15 + 60); + g.DrawLine(pen, _startX.Value + 93, _startY.Value + 15 + 60, _startX.Value + 3, _startY.Value + 15 + 60); + g.DrawLine(pen, _startX.Value + 3, _startY.Value + 15 + 60, _startX.Value + 3, _startY.Value + 15); + //Заливка + g.FillRectangle(br, _startX.Value + 3, _startY.Value + 15, 90, 60); + g.FillPolygon(br, new PointF[] { new PointF(_startX.Value + 93, _startY.Value + 15), new PointF(_startX.Value + 143, _startY.Value + 15 + 30), new PointF(_startX.Value + 93, _startY.Value + 15 + 60) }); + //Элементы палубы + g.DrawEllipse(pen, _startX.Value + 83, _startY.Value + 15 + 20, 20, 20); + g.DrawRectangle(pen, _startX.Value + 63, _startY.Value + 15 + 15, 15, 30); + g.DrawRectangle(pen, _startX.Value + 43, _startY.Value + 15 + 25, 20, 10); + Brush brBlack = new SolidBrush(Color.Black); + g.FillRectangle(brBlack, _startX.Value, _startY.Value + 15 + 10, 3, 15); + g.FillRectangle(brBlack, _startX.Value, _startY.Value + 15 + 35, 3, 15); + // Орудийная башня + if (EntityBattleship.Weapon) + { + g.FillPie(addBr, _startX.Value + 8, _startY.Value + 15, 30, 25, 180, 180); + g.FillRectangle(addBr, _startX.Value + 18, _startY.Value, 10, 20); + } + //Ракеты + if (EntityBattleship.Rockets) + { + g.FillRectangle(addBr, _startX.Value + 8, _startY.Value + 15 + 20, 30, 35); + g.DrawRectangle(pen, _startX.Value + 8, _startY.Value + 15 + 20, 30, 35); + g.DrawEllipse(pen, _startX.Value + 13, _startY.Value + 15 + 25, 10, 10); + g.DrawEllipse(pen, _startX.Value + 23, _startY.Value + 15 + 25, 10, 10); + g.DrawEllipse(pen, _startX.Value + 23, _startY.Value + 15 + 40, 10, 10); + g.DrawEllipse(pen, _startX.Value + 13, _startY.Value + 15 + 40, 10, 10); + } + #endregion + } +} \ No newline at end of file diff --git a/Battleship/Battleship/EntityBattleship.cs b/Battleship/Battleship/EntityBattleship.cs new file mode 100644 index 0000000..c72a1a6 --- /dev/null +++ b/Battleship/Battleship/EntityBattleship.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +namespace Battleship; + // класс-сущность "Боевой корабль" +public class EntityBattleship +{ + public int Speed; // скорость + public double Weight; //вес + public Color BodyColor; /*основной цвет*/ + public Color AdditionalColor; // дополнительный цвет + public bool Weapon { get; private set; } // оружие + public bool Rockets { get; set; } // рокеты + public double Step => Speed * 100 / Weight; // шаг перемещения корабля + public void Init(int speed, double weight, Color bodycolor, Color additionalcolor, bool weapon, bool rockets) // инициализация полей объекта-класса военного корабля + { + Speed = speed; + Weight = weight; + BodyColor = bodycolor; + AdditionalColor = additionalcolor; + Weapon = weapon; + Rockets = rockets; + } +} \ No newline at end of file diff --git a/Battleship/Battleship/Form1.Designer.cs b/Battleship/Battleship/Form1.Designer.cs deleted file mode 100644 index 18ae06a..0000000 --- a/Battleship/Battleship/Form1.Designer.cs +++ /dev/null @@ -1,39 +0,0 @@ -namespace Battleship -{ - 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 - } -} diff --git a/Battleship/Battleship/Form1.cs b/Battleship/Battleship/Form1.cs deleted file mode 100644 index 1d6c6e1..0000000 --- a/Battleship/Battleship/Form1.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Battleship -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - } -} diff --git a/Battleship/Battleship/FormBattleship.Designer.cs b/Battleship/Battleship/FormBattleship.Designer.cs new file mode 100644 index 0000000..26234dd --- /dev/null +++ b/Battleship/Battleship/FormBattleship.Designer.cs @@ -0,0 +1,131 @@ +namespace Battleship +{ + partial class FormBattleship + { + /// + /// 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() + { + pictureBoxBattleship = new PictureBox(); + buttonCreate = new Button(); + buttonUp = new Button(); + buttonDown = new Button(); + buttonLeft = new Button(); + buttonRight = new Button(); + ((System.ComponentModel.ISupportInitialize)pictureBoxBattleship).BeginInit(); + SuspendLayout(); + // + // pictureBoxBattleship + // + pictureBoxBattleship.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + pictureBoxBattleship.Location = new Point(0, 0); + pictureBoxBattleship.Name = "pictureBoxBattleship"; + pictureBoxBattleship.Size = new Size(1259, 803); + pictureBoxBattleship.TabIndex = 0; + pictureBoxBattleship.TabStop = false; + // + // buttonCreate + // + buttonCreate.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + buttonCreate.Location = new Point(12, 745); + buttonCreate.Name = "buttonCreate"; + buttonCreate.Size = new Size(150, 46); + buttonCreate.TabIndex = 1; + buttonCreate.Text = "Создать"; + buttonCreate.UseVisualStyleBackColor = true; + buttonCreate.Click += buttonCreate_Click; + // + // buttonUp + // + buttonUp.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonUp.BackgroundImage = Properties.Resources.right_arrow; + buttonUp.BackgroundImageLayout = ImageLayout.Stretch; + buttonUp.Location = new Point(1152, 699); + buttonUp.Name = "buttonUp"; + buttonUp.Size = new Size(40, 40); + buttonUp.TabIndex = 2; + buttonUp.UseVisualStyleBackColor = true; + buttonUp.Click += ButtonMove_Click; + // + // buttonDown + // + buttonDown.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonDown.BackgroundImage = Properties.Resources.right_arrow_2; + buttonDown.BackgroundImageLayout = ImageLayout.Stretch; + buttonDown.Location = new Point(1152, 745); + buttonDown.Name = "buttonDown"; + buttonDown.Size = new Size(40, 40); + buttonDown.TabIndex = 3; + buttonDown.UseVisualStyleBackColor = true; + buttonDown.Click += ButtonMove_Click; + // + // buttonLeft + // + buttonLeft.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonLeft.BackgroundImage = Properties.Resources.right_arrow_4; + buttonLeft.BackgroundImageLayout = ImageLayout.Stretch; + buttonLeft.Location = new Point(1106, 745); + buttonLeft.Name = "buttonLeft"; + buttonLeft.Size = new Size(40, 40); + buttonLeft.TabIndex = 4; + buttonLeft.UseVisualStyleBackColor = true; + buttonLeft.Click += ButtonMove_Click; + // + // buttonRight + // + buttonRight.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonRight.BackgroundImage = Properties.Resources.right_arrow_3; + buttonRight.BackgroundImageLayout = ImageLayout.Stretch; + buttonRight.Location = new Point(1198, 745); + buttonRight.Name = "buttonRight"; + buttonRight.Size = new Size(40, 40); + buttonRight.TabIndex = 5; + buttonRight.UseVisualStyleBackColor = true; + buttonRight.Click += ButtonMove_Click; + // + // FormBattleship + // + AutoScaleDimensions = new SizeF(13F, 32F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(1259, 803); + Controls.Add(buttonRight); + Controls.Add(buttonLeft); + Controls.Add(buttonDown); + Controls.Add(buttonUp); + Controls.Add(buttonCreate); + Controls.Add(pictureBoxBattleship); + Name = "FormBattleship"; + Text = "Линкор"; + ((System.ComponentModel.ISupportInitialize)pictureBoxBattleship).EndInit(); + ResumeLayout(false); + } + + #endregion + private PictureBox pictureBoxBattleship; + private Button buttonCreate; + private Button buttonUp; + private Button buttonDown; + private Button buttonLeft; + private Button buttonRight; + } +} \ No newline at end of file diff --git a/Battleship/Battleship/FormBattleship.cs b/Battleship/Battleship/FormBattleship.cs new file mode 100644 index 0000000..a787a28 --- /dev/null +++ b/Battleship/Battleship/FormBattleship.cs @@ -0,0 +1,68 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +namespace Battleship +{ + public partial class FormBattleship : Form + { + private DrawningBattleship? _drawningBattleship; + private EntityBattleship? _entityBattleship; + public FormBattleship() + { + InitializeComponent(); + } + private void Draw() // метод рисования корабля + { + if (_drawningBattleship == null) + return; + Bitmap bmp = new(pictureBoxBattleship.Width, pictureBoxBattleship.Height); + Graphics gr = Graphics.FromImage(bmp); + _drawningBattleship.DrawTransport(gr); + pictureBoxBattleship.Image = bmp; + } + private void buttonCreate_Click(object sender, EventArgs e) // обработка кнопки "создать" + { + Random random = new Random(); + _drawningBattleship = new DrawningBattleship(); + _entityBattleship = new EntityBattleship(); + _entityBattleship.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))); + _drawningBattleship.Init(_entityBattleship); + _drawningBattleship.SetPictureSize(pictureBoxBattleship.Width, pictureBoxBattleship.Height); + _drawningBattleship.SetPosition(random.Next(10, 100), random.Next(10, 100)); + Draw(); + } + private void ButtonMove_Click(object sender, EventArgs e) // обработка кнопок движения + { + if (_drawningBattleship == null) + return; + string name = ((Button)sender)?.Name ?? string.Empty; + bool result = false; + switch (name) + { + case "buttonUp": + result = _drawningBattleship.MoveTransport(DirectionType.Up); + break; + case "buttonDown": + result = _drawningBattleship.MoveTransport(DirectionType.Down); + break; + case "buttonRight": + result = _drawningBattleship.MoveTransport(DirectionType.Right); + break; + case "buttonLeft": + result = _drawningBattleship.MoveTransport(DirectionType.Left); + break; + } + if (result) + Draw(); + } + } +} diff --git a/Battleship/Battleship/Form1.resx b/Battleship/Battleship/FormBattleship.resx similarity index 93% rename from Battleship/Battleship/Form1.resx rename to Battleship/Battleship/FormBattleship.resx index 1af7de1..af32865 100644 --- a/Battleship/Battleship/Form1.resx +++ b/Battleship/Battleship/FormBattleship.resx @@ -1,17 +1,17 @@  - diff --git a/Battleship/Battleship/Program.cs b/Battleship/Battleship/Program.cs index 48b33ea..4d0e539 100644 --- a/Battleship/Battleship/Program.cs +++ b/Battleship/Battleship/Program.cs @@ -11,7 +11,7 @@ namespace Battleship // 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 FormBattleship()); } } } \ No newline at end of file diff --git a/Battleship/Battleship/Properties/Resources.Designer.cs b/Battleship/Battleship/Properties/Resources.Designer.cs new file mode 100644 index 0000000..3ec26bc --- /dev/null +++ b/Battleship/Battleship/Properties/Resources.Designer.cs @@ -0,0 +1,103 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +namespace Battleship.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("Battleship.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 right_arrow { + get { + object obj = ResourceManager.GetObject("right-arrow", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap right_arrow_2 { + get { + object obj = ResourceManager.GetObject("right-arrow-2", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap right_arrow_3 { + get { + object obj = ResourceManager.GetObject("right-arrow-3", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap right_arrow_4 { + get { + object obj = ResourceManager.GetObject("right-arrow-4", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Battleship/Battleship/Properties/Resources.resx b/Battleship/Battleship/Properties/Resources.resx new file mode 100644 index 0000000..d7db91e --- /dev/null +++ b/Battleship/Battleship/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\right-arrow-4.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\right-arrow-2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\right-arrow-3.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\right-arrow.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Battleship/Battleship/Resources/right-arrow-2.png b/Battleship/Battleship/Resources/right-arrow-2.png new file mode 100644 index 0000000000000000000000000000000000000000..bf1cb45f8327cad16bd357df0a6fae4a2a03366a GIT binary patch literal 12334 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 literal 0 HcmV?d00001 diff --git a/Battleship/Battleship/Resources/right-arrow-3.png b/Battleship/Battleship/Resources/right-arrow-3.png new file mode 100644 index 0000000000000000000000000000000000000000..d3fc6c6813c3493c753576e4b51713e9b7698fd3 GIT binary patch literal 3168 zcmeHJX;>528cw1S3?fuO6vf1)DzfRdQZHHpiUKN&Y>Mo%Ls%4Kkt-9a3Ti8GL2LyH zf=JmR>}yaeg0hH;Fo_Tp1(bx~LL!VabI+jmPygRvo#)A!Z+XxAzTbJ~naM>PD>Fr! z28~1_DO#AD+LA~V5K>6;3&5@I_J$5{TM)j-!d_lpUhu+t1f+|@%$>qXq@{kukDPQd z{sbtljM#TH!YnWJk*aPY_04_WXght)J1agi)ji=mMSTKw@gJ z;ror7HfwFs*3s3|-@5Hz+ke<$@Z-*Z8}8culM&O{WY1pHef!PKEe;$!WNBq%=iqqM z$;H*px+dM0muhsME1=(AoH(&t15DB`M{4-E@PUc4NA z^?Gc4;?3Jhk$6fn{qFsTk26x)r`b8=Gm1$vwp<~R`#U9DT&7<(6Qj-Qa} zzm{`I=9L(b2BsyqHhN0#_F z2vc%?3;Cm+FI%RT<@9!I&giZVS@X((e7$tYN!Wh#wO^xku5Q!U3ItF!mIUY9TJ=+ho5Tq_eg$4=~{no7#pA5pbO(Hlht z4rJ*OHmc?UQN35*H6bBjJefB(E%)Q8))>z6@X|w2sAhj)D4r>Jdk!BQ%hzY zb}+7*ETrTN9aB>d_5n!(NJ(Pz3+~WYUWY^aH)Xm1^&PCc_ z&vGK{qp|?yT7r(N5Pe{tS2a0k!k1{$Y>dOm*1*J8B7>={!vu+FH}#f!xx+W;CxgGB zy}+vcSLhMrnv}1sjsy|+FwI=wBVpdsX2!t8IN=Sj*0+nk8U;x~`;_e$*RKqr+OOC; zwjw} zOxB^7ZAXT0e>+J_Vc8e{jvaf+Z>SMO-Q2*AFdj*kQ%w#|r>IW1Xk|x1!!hBFLWG+6 zAy19z-Z(oFbanqUbNN>3Djsvnzk=#g)zciW@Y|gBeVX1#W~{ZLLl`-=w!!Ws`La^I z?Md>(&vQw7Bg^G3>3O7Z@CnLB1fjdOwg!i&xVF0Lf#sIUQm_X4UDWd^g%Dr$@@JMg z3M*cy10U|;$s$VJ_?kZIlAU9#&tBz$^BSIBv3k6$QPgy`m}hEgA#^0(2tw=#Z*0z;63Q95c&N$}J%;~E3< zxeQ%4O9;YU3zLJZNnF&41V_p<1mBV6Nf2e4p=`aNbM$<6m>X^BIL8G3ylZFXkLS*P zNH1rZ&0TxX-To?2FR#jQZ}HUGytJ7q<)9d?yw7}1+iID9UfM3rb^WLE(rjBsm2XbP zp&1mHbx-I>CM{dyS!-Su)Uk@LGFC)U(af3|lcTyxG-9r}%t@?insbG*8zk-zG~_N0 z^SZ)QCeVYkB^jm?cVDEP4U(7+ryQBSmy+S3_gJ3Jd;6`Yaodpa4A4ncQcN1=rJXg} zu^ZHkMjqw@;A2Jy zaN7d`4c@bwyqKmZUUwg%!v7o}C;Ev(AtYa;eh8D+ zLWPHW`9e&ZGz2A}slV0$crVO^S0H{8-V>~|ozINLU8UBMEyVs{+5P=XYxGey*C;+vA-BCdA z5Mq|$gNsn5K_;9a<}~9UKvOW!psJq{F-fI^-$De`wz9Eu;kMz4mrRB0^_^>Tfe zgQn`vAMWG<#H{h{_w!bbJaK=5``xxLX#noeAx6{}FyUp08B&Gjo@obD&}$)XFQ3UD z7fHr}Exl>1*T0P~;uK5VMRc(dV&;4t_ir|UnfxOndWm}xnyXt4)oc>egMUFQhgdi( z2!tbxf$$&(m)1Zv86u8267g#sz+guKQ*cAt8<_!+9ysfuh!cDTt(=JgXCLQ@vj+G~ zLAHvtx26Y!TRiZvB$z4KgCsb6;jC~sAo5zOBx3`7>{ATBPz$(<7Z9JX)NT)A_%y{3=maL9m6mVHp=dG!viC+vg8HKnoR!KK)7@IL zvc%9JrWp9=T$YFze*55#!Z;Zx24^mb%wJR^dbLuD2ZWjh`YRY@hG0VjbvC&{4ZimU z-NKpfmMN8NnPsdn5Sx<3JqossQ|LmlcKq}N@8nG;=Cofp*z`6fy>v=`~S=sGHJmGStn#?D3pCFNy>8Qgk*^nAwn5NGt-`3DSM{V=A4LsI5gJyLrQ{`e)#cl{1GH=H4O zFO8GJ%i|>A5bzI&SHVf5_c+{Uyy}nlfq4DdF~Bt59668!<8~a6z!7K1)4?nJ2?W2u z684&ym}nZYJ2F0WTWpwVOx#ZJT!M}Nr$08~`+Ne9E%DFyU>t6NYWiL9LW*_qiwA%0 zg}?ZQ(4Uq8`}ZR@`6l?fZL|rEi8kG~Jtic~lpY-mXW{JVHsEb^Si&|6JvwT4ybax6 z3yrV=@8M&r76lDSh_u)8b@QaGiHQrNSecrcnrS)ArBEn#aocy;csV)GP6vP4YlSBy z#M)4)Fr38YFc7M_wY4?XY#DXgG7~VuBtB_(!Zy0e?s#p?$agzVVez4H5wQsoF}o?y z?zWJay$SYOTF}vt9}H(g#EyS@+8sX|76_0EKcSkNno<2-&LaSqC2{x4huxu?B%1@7r# zX`+3Vx9uNI>zTX8znRUmF6HCh6K~Yb$I`C{;59!Cui&Z0WW33wQC1=a&`elf=`k7R zn^?W?ldh#%Q!8u2C*|Q>)@I3j6#_=;^(Tj#GKbE@P?C3ERSoV&!U>LIJqh_etJQbi zPeJdB$J2b>Gr#+LuHz}%&}-QHlCzQ3`)8zs`kpi5kiTZZNGS?xR`#Zt@AJxzwA&eU z_e(LWb0h(oWJj>PgyUI1U8tHWh-cg_BZb@iY;q1N^_YB{mryBVbp+v@?bH5}<4CPYpmVUl{7%lV}3R8g94A8n*Smwo4;JjS%!3L+Vi9xbA!DXI8@c$Tlpo0tvcS(d>_qNxq&6OcPj?ub zP4)Li6V5pfq};SXNvaBEZB7;cLRzV?tdOaG<+vWS$W@cvVkGL;?d!MRU1lisC&k7E}>G@}9!w^euZ|p2f)k>a1#@9TRGq(6b=F2NhlE5B28qX77 zNfYI6 z7L1oey4vqvF10(JQ6~jmhx^d@<3144OqbhYBRyJhHTPr@r!SsBR?_E*wawiN=*8ai z#*fN9eWP4j7!n(zg?dL9NsuRw6Hf%a#_MZpX6|{pkK62y99`CB3n~LavbfK@ySDOC zi(yp|6~u2KLG>X<;X&HSgtwfh@Hka;i6j`=WaX=d6cAj^?B|^8=hVx5>?*pGf?3=p zqc0jZfdhR<-K-puuKrS{&DeiR<)lVμ7 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 Jg`vlV{{cBk@3a5_ literal 0 HcmV?d00001 -- 2.25.1