From ad1b457f40a29dd48751fbf37c8b6f4005d18645 Mon Sep 17 00:00:00 2001 From: Alenka Date: Thu, 12 Oct 2023 00:13:18 +0400 Subject: [PATCH] =?UTF-8?q?1=20=D0=BB=D0=B0=D0=B1=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Cruiser/Cruiser/Cruiser.cs | 50 +++++ Cruiser/Cruiser/Cruiser.csproj | 15 ++ Cruiser/Cruiser/Direction.cs | 30 +++ Cruiser/Cruiser/DrawningCruiser.cs | 200 ++++++++++++++++++ Cruiser/Cruiser/Form1.Designer.cs | 171 +++++++++++++-- Cruiser/Cruiser/Form1.cs | 15 +- Cruiser/Cruiser/Program.cs | 2 +- .../Cruiser/Properties/Resources.Designer.cs | 103 +++++++++ Cruiser/Cruiser/Properties/Resources.resx | 133 ++++++++++++ Cruiser/Cruiser/Resources/вверх.jpg | Bin 0 -> 4610 bytes Cruiser/Cruiser/Resources/влево.png | Bin 0 -> 4504 bytes Cruiser/Cruiser/Resources/вниз.png | Bin 0 -> 8783 bytes Cruiser/Cruiser/Resources/вправо.png | Bin 0 -> 2308 bytes 13 files changed, 697 insertions(+), 22 deletions(-) create mode 100644 Cruiser/Cruiser/Cruiser.cs create mode 100644 Cruiser/Cruiser/Direction.cs create mode 100644 Cruiser/Cruiser/DrawningCruiser.cs create mode 100644 Cruiser/Cruiser/Properties/Resources.Designer.cs create mode 100644 Cruiser/Cruiser/Properties/Resources.resx create mode 100644 Cruiser/Cruiser/Resources/вверх.jpg create mode 100644 Cruiser/Cruiser/Resources/влево.png create mode 100644 Cruiser/Cruiser/Resources/вниз.png create mode 100644 Cruiser/Cruiser/Resources/вправо.png diff --git a/Cruiser/Cruiser/Cruiser.cs b/Cruiser/Cruiser/Cruiser.cs new file mode 100644 index 0000000..541e074 --- /dev/null +++ b/Cruiser/Cruiser/Cruiser.cs @@ -0,0 +1,50 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Cruiser +{ + public class Cruiser + { + + 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 Headlights { get; private set; } + public bool HelicopterPad { get; private set; } + + public bool Coating { get; private set; } + public double Step => (double)Speed * 100 / Weight; + + /// Скорость + /// Вес автомобиля + /// Основной цвет + /// Дополнительный цвет + /// Признак наличия передних фар + /// Признак наличия площадки для вертолета + /// Признак наличия покрытия + public void Init(int speed, double weight, Color bodyColor, Color + additionalColor, bool headlights, bool helicopterPad, bool coating) + { + Speed = speed; + Weight = weight; + BodyColor = bodyColor; + AdditionalColor = additionalColor; + + Headlights = headlights; + HelicopterPad = helicopterPad; + Coating = coating; + } + + } +} diff --git a/Cruiser/Cruiser/Cruiser.csproj b/Cruiser/Cruiser/Cruiser.csproj index b57c89e..13ee123 100644 --- a/Cruiser/Cruiser/Cruiser.csproj +++ b/Cruiser/Cruiser/Cruiser.csproj @@ -8,4 +8,19 @@ enable + + + True + True + Resources.resx + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + \ No newline at end of file diff --git a/Cruiser/Cruiser/Direction.cs b/Cruiser/Cruiser/Direction.cs new file mode 100644 index 0000000..62320f4 --- /dev/null +++ b/Cruiser/Cruiser/Direction.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Cruiser +{ + public enum Direction + { + /// Вверх + + /// + Up = 1, + /// + /// Вниз + /// + Down = 2, + /// + /// Влево + /// + Left = 3, + /// + /// Вправо + /// + Right = 4 + } +} + + diff --git a/Cruiser/Cruiser/DrawningCruiser.cs b/Cruiser/Cruiser/DrawningCruiser.cs new file mode 100644 index 0000000..e14ca5e --- /dev/null +++ b/Cruiser/Cruiser/DrawningCruiser.cs @@ -0,0 +1,200 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Cruiser +{ + public class DrawningCruiser + { + + public Cruiser? Cruiser { get; private set; } + + private int _pictureWidth; + + private int _pictureHeight; + + private int _startPosX; + + private int _startPosY; + + private readonly int _cruiserWidth = 150; + + + private readonly int _cruiserHeight = 50; + + + + /// Скорость + /// Вес + /// Цвет кузова + /// Дополнительный цвет + /// Признак наличия фар + /// Признак наличия антикрыла + /// Признак наличия гоночной полосы + /// Ширина картинки + /// Высота картинки + /// true - объект создан, false - проверка не пройдена, нельзя создать объект в этих размерах + + public bool Init(int speed, double weight, Color bodyColor, Color +additionalColor, bool headlights, bool helicopterPad, bool coating, int width, int height) + { + + _pictureWidth = width; + _pictureHeight = height; + if (_pictureHeight > _cruiserWidth && _pictureWidth > _cruiserHeight) + { + Cruiser = new Cruiser(); + Cruiser.Init(speed, weight, bodyColor, additionalColor, + headlights, helicopterPad, coating); + return true; + } + return false; + } + + /// Координата X + /// Координата Y + public void SetPosition(int x, int y) + { + if (Cruiser == null) return; + while (x + _cruiserWidth > _pictureWidth) + { + x -= (int)Cruiser.Step; + } + while (x < 0) + { + x += (int)Cruiser.Step; + } + while (y + _cruiserHeight > _pictureHeight) + { + y -= (int)Cruiser.Step; + } + while (y < 0) + { + y += (int)Cruiser.Step; + } + + _startPosX = x; + _startPosY = y; + + } + + /// Направление + public void MoveTransport(Direction direction) + { + if (Cruiser == null) + { + return; + } + switch (direction) + { + + case Direction.Left: + if (_startPosX - Cruiser.Step > 0) + { + _startPosX -= (int)Cruiser.Step; + } + break; + + case Direction.Up: + if (_startPosY - Cruiser.Step > 0) + { + _startPosY -= (int)Cruiser.Step; + } + break; + + case Direction.Right: + if (_startPosX + Cruiser.Step + _cruiserWidth < _pictureWidth) + { + _startPosX += (int)Cruiser.Step; + } + break; + + case Direction.Down: + if (_startPosY + Cruiser.Step + _cruiserHeight < _pictureHeight) + { + _startPosY += (int)Cruiser.Step; + } + break; + + + } + } + + /// + public void DrawTransport(Graphics g) + { + if (Cruiser == null) + { + return; + } + Pen pen = new(Color.Black); + Brush additionalBrush = new + SolidBrush(Cruiser.AdditionalColor); + + + //границы автомобиля + + + g.DrawEllipse(pen, _startPosX + 15, _startPosY + 5, 20, 20); + g.DrawEllipse(pen, _startPosX + 15, _startPosY + 35, 20, 20); + g.DrawRectangle(pen, _startPosX + 9, _startPosY + 15, 10, 30); + g.DrawRectangle(pen, _startPosX + 90, _startPosY + 15, 10, + 30); + g.DrawRectangle(pen, _startPosX + 20, _startPosY + 4, 70, 52); + + //если есть доп.фонари + if (Cruiser.Headlights) + { + + Brush brYellow = new SolidBrush(Color.Yellow); + g.FillEllipse(brYellow, _startPosX + 80, _startPosY + 5, 20, + 20); + g.FillEllipse(brYellow, _startPosX + 80, _startPosY + 35, 20, + 20); + } + //основание лодки!!! + Brush br = new SolidBrush(Cruiser.BodyColor); + g.FillRectangle(br, _startPosX + 10, _startPosY + 15, 10, 30); + g.FillRectangle(br, _startPosX + 90, _startPosY + 15, 10, 30); + g.FillRectangle(br, _startPosX + 20, _startPosY + 5, 70, 50); + Point[] points = new Point[3];// нос лодки + points[0] = new Point(_startPosX + 100, _startPosY + 5); + points[1] = new Point(_startPosX + 100, _startPosY + 55); + points[2] = new Point(_startPosX + 100 + 50, _startPosY + 50 / 2); + g.FillPolygon(Brushes.Pink, points); + //границы носа лодки + Point[] points1 = new Point[3];// нос лодки + points1[0] = new Point(_startPosX + 100, _startPosY + 5); + points1[1] = new Point(_startPosX + 100, _startPosY + 55); + points1[2] = new Point(_startPosX + 100 + 50, _startPosY + 50 / 2); + g.DrawPolygon(pen, points1); + g.FillRectangle(Brushes.Black, _startPosX + 5, _startPosY + 15, 10, 10); + g.FillRectangle(Brushes.Black, _startPosX + 5, _startPosY + 35, 10, 10); + + //если есть ракетные шахты, добавить условие + g.DrawRectangle(Pens.Black, _startPosX + 35, + _startPosY + 23, 15, 15); + g.DrawRectangle(Pens.Black, _startPosX + 50, + _startPosY + 19, 30, 25); + + if (Cruiser.HelicopterPad) + { + //если есть площадка под вертолет + g.DrawEllipse(pen, _startPosX + 90, _startPosY + 20, 20, 20); + } + if (Cruiser.Coating) + { + //если есть спец покрытие для площадки под вертолет + g.FillEllipse(Brushes.Red, _startPosX + 90, _startPosY + 20, 20, 20); + } + + } + } +} + + + + + diff --git a/Cruiser/Cruiser/Form1.Designer.cs b/Cruiser/Cruiser/Form1.Designer.cs index 4614fb0..c1cc34c 100644 --- a/Cruiser/Cruiser/Form1.Designer.cs +++ b/Cruiser/Cruiser/Form1.Designer.cs @@ -1,6 +1,6 @@ namespace Cruiser { - partial class Form1 + partial class CruiserForm { /// /// Required designer variable. @@ -11,14 +11,7 @@ /// 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 @@ -29,6 +22,13 @@ private void InitializeComponent() { this.button1 = new System.Windows.Forms.Button(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.buttonDown = new System.Windows.Forms.Button(); + this.buttonLeft = new System.Windows.Forms.Button(); + this.buttonRight = new System.Windows.Forms.Button(); + this.buttonUp = new System.Windows.Forms.Button(); + this.buttonCreate = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); this.SuspendLayout(); // // button1 @@ -40,20 +40,155 @@ this.button1.Text = "button1"; this.button1.UseVisualStyleBackColor = true; // - // Form1 + // pictureBox1 // - this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 25F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 450); - this.Controls.Add(this.button1); - this.Name = "Form1"; - this.Text = "Form1"; + this.pictureBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.pictureBox1.Location = new System.Drawing.Point(0, 0); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(667, 358); + this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; + this.pictureBox1.TabIndex = 0; + this.pictureBox1.TabStop = false; + // + // buttonDown + // + this.buttonDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonDown.BackgroundImage = global::Cruiser.Properties.Resources.вниз; + this.buttonDown.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; + this.buttonDown.Location = new System.Drawing.Point(543, 306); + this.buttonDown.Name = "buttonDown"; + this.buttonDown.Size = new System.Drawing.Size(30, 30); + this.buttonDown.TabIndex = 1; + this.buttonDown.UseVisualStyleBackColor = true; + this.buttonDown.Click += new System.EventHandler(this.ButtonMove_Click); + // + // buttonLeft + // + this.buttonLeft.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonLeft.BackgroundImage = global::Cruiser.Properties.Resources.влево; + this.buttonLeft.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; + this.buttonLeft.Location = new System.Drawing.Point(517, 306); + this.buttonLeft.Name = "buttonLeft"; + this.buttonLeft.Size = new System.Drawing.Size(30, 30); + this.buttonLeft.TabIndex = 2; + this.buttonLeft.UseVisualStyleBackColor = true; + this.buttonLeft.Click += new System.EventHandler(this.ButtonMove_Click); + // + // buttonRight + // + this.buttonRight.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonRight.BackgroundImage = global::Cruiser.Properties.Resources.вправо; + this.buttonRight.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; + this.buttonRight.Location = new System.Drawing.Point(567, 306); + this.buttonRight.Name = "buttonRight"; + this.buttonRight.Size = new System.Drawing.Size(30, 30); + this.buttonRight.TabIndex = 3; + this.buttonRight.UseVisualStyleBackColor = true; + this.buttonRight.Click += new System.EventHandler(this.ButtonMove_Click); + // + // buttonUp + // + this.buttonUp.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonUp.BackgroundImage = global::Cruiser.Properties.Resources.вверх; + this.buttonUp.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; + this.buttonUp.Location = new System.Drawing.Point(543, 284); + this.buttonUp.Name = "buttonUp"; + this.buttonUp.Size = new System.Drawing.Size(30, 30); + this.buttonUp.TabIndex = 4; + this.buttonUp.UseVisualStyleBackColor = true; + this.buttonUp.Click += new System.EventHandler(this.ButtonMove_Click); + // + // buttonCreate + // + this.buttonCreate.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.buttonCreate.Location = new System.Drawing.Point(36, 302); + this.buttonCreate.Name = "buttonCreate"; + this.buttonCreate.Size = new System.Drawing.Size(112, 34); + this.buttonCreate.TabIndex = 5; + this.buttonCreate.Text = "Создать"; + this.buttonCreate.UseVisualStyleBackColor = true; + this.buttonCreate.Click += new System.EventHandler(this.ButtonCreateSportCar_Click); + // + // CruiserForm + // + this.ClientSize = new System.Drawing.Size(667, 358); + this.Controls.Add(this.buttonCreate); + this.Controls.Add(this.buttonUp); + this.Controls.Add(this.buttonRight); + this.Controls.Add(this.buttonLeft); + this.Controls.Add(this.buttonDown); + this.Controls.Add(this.pictureBox1); + this.Name = "CruiserForm"; + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.ResumeLayout(false); + this.PerformLayout(); } + /// + private void ButtonCreateSportCar_Click(object sender, EventArgs e) + { + Random random = new(); + _drawningCruiser = new DrawningCruiser(); + _drawningCruiser.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)), pictureBox1.Width, pictureBox1.Height); + _drawningCruiser.SetPosition(random.Next(10, 100), + random.Next(10, 100)); + Draw(); + } + private void ButtonMove_Click(object sender, EventArgs e) + { + if (_drawningCruiser == null) + { + return; + } + string name = ((Button)sender)?.Name ?? string.Empty; + switch (name) + { + case "buttonUp": + _drawningCruiser.MoveTransport(Direction.Up); + break; + case "buttonDown": + _drawningCruiser.MoveTransport(Direction.Down); + break; + case "buttonLeft": + _drawningCruiser.MoveTransport(Direction.Left); + break; + case "buttonRight": + _drawningCruiser.MoveTransport(Direction.Right); + break; + } + Draw(); + } + - #endregion - private Button button1; +private void Draw() + { + if (_drawningCruiser == null) + { + return; + } + Bitmap bmp = new(pictureBox1.Width, + pictureBox1.Height); + Graphics gr = Graphics.FromImage(bmp); + _drawningCruiser.DrawTransport(gr); + pictureBox1.Image = bmp; + } + +#endregion + +private Button button1; + private PictureBox pictureBox1; + private Button buttonDown; + private Button buttonLeft; + private Button buttonRight; + private Button buttonUp; + private Button buttonCreate; } } \ No newline at end of file diff --git a/Cruiser/Cruiser/Form1.cs b/Cruiser/Cruiser/Form1.cs index cda6114..d899564 100644 --- a/Cruiser/Cruiser/Form1.cs +++ b/Cruiser/Cruiser/Form1.cs @@ -1,10 +1,19 @@ +using System.Windows.Forms; + namespace Cruiser { - public partial class Form1 : Form + + public partial class CruiserForm : Form { - public Form1() + private DrawningCruiser? _drawningCruiser; + public CruiserForm() { InitializeComponent(); } } -} \ No newline at end of file +} + + + + + diff --git a/Cruiser/Cruiser/Program.cs b/Cruiser/Cruiser/Program.cs index d0f2665..d6cedfd 100644 --- a/Cruiser/Cruiser/Program.cs +++ b/Cruiser/Cruiser/Program.cs @@ -11,7 +11,7 @@ namespace Cruiser // 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 CruiserForm()); } } } \ No newline at end of file diff --git a/Cruiser/Cruiser/Properties/Resources.Designer.cs b/Cruiser/Cruiser/Properties/Resources.Designer.cs new file mode 100644 index 0000000..d06e6fd --- /dev/null +++ b/Cruiser/Cruiser/Properties/Resources.Designer.cs @@ -0,0 +1,103 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +namespace Cruiser.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("Cruiser.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 вверх { + get { + object obj = ResourceManager.GetObject("вверх", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap влево { + get { + object obj = ResourceManager.GetObject("влево", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap вниз { + get { + object obj = ResourceManager.GetObject("вниз", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap вправо { + get { + object obj = ResourceManager.GetObject("вправо", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/Cruiser/Cruiser/Properties/Resources.resx b/Cruiser/Cruiser/Properties/Resources.resx new file mode 100644 index 0000000..bf27090 --- /dev/null +++ b/Cruiser/Cruiser/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\вниз.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\влево.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\вверх.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\вправо.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/Cruiser/Cruiser/Resources/вверх.jpg b/Cruiser/Cruiser/Resources/вверх.jpg new file mode 100644 index 0000000000000000000000000000000000000000..88d30afb079756e041a4d1c962980b19498ffd3d GIT binary patch literal 4610 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 gZ{tiL+S_>h1FP5cZxEW()h$ z>Y^my`yskBVWcd#(By`il5i~vzw>b^y?*!i`{Q_?bDr~gp7(h_&z!|+7bn~GqH>}l zA|mVUc3HWJh^&M~L{?O+S_wv`uOt=&fpc-7SpzvRFfczqUshJu+}uo~(GEU)g%uIO zTG&}x&|?04-{W}nMI+8ez}6ggq}{GNIb>R1@IEU4Wv!0w{QNEWb*g=Fu$`K`>Cv>H z+nlp0dWO!1ki*z&E@#th{LYJ}Uxc43o+v8K58bCbMn%yISr#X(2^L*Kn2F%HN!Z&-o&iB~c;R;hlB3?c2(Cr*l}t_n`t| zQlU5OEN@U5FMrWJIu?808CPjgzAcU8KnM%=9F(MM;#nYbyDeJChrcsm9S7lqaHJ<3O9-QT21yGha%jk!lBgrtBf55ku>GDv zGJ?Q#N91$6aUI4eS_;=u)G=*ceXsNk=kwjI8i@YAKqN4Bf6r>`>S>6j)Awil{c9Mb z%s5EPSy-&1y$uqglEq0n?(Giawv)1XX)ef`feMy{Qw$wT^+;5dkp^JhFE{;c9W3Qu z)Z|7X3m#c(&_5j4Cct=KUl_HyA?X;QQSFK}#+a6s*Tdfi+H`=?Mp6(J{UNkf^%`dO zgG2LiSdv}0zm%L!*HpelD#6SeMn5{wEV`t_1W98Y>w*8i=RE8$Us@C|*cy~BW~F4lLUO&j<ABPNiY8eUqbAeJA)b$%Y6Gf3s+U|V4y8ymAUQuim7$y-| z6<;51Ysga{FL#KfTy=;+rZQ!le}odW@R#{j`ho>$XovK0->rQpW)pfaHjS2q#v@f) zE4!JoT}uG*3EEd3rU21zuJ7uGALc^NLtgnq3s6uvHb7T3IqZ1N8^L-?s{D+T3qbH$ zZA3}UbKgg)#8?}rkV+x~Sf_hO4Y@E8B_t!<^(U6Y#=4zb+_tjA!Iz)i)lE?PP&k5( z&R%%n2H*j$a7mJ;&Zho)$s%T7|CZS3XVUv)d7V{&<;8WiLH$a{uT%BuUm7#E{ILKJ z#T?8!?L?;B@y+!HR74_OJ+6DUNHkVz(EcC-equmj(cY{;w(Z;l)}zxm0?fCedZR#^ zow~sy)PE#QRG>%Ga%qU3r{u5Ka9M4|E`;w8k|qv?>i-4SQ8IvWeovDPK&s-=BFJ3E z_*Y`S8$_45l$S-rIY$%@I6q(%MxB;&Aa_3%P< z+>A2=yoMBx)ON63)#G`c%ZOYgbb(w3+~eA5iq_iy0s$o#RSw)A#LEQ~6ALo*+q@nw z<$byQN^)a+hxa6H0VaxjIY0yMD%JSs>H1tad>VKI9ud?lzEN7hFK?Rj>s`OW+3bC1 ze?R!OljmnX_RU?Mubd8_oopT%`Kx~3bT(?kxEcK*)|k@NpIDPEvDN#=`KIjQ1WG#R z)2G%rSeicO-%;xrj9nqNcUB&jRz48_ArW---!Wb!o7x0pi_Pq_v7Rui0(z-vw|yU6 z7MI?s)7PT1DznBPOn)aF!LY3#%k}x;Jz-AUCS2?es=QGuupB89$C%fsRTtFHt)|a6 z6WHekStHRhu#x)gQA+xmnDD7fBk4j5g$=Ekysc{|PX$_b)yTbCck%V0#_YNA8-88W zJE*l+x~t-66&__Bu^k%Jm^>G055&~PNZX+V)6YDHV~mi>XzF3|Z&4=l=$}f@%msLS z*>WvWRyy%sqhhHcd+)XpVZMIVi*QcZ?1@od=w}8 znQ$l~F7t$)=Ul%Er^$-)d5ZQxrvcwvgBgjNd0l84@4z#X`Qb#kE*ln4trsxJ3gW5# z+*BheobiL-qIbo7fbC_HOiL!#z3p#Q^5r)Xp=r3tXO%I#PBkTaZDO;dl9s>TxE|}? zA z!f0w{@`bV^F`KIf**YNz8a)R zyekHs8WXIi@FW<7_Q`PYQF->Qg!yAqp3KA9O7g!{L9@!Vn*LAO^sYIF0Y~Kc!6%1| z$&{v+p-l*1=VFb_{OIqeO~j1jt*d|9YAIt}KzbnNGZcvo=|{5Lp{qQ8N()g87-GYa zpjo6RDs)J?xo0eK`jwR;Q$bN#tfx4CVrwKg7{Poki540Eu(s;qeAs77I&)p21DPs& zfA|LM&teNNQ^_`G6I1s8)3`UCU0>g~*c&k$V;*M=7O`bk<() zVx~AgY&idMj#M2!1h#=Sd2FF?5`)D|5ni?unhp2ku`gN_$|Dqa0)a}Vtkch0RQxh(H^|98tmH zahn@(H!&;BBNFGnBjS~Gb21zS?)OY1Tt~jGw`_}AnL+lH*{`b`hW!zJLa)#7crw-b5@Q1=s3(0fY;!o<5nyI4Y~M_Nu$2o z5Wk&2F4|R`-#uDxoPAP94$^Avcc&N&-UOg8C2wCQ`bv5fu<(K^ha(Ytd1>%cYodTD zDP9KP-Bq3fMtNKpM7ref@R?(03P@sBbPvK`BGp7r#0D3&33c3z%B#7(Nsd}lf4-6p zznojNsfL&k+mNs4XsEE6_S18>dP7*W!ZW1WQ=i=;UKU_g-y@spv0hc~2mkQ)4wH}pn!T(XMWQs5;OgB?-*kC z>}Fq)kD-@08!48Zob@ zr%4>6OjQY{w_@nJ@Y~sG?^q~eCEXm>99B|HPQ4p^M;uC2_5Gzte!Ikk<;DY#XN0py g=NjIB60ZLsN=;Z3b=DR9i$%oF+R5rBW&f%F0gL!Nr~m)} literal 0 HcmV?d00001 diff --git a/Cruiser/Cruiser/Resources/вниз.png b/Cruiser/Cruiser/Resources/вниз.png new file mode 100644 index 0000000000000000000000000000000000000000..968ae99a6d93db477e04380a81b06b48eb1b05a7 GIT binary patch literal 8783 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 aE(&$aVlzPi literal 0 HcmV?d00001 diff --git a/Cruiser/Cruiser/Resources/вправо.png b/Cruiser/Cruiser/Resources/вправо.png new file mode 100644 index 0000000000000000000000000000000000000000..1ff42909a7dd4e441f96c1a39959efeb9625904b GIT binary patch literal 2308 zcmZuzeK=Ix8lO-;Qpi_>nxtmP#NIQE&!z|y##c(lq2@!I;$eUN^;>(t@3U53XfSP= zo`oI;gIVUk&1X9XqX}a$8W;^tG*UWfUyC;Sq4XWTDwPU#=jP^UG+Lb^-5-O|k@)*~ z?Ktq{?X%6v{ShXMxza6%ABh@WahD4@82zw zIj&f9(BI?ITv(IiDaRK>_3bAvNkg-?1%D_Uv2l2Ft7$jUto_-mTL*nI0`S7v-~7M9 zzTpw}kKJE-#Rq2}Z_1&rFQ$_^)_nt~*4S$Nx88hw&=h>M|L=3w74K?|yga`su1hqK zWwUv5`pQ^>HgehUE4SHGSE*l-Zs{FatrYebVkz$taa_rJQ5-5|@(k~taC*DkPAKzHmHwv$Jk~{-#NIY`|Rn&~kRia_I&l3n_ zLNm>Ro5->FRHf&!z0`b2=k!%X1xj-EUM~_FP31?9NA}?oz=Wv@UCEf}ICB2M?cYVe zA|LI@Y*KQ?h8gZ!(v5p?jH{7Q!Gm-=5-Z3yYbVp4X1E%pJwB+CHInoW;v(VOK&X|| zB!JAjlDSBB{L#=Bu*@3br}~awSjG0Mjf&B?8*?X^@PN{^a^w6yeR3cGc_4yFq@T4H z7rah&CjO(+hfSG**PBS5wF|Z(84pHVbX%WVq90%j0&SLPv9HevjgF-^?n(dj`@uCx z*)G_NFRV&F(tp$wT2^!>cYBKKk=GcY?T-dH4%zll^EJuZ<2J1teSH`S?aQD|5FRAQ_ zYi0wPwz}mK`OSucud&3-PqCI z8HfUjY9rz}g%tutzFQ`V;s}l8Vlx0*h+NfXwFz5>m3)v2s4$1XA#)1L1&RX3G}8}< zoGiXp57L6=P>)O2>VyXgQ#CwyW}yfjcS|8rJQhgWgXB=Vl?%2EH<^q>vJL^8KQn7k zoMC2K8xQ0^u1Rsf(31r3xvRy_{3wn7%*>pSdQM9JbqI)=?QXnt`(-w!b-?P`sn z)*N@M-!V8Sdm&%UL-Q5Y^bZ5*ZBG5ff-62zACz@=s(C&xE-HYF$4?d8MUUjx|EOk0 zC3kA`2JTJl=dFs50baEt#nIYN_6g1Fm)AZdl|{$!qEtI;YTPzX;=`Q?U%Pz>IKuE? zi?ul}b8w^-o3s&}(!NoGNxMIMCSa~6h6C`^E}H6uyGHpMia*rkNl*Qg!2zn`*}za4 z$qOiI)7+>P-edr1g$wXnWM$?)oli!*l-!Mk8-WeKHQ+TSz2BAU&_`m_#Sss}0}c2k z;fH$BtkjOu5g$6sXLf2wX+g4VvuwMxARV!l+7vEK)mWLX_7jV<5rk;ZMNIrpL0XV^ zuMaceffg%ZtaK&)S^^trOAFE$A2{2_++QF|1c%f@sQ1w%zJ*82B0=q_EE|&^H3_+A zGm6bS5&AHyq%I7$g93WB7N}6VHw7{x*oGd=#Gn=}x-CnkrwnQh>7UgOs{c=>esFS1 zaYXZNe`6ALUW!_i_?@jfwN2Eit%s)eYCf9UMKZJkXe_h>DgjISR2aNWJZ+0C3C}Q5 z7m6NPDq@;I1NrbrTg0zA0>|%TUMi9$0zEVq1%6Wr7$ZNRYjjn2=6(Blf7evlV=LHM zM-qnP3z@qw6v?3X=NX@wkLr$Pi1$GgXi&E2vZo$7rS4YPYCe{ggdT%J zVe`>bb~=_WKSp+FhFg?GB^=lj24kUf?t0`FE4{c@&T_s)Bi6y0#!7|xDqH0Kmdc%0 zd~B4dbABbT6{#AqMGPgOR(ys9<@zs`Kp?rtFWCf&vx(T_Xi8%prT$Wd4r1BVWpUAm zNfk}JlB-D7b6aGEcqR~tS4zB z*7~uo!wp=&x8|L*c3%p*Y?1BN?<$gh_G3MQ`Do8#^1@CmpTT*4hZpf4sqVBztR$gW zzL4`#>B(!pt*5l1^2U|zpPnp|WO18C19rmLt|CU+%}qC^!@s}2>03h>3-|Y5H-EaX qpsw`0r@;TY_vyQhIMu5UOyi0IxnJn7tU&ZFgYowb_Nnn^=KK#BBq>k; literal 0 HcmV?d00001