From c340d7785e5796def38a0765972af8c3f504420f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D0=BA=D1=81=D0=B8=D0=BC=20=D0=AF=D0=BA=D0=BE?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=B2?= Date: Tue, 26 Sep 2023 13:13:43 +0400 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D0=BD=D0=BD?= =?UTF-8?q?=D0=B0=D1=8F=20=D0=BF=D0=B5=D1=80=D0=B2=D0=B0=D1=8F=20=D0=BB?= =?UTF-8?q?=D0=B0=D0=B1=D0=BE=D1=80=D0=B0=D1=82=D0=BE=D1=80=D0=BD=D0=B0?= =?UTF-8?q?=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SailBoat/SailBoat.sln | 14 +- SailBoat/SailBoat/Direction.cs | 19 +++ SailBoat/SailBoat/DrawingSailBoat.cs | 113 +++++++++++++++ SailBoat/SailBoat/EntitySailBoat.cs | 35 +++++ SailBoat/SailBoat/Form1.Designer.cs | 39 ----- SailBoat/SailBoat/Form1.cs | 10 -- SailBoat/SailBoat/FormSailBoat.Designer.cs | 137 ++++++++++++++++++ SailBoat/SailBoat/FormSailBoat.cs | 49 +++++++ SailBoat/SailBoat/FormSailBoat.resx | 120 +++++++++++++++ SailBoat/SailBoat/Program.cs | 2 +- .../SailBoat/Properties/Resources.Designer.cs | 103 +++++++++++++ SailBoat/SailBoat/Properties/Resources.resx | 133 +++++++++++++++++ SailBoat/SailBoat/Resources/down.png | Bin 0 -> 5136 bytes SailBoat/SailBoat/Resources/left.png | Bin 0 -> 4073 bytes SailBoat/SailBoat/Resources/right.png | Bin 0 -> 4271 bytes SailBoat/SailBoat/Resources/up.png | Bin 0 -> 5154 bytes SailBoat/SailBoat/SailBoat.csproj | 15 ++ 17 files changed, 732 insertions(+), 57 deletions(-) create mode 100644 SailBoat/SailBoat/Direction.cs create mode 100644 SailBoat/SailBoat/DrawingSailBoat.cs create mode 100644 SailBoat/SailBoat/EntitySailBoat.cs delete mode 100644 SailBoat/SailBoat/Form1.Designer.cs delete mode 100644 SailBoat/SailBoat/Form1.cs create mode 100644 SailBoat/SailBoat/FormSailBoat.Designer.cs create mode 100644 SailBoat/SailBoat/FormSailBoat.cs create mode 100644 SailBoat/SailBoat/FormSailBoat.resx create mode 100644 SailBoat/SailBoat/Properties/Resources.Designer.cs create mode 100644 SailBoat/SailBoat/Properties/Resources.resx create mode 100644 SailBoat/SailBoat/Resources/down.png create mode 100644 SailBoat/SailBoat/Resources/left.png create mode 100644 SailBoat/SailBoat/Resources/right.png create mode 100644 SailBoat/SailBoat/Resources/up.png diff --git a/SailBoat/SailBoat.sln b/SailBoat/SailBoat.sln index 039979c..339a223 100644 --- a/SailBoat/SailBoat.sln +++ b/SailBoat/SailBoat.sln @@ -1,9 +1,9 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 -VisualStudioVersion = 17.6.33717.318 +VisualStudioVersion = 17.6.33829.357 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SailBoat", "SailBoat\SailBoat.csproj", "{2DF6420E-A429-41FF-975D-9CC7F0635749}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SailBoat", "SailBoat\SailBoat.csproj", "{8BDA67FC-B991-4A0A-B505-B10C27DB53C7}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,15 +11,15 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2DF6420E-A429-41FF-975D-9CC7F0635749}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2DF6420E-A429-41FF-975D-9CC7F0635749}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2DF6420E-A429-41FF-975D-9CC7F0635749}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2DF6420E-A429-41FF-975D-9CC7F0635749}.Release|Any CPU.Build.0 = Release|Any CPU + {8BDA67FC-B991-4A0A-B505-B10C27DB53C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8BDA67FC-B991-4A0A-B505-B10C27DB53C7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8BDA67FC-B991-4A0A-B505-B10C27DB53C7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8BDA67FC-B991-4A0A-B505-B10C27DB53C7}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {3BCBDA82-2EB8-4315-9C43-B85A3FD48F29} + SolutionGuid = {1FD39AE3-D95F-4D22-9D86-54C16EB26DDB} EndGlobalSection EndGlobal diff --git a/SailBoat/SailBoat/Direction.cs b/SailBoat/SailBoat/Direction.cs new file mode 100644 index 0000000..ff00996 --- /dev/null +++ b/SailBoat/SailBoat/Direction.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace SailBoat +{ + public enum DirectionType + { + Up = 1, + + Down = 2, + + Left = 3, + + Right = 4 + } +} diff --git a/SailBoat/SailBoat/DrawingSailBoat.cs b/SailBoat/SailBoat/DrawingSailBoat.cs new file mode 100644 index 0000000..143ece8 --- /dev/null +++ b/SailBoat/SailBoat/DrawingSailBoat.cs @@ -0,0 +1,113 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace SailBoat +{ + internal class DrawingSailBoat + { + public EntitySailBoat? EntitySailBoat { get; private set; } + + private int _pictureWidth; + + private int _pictureHeight; + + private int _startPosX; + + private int _startPosY; + + private readonly int _boatWidth = 180; + + private readonly int _boatHeight = 125; + public bool Init(int speed, double weight, Color bodyColor, Color additionalColor, bool sail, bool rainforcedBody, int width, int height) + { + if (width < _boatWidth) { return false; } + if (height < _boatHeight) { return false; } + + _pictureWidth = width; + _pictureHeight = height; + EntitySailBoat = new EntitySailBoat(); + EntitySailBoat.Init(speed, weight, bodyColor, additionalColor, sail, rainforcedBody); + return true; + } + public void SetPosition(int x, int y) + { + if (x < 0) { x = 0; } + else if (x > _pictureWidth) { x = _pictureWidth; } + if (y < 0) { y = 0; } + else if (y > _pictureHeight) { y = _pictureHeight; } + _startPosX = x; + _startPosY = y; + } + public void MoveTransport(DirectionType direction) + { + if (EntitySailBoat == null) return; + switch (direction) + { + case DirectionType.Left: + if (_startPosX - EntitySailBoat.Step > 0) + { + _startPosX -= (int)EntitySailBoat.Step; + } + break; + case DirectionType.Right: + if (_startPosX + _boatWidth + EntitySailBoat.Step < _pictureWidth) + { + _startPosX += (int)EntitySailBoat.Step; + } + break; + case DirectionType.Up: + if (_startPosY - EntitySailBoat.Step > 0) + { + _startPosY -= (int)EntitySailBoat.Step; + } + break; + case DirectionType.Down: + if (_startPosY + _boatHeight + EntitySailBoat.Step < _pictureHeight) + { + _startPosY += (int)EntitySailBoat.Step; + } + break; + } + } + public void DrawTransport(Graphics g) + { + if (EntitySailBoat == null) return; + Pen pen = new(Color.Black); + Brush additionalBrush = new SolidBrush(EntitySailBoat.AdditionalColor); + + //границы корабля + g.DrawLine(pen, _startPosX + 10, _startPosY + 60, _startPosX + 110, _startPosY + 60); + g.DrawLine(pen, _startPosX + 110, _startPosY + 60, _startPosX + 180, _startPosY + 90); + g.DrawLine(pen, _startPosX + 180, _startPosY + 90, _startPosX + 110, _startPosY + 120); + g.DrawLine(pen, _startPosX + 110, _startPosY + 120, _startPosX + 10, _startPosY + 120); + g.DrawLine(pen, _startPosX + 10, _startPosY + 120, _startPosX + 10, _startPosY + 60); + g.FillEllipse(additionalBrush, _startPosX + 15, _startPosY + 65, 95, 50); + g.DrawEllipse(pen, _startPosX + 15, _startPosY + 65, 95, 50); + + if (EntitySailBoat.RainforcedBody) + { + Brush rainforcedBody = new SolidBrush(Color.DarkGray); + g.FillRectangle(rainforcedBody, _startPosX + 2, _startPosY + 65, 10, 50); + g.DrawRectangle(pen, _startPosX + 2, _startPosY + 65, 10, 50); + g.FillRectangle(rainforcedBody, _startPosX + 15, _startPosY + 53, 90, 10); + g.DrawRectangle(pen, _startPosX + 15, _startPosY + 53, 90, 10); + g.FillRectangle(rainforcedBody, _startPosX + 15, _startPosY + 118, 90, 10); + g.DrawRectangle(pen, _startPosX + 15, _startPosY + 118, 90, 10); + } + + if (EntitySailBoat.Sail) + { + Brush mast = new SolidBrush(Color.Brown); + g.FillRectangle(mast, _startPosX + 60, _startPosY , 4, 90); + g.DrawRectangle(pen, _startPosX + 60, _startPosY , 4, 90); + g.DrawLine(pen, _startPosX + 25, _startPosY + 20, _startPosX + 100, _startPosY); + g.DrawLine(pen, _startPosX + 100, _startPosY, _startPosX + 100, _startPosY + 50); + g.DrawLine(pen, _startPosX + 25, _startPosY + 70, _startPosX + 100, _startPosY + 50); + g.DrawLine(pen, _startPosX + 25, _startPosY + 70, _startPosX + 25, _startPosY + 20); + } + } + } +} diff --git a/SailBoat/SailBoat/EntitySailBoat.cs b/SailBoat/SailBoat/EntitySailBoat.cs new file mode 100644 index 0000000..3c4f407 --- /dev/null +++ b/SailBoat/SailBoat/EntitySailBoat.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace SailBoat +{ + internal class EntitySailBoat + { + 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 Sail { get; private set; } + + public bool RainforcedBody { get; private set; } + + public double Step => (double)Speed * 100 / Weight; + + public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool sail, bool rainforcedBody) + { + Speed = speed; + Weight = weight; + BodyColor = bodyColor; + AdditionalColor = additionalColor; + Sail = sail; + RainforcedBody = rainforcedBody; + } + } +} diff --git a/SailBoat/SailBoat/Form1.Designer.cs b/SailBoat/SailBoat/Form1.Designer.cs deleted file mode 100644 index fcc066a..0000000 --- a/SailBoat/SailBoat/Form1.Designer.cs +++ /dev/null @@ -1,39 +0,0 @@ -namespace SailBoat -{ - 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/SailBoat/SailBoat/Form1.cs b/SailBoat/SailBoat/Form1.cs deleted file mode 100644 index f05c268..0000000 --- a/SailBoat/SailBoat/Form1.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace SailBoat -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - } -} \ No newline at end of file diff --git a/SailBoat/SailBoat/FormSailBoat.Designer.cs b/SailBoat/SailBoat/FormSailBoat.Designer.cs new file mode 100644 index 0000000..5bac5aa --- /dev/null +++ b/SailBoat/SailBoat/FormSailBoat.Designer.cs @@ -0,0 +1,137 @@ +namespace SailBoat +{ + partial class FormSailBoat + { + /// + /// 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() + { + pictureBoxSailBoat = new PictureBox(); + buttonCreateSailBoat = new Button(); + buttonDown = new Button(); + buttonLeft = new Button(); + buttonUp = new Button(); + buttonRight = new Button(); + ((System.ComponentModel.ISupportInitialize)pictureBoxSailBoat).BeginInit(); + SuspendLayout(); + // + // pictureBoxSailBoat + // + pictureBoxSailBoat.Dock = DockStyle.Fill; + pictureBoxSailBoat.Location = new Point(0, 0); + pictureBoxSailBoat.Name = "pictureBoxSailBoat"; + pictureBoxSailBoat.Size = new Size(884, 461); + pictureBoxSailBoat.SizeMode = PictureBoxSizeMode.AutoSize; + pictureBoxSailBoat.TabIndex = 0; + pictureBoxSailBoat.TabStop = false; + // + // buttonCreateSailBoat + // + buttonCreateSailBoat.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + buttonCreateSailBoat.Location = new Point(12, 419); + buttonCreateSailBoat.Name = "buttonCreateSailBoat"; + buttonCreateSailBoat.Size = new Size(96, 30); + buttonCreateSailBoat.TabIndex = 3; + buttonCreateSailBoat.Text = "Создать"; + buttonCreateSailBoat.UseVisualStyleBackColor = true; + buttonCreateSailBoat.Click += buttonCreateSailBoat_Click; + // + // buttonDown + // + buttonDown.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonDown.BackgroundImage = Properties.Resources.down; + buttonDown.BackgroundImageLayout = ImageLayout.Zoom; + buttonDown.Location = new Point(806, 419); + buttonDown.Name = "buttonDown"; + buttonDown.Size = new Size(30, 30); + buttonDown.TabIndex = 10; + buttonDown.UseVisualStyleBackColor = true; + buttonDown.Click += buttonMove_Click; + // + // buttonLeft + // + buttonLeft.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonLeft.BackgroundImage = Properties.Resources.left; + buttonLeft.BackgroundImageLayout = ImageLayout.Zoom; + buttonLeft.Location = new Point(770, 419); + buttonLeft.Name = "buttonLeft"; + buttonLeft.Size = new Size(30, 30); + buttonLeft.TabIndex = 9; + buttonLeft.UseVisualStyleBackColor = true; + buttonLeft.Click += buttonMove_Click; + // + // buttonUp + // + buttonUp.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonUp.BackgroundImage = Properties.Resources.up; + buttonUp.BackgroundImageLayout = ImageLayout.Zoom; + buttonUp.Location = new Point(806, 383); + buttonUp.Name = "buttonUp"; + buttonUp.Size = new Size(30, 30); + buttonUp.TabIndex = 8; + buttonUp.UseVisualStyleBackColor = true; + buttonUp.Click += buttonMove_Click; + // + // buttonRight + // + buttonRight.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonRight.BackgroundImage = Properties.Resources.right; + buttonRight.BackgroundImageLayout = ImageLayout.Zoom; + buttonRight.Location = new Point(842, 419); + buttonRight.Name = "buttonRight"; + buttonRight.Size = new Size(30, 30); + buttonRight.TabIndex = 7; + buttonRight.UseVisualStyleBackColor = true; + buttonRight.Click += buttonMove_Click; + // + // FormSailBoat + // + AutoScaleDimensions = new SizeF(7F, 15F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(884, 461); + Controls.Add(buttonDown); + Controls.Add(buttonLeft); + Controls.Add(buttonUp); + Controls.Add(buttonRight); + Controls.Add(buttonCreateSailBoat); + Controls.Add(pictureBoxSailBoat); + Name = "FormSailBoat"; + StartPosition = FormStartPosition.CenterScreen; + Text = "Парусник"; + ((System.ComponentModel.ISupportInitialize)pictureBoxSailBoat).EndInit(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private PictureBox pictureBoxSailBoat; + private Button buttonCreateSailBoat; + private Button buttonDown; + private Button buttonLeft; + private Button buttonUp; + private Button buttonRight; + } +} \ No newline at end of file diff --git a/SailBoat/SailBoat/FormSailBoat.cs b/SailBoat/SailBoat/FormSailBoat.cs new file mode 100644 index 0000000..90d3f2c --- /dev/null +++ b/SailBoat/SailBoat/FormSailBoat.cs @@ -0,0 +1,49 @@ +namespace SailBoat +{ + public partial class FormSailBoat : Form + { + private DrawingSailBoat _drawningSailBoat; + public FormSailBoat() + { + InitializeComponent(); + } + private void Draw() + { + if (_drawningSailBoat == null) { return; } + Bitmap bmp = new(pictureBoxSailBoat.Width, pictureBoxSailBoat.Height); + Graphics gr = Graphics.FromImage(bmp); + _drawningSailBoat.DrawTransport(gr); + pictureBoxSailBoat.Image = bmp; + } + + private void buttonCreateSailBoat_Click(object sender, EventArgs e) + { + Random random = new(); + _drawningSailBoat = new DrawingSailBoat(); + _drawningSailBoat.Init(random.Next(300, 700), random.Next(2000, 4000), Color.FromArgb(random.Next(0, 255), random.Next(0, 255), random.Next(0, 255)), Color.FromArgb(random.Next(0, 255), random.Next(0, 255), random.Next(0, 255)), Convert.ToBoolean(random.Next(0, 2)), Convert.ToBoolean(random.Next(0, 2)), pictureBoxSailBoat.Width, pictureBoxSailBoat.Height); + _drawningSailBoat.SetPosition(random.Next(10, 100), random.Next(10, 100)); + Draw(); + } + private void buttonMove_Click(object sender, EventArgs e) + { + if (_drawningSailBoat == null) { return; } + string name = ((Button)sender)?.Name ?? string.Empty; + switch (name) + { + case "buttonUp": + _drawningSailBoat.MoveTransport(DirectionType.Up); + break; + case "buttonDown": + _drawningSailBoat.MoveTransport(DirectionType.Down); + break; + case "buttonRight": + _drawningSailBoat.MoveTransport(DirectionType.Right); + break; + case "buttonLeft": + _drawningSailBoat.MoveTransport(DirectionType.Left); + break; + } + Draw(); + } + } +} \ No newline at end of file diff --git a/SailBoat/SailBoat/FormSailBoat.resx b/SailBoat/SailBoat/FormSailBoat.resx new file mode 100644 index 0000000..a395bff --- /dev/null +++ b/SailBoat/SailBoat/FormSailBoat.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/SailBoat/SailBoat/Program.cs b/SailBoat/SailBoat/Program.cs index b9fb0a7..78fbf59 100644 --- a/SailBoat/SailBoat/Program.cs +++ b/SailBoat/SailBoat/Program.cs @@ -11,7 +11,7 @@ namespace SailBoat // 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 FormSailBoat()); } } } \ No newline at end of file diff --git a/SailBoat/SailBoat/Properties/Resources.Designer.cs b/SailBoat/SailBoat/Properties/Resources.Designer.cs new file mode 100644 index 0000000..ed30530 --- /dev/null +++ b/SailBoat/SailBoat/Properties/Resources.Designer.cs @@ -0,0 +1,103 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +namespace SailBoat.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("SailBoat.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 down { + get { + object obj = ResourceManager.GetObject("down", 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 right { + get { + object obj = ResourceManager.GetObject("right", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap up { + get { + object obj = ResourceManager.GetObject("up", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/SailBoat/SailBoat/Properties/Resources.resx b/SailBoat/SailBoat/Properties/Resources.resx new file mode 100644 index 0000000..2a9fd3d --- /dev/null +++ b/SailBoat/SailBoat/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.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\down.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\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/SailBoat/SailBoat/Resources/down.png b/SailBoat/SailBoat/Resources/down.png new file mode 100644 index 0000000000000000000000000000000000000000..d48db8d89b35b89834c75c1fd995731243b1115c GIT binary patch literal 5136 zcmeHL`&ScZ8jcv+4z1XR1-jzFZcQ^LjdCkWbO5DRnhj=pl2{vLRRlxvw3v;T1`2Ca zgVk1HaY9JiVW_9gnWn8+O+7$S!Jx$n0lEizuq{>sQ5w8}5agz?@1*-j><|2qlV{%V zd7t<4ee=$oIrfG;eNo7g5Dtg4Nc#Fl1&0c$T0|5OlIm|>kB{ub<0q^EIeJC^$3 zf}6Kt^9By*Z28lVvV-9o(Y~(U$Kiywu)hVZd%w!%aKdcTjT=<@?e~6d`{(X05!|23 zc3zM8U~%6QRQEHfmR%v&4Pln%`lFxkNZ&mo++zRo^hCp&iOf~G_uo&$r)pC3{mb-+ zyN{OS-V|0XT5f-C=GrCYs;Eth?29 zyX$V9%jPHUTK3C(uH7xK@41q4ZrIdzq+(uZzDM)tX#N(NA0zVh|11Ldig=4NL$aLj$;=8&wmBaBbE z1$UOJMI#4g0vbP`j6`be&D-u;$&@XV{49$tDB&BhA4mzn9EdviX4V4SxGR%gs(8y7JyB4nUOX8eCZtfKfzO%&#+S zbf-u_@A!V2)hc}{L%w6z46)N35@jJT{q!)9#Sd2U5{Y`|+=^3`jPDyg4>FsEWi#s8 ztFixd#k;?m7>Uu?-)IS-IEQM*PTkr8>7+$1BC8pn1@(lv6`l(j@|#X#Bwu6KZW7RY zz0ygsLzNUsbk&XVu~u<-htum9VaN^$PVdweg;U0u1X=0f1j)q++*xI{IV-H>_6pSV z8faNE{sJDjkoi60v22m4Ec52f5}^#&6XTGvu8e zgf>fKCqH5G7vRoQR-5ic0UeAX>3L?C&_W&@;V-RLi(2z^nb3nEjeV(=$q&Pw5{pfj zA)t3-2%T+q{l`K+e84A<0Wn*b31!Cv(a7Y#ggd7!wo$EsK8+!RIc8Umm5dnUlPA@p z@?E-L+X?NP8ao_@{AApD3_{}qI!e#$Xct$`#7h3*B(z1a3?1N6#wP&5QHcH%l`%dM zW#obFL&mq7GDd6cSyhZLjWUV=eZu(UlySAjegSTTOv;!Bs3L&m8vAi8S#VqW2lN{{ zrlX9RuxMt4lu-kKWQ38FQ3uG#2$$)3(^lIkMkr_drEgspSLRvB(Ma4Gp|KaAWQ22G z>2;^LlFpD%9YwRBbEsw+uZhNxMyS}p2y493x8MdNlqs#mcNOX(jey2li0@45q0B!~ zm3k-*P$%&npw$ApxB|^ibaW?Y$O{qNc~E1AX)u~baovhGD>={YuYx(kIgd|!T$FeP{W!y*~KVAdB2%x-e$G^ z4$XwQ(0AIc*xT+k!CcS=YwUG7I#+TbuRhe#y)9O9s{=!_PN;_tSV`R>id)Nw$1|ar zr|_Vy8go%NwAqLn?mz;|31#$EqIukEyHv^uVJ`Fu+=@J)it(VjUFK2VV48zNZ~i<)8rXdxc-n5uzPoI5b&+mQyg niH``>u#yTa@0fiwcF6TWv*q^6sK3EiJdX4=`NrC`oge-ePJj%c literal 0 HcmV?d00001 diff --git a/SailBoat/SailBoat/Resources/left.png b/SailBoat/SailBoat/Resources/left.png new file mode 100644 index 0000000000000000000000000000000000000000..cdbe6c7c57075d9d6d9ff3de9290f7854156a89a GIT binary patch literal 4073 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 literal 0 HcmV?d00001 diff --git a/SailBoat/SailBoat/Resources/up.png b/SailBoat/SailBoat/Resources/up.png new file mode 100644 index 0000000000000000000000000000000000000000..d29315dc2d1c440c41f82f27c0a4d140e36564d3 GIT binary patch literal 5154 zcmeHL{Z|ub77j6r!7AGk?T1#k$28MG1Ogs4b`)f7ZA_Z!nXuBdVx{76?1#{>)(MJ~ z3R;h~sSc!xgt+aVY&Nxpwy6bCY8omyFoG4VqM}4XDOex^X%qtNWzzj4_8flTaP!Rb zKKHrzzPZWC;g{7L=SDmk!Q=7fDqh?`@Ob=LJYLwyY(5~&ppJrnVY$S{6kbL1;$CdLHi^!<=BoOn5EKc~P6o4H@`};VSOsKwf{!#vCJI{1(%N| zZ<*r?&zXT=_RUzJam};11eqUhJM`BX*E9az+|TQ~)1b_lY4T4(A6wW!XP4Et4D1jU}&(sKtc7u|0S4KV3TUSpMXA;32`yUQ9#SJG;ZhAf6fAwr-PvrVXasHxO zOup7FE!|`ltQ_@vM`k-yM}gkc$%Ty+a=rV(|H4$)({q$4`1?0`RHq5bRZSo{Q$#LsF|i{RI_*J&Mkc zYC>=nz*%*imnAK<>&)+FF6RL~vijINoOQhj=VyJB%bkquQgljx30aY0LW_Hds|b4^ zE$j*PCEO?SWs2<$W}7bCDzGx%k<%=3CI;u@+jVQU8ym+dgqlaUR>5G^m=HU}^ezHw zBv4)65iwBZINw0(@?uEGEel$BC_!Gk+?l$oiFS3FEVmD6qgO#q>s9K(25ISQ_eH+h zVtarzHogS10=hLEWcxAUt#YQf4qEYoRWQ)x9XZAl`eitOPo{2^A|2<7(ZanldHzCY zYCTYknciHpEddJqL#1wUNlU|UepQw(4*{kTEnEa;EpVo8y+FH`n=RI(+UQCc6A4sC zTG|EY4>G-Gr~qcVC|V44rGW_nkWjwTR< zD1~&C>5&I;7G`s8NaV{9+sn+hif%>c43%1@>|kium`eSS*7l`X1rr8FGMQ95UHF@?>@>BF?wVrMEzX!i%j0VnI*<36Nt0iH60*2MlO^#?KGr&+qjVw25k zK|MEA>N5+SZLl-8m>5Y~rZJDS7M+4TH7tQQ(K!mSeM`BvPp(HQ8oVX*NC)awR4<`5 zZ^H4TsOJrpTC&}k7i}$yk;!caZ68cDw$57ulkf2;s%O!f8new>gnIZYb-PRIe*_a| zL2{Tp?1k0O(VERNWqvH~c9<>SexmK0uSc4p1?4Pp@*i0yBa#!;!YC^11k)7fVC zi7X#8k{~1X-^YYKZ|EXm_@mpbMY%G0alm9-cO3O>P^mo!SYl~CowHDE_sK{HEQZxH zX$@u8_HCySYl}DP<9KC04|mgMi~C*D5%^U>iQ)NjXWQ8!5k@nTM@+Wc2Gp}trOsfb ze%J*q8M=t<3}YS&mBh=7tDv9Zxcgsl{wttD7e9lna1XMZXy0nFJtvZMz%HN`)0*n} z&NkQu*oTbdR;jiRcEOS#y-@>~q<%3b+>@n?Fk~1<-?J8tCCH06CMffl;qIqEw##h$ zp&0dS1z9aiG+@F26pLpX*K{eW=YUtZ4q>>vADB;=Z1X5&7we5`u9NytW5TLTT}0M) z<0y=z4BC>Lpj_Kb=PUwOBU!(YqGeXG1>M*+rENK(JYa~&^|Fx zmy?dTVG#@Z3&4qsjt9|eJB*_;YmpF&g7lF?B9+OK66S0x7#5v7!ARPmsnE3DD)ncF zwS9XrVdXYmL_SMQGIUM}Bl#{tIerB7{Ds#11|vmrw;jZ1k&ZzMS$D}BWsFz)MX(bj zUw*sK*r$M1AbHz46~QXdT;Dk?y-H85g0I_eXum)`unG#xovFARRzYFXa*HhwxedJx z?zlO{D*!O?G{SR!KtT)z(7_{)t&uK zEtjvZ;GSvrjrCVOe4^&Wg2`Go{F!s{#~=UsLV946Geac%{K(mXQnK#FH#R)Brz7Ul z!DByt7&}mtc4F?b!;hxl+FiL~(F@43n(BL7cdqenable + + + True + True + Resources.resx + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + \ No newline at end of file