From 4707153231dcf1463508900f8cb3635a0d076e6d Mon Sep 17 00:00:00 2001 From: Honor Date: Fri, 14 Feb 2025 10:20:04 +0400 Subject: [PATCH 1/2] =?UTF-8?q?=D0=9B=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=20=E2=84=961?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProjectMonorail/DirectionType.cs | 21 ++ .../ProjectMonorail/DrawningMonorail.cs | 257 ++++++++++++++++++ .../ProjectMonorail/EntityMonorail.cs | 52 ++++ .../ProjectMonorail/Form1.Designer.cs | 39 --- ProjectMonorail/ProjectMonorail/Form1.cs | 10 - .../ProjectMonorail/FormMonorail.Designer.cs | 146 ++++++++++ .../ProjectMonorail/FormMonorail.cs | 90 ++++++ .../{Form1.resx => FormMonorail.resx} | 54 ++-- ProjectMonorail/ProjectMonorail/Program.cs | 2 +- .../ProjectMonorail/ProjectMonorail.csproj | 29 +- .../Properties/Resources.Designer.cs | 137 ++++++++++ .../ProjectMonorail/Properties/Resources.resx | 142 ++++++++++ .../ProjectMonorail/Resources/верх.jpg | Bin 0 -> 10872 bytes .../ProjectMonorail/Resources/верх1.jpg | Bin 0 -> 16317 bytes .../Resources/лево (2).jpg | Bin 0 -> 10872 bytes .../Resources/лево (2)1.jpg | Bin 0 -> 16310 bytes .../ProjectMonorail/Resources/низ.jpg | Bin 0 -> 10872 bytes .../ProjectMonorail/Resources/низ1.jpg | Bin 0 -> 16332 bytes .../ProjectMonorail/Resources/право.jpg | Bin 0 -> 10872 bytes верх.jpg | Bin 0 -> 16317 bytes лево (2).jpg | Bin 0 -> 16310 bytes низ.jpg | Bin 0 -> 16332 bytes 22 files changed, 895 insertions(+), 84 deletions(-) create mode 100644 ProjectMonorail/ProjectMonorail/DirectionType.cs create mode 100644 ProjectMonorail/ProjectMonorail/DrawningMonorail.cs create mode 100644 ProjectMonorail/ProjectMonorail/EntityMonorail.cs delete mode 100644 ProjectMonorail/ProjectMonorail/Form1.Designer.cs delete mode 100644 ProjectMonorail/ProjectMonorail/Form1.cs create mode 100644 ProjectMonorail/ProjectMonorail/FormMonorail.Designer.cs create mode 100644 ProjectMonorail/ProjectMonorail/FormMonorail.cs rename ProjectMonorail/ProjectMonorail/{Form1.resx => FormMonorail.resx} (92%) create mode 100644 ProjectMonorail/ProjectMonorail/Properties/Resources.Designer.cs create mode 100644 ProjectMonorail/ProjectMonorail/Properties/Resources.resx create mode 100644 ProjectMonorail/ProjectMonorail/Resources/верх.jpg create mode 100644 ProjectMonorail/ProjectMonorail/Resources/верх1.jpg create mode 100644 ProjectMonorail/ProjectMonorail/Resources/лево (2).jpg create mode 100644 ProjectMonorail/ProjectMonorail/Resources/лево (2)1.jpg create mode 100644 ProjectMonorail/ProjectMonorail/Resources/низ.jpg create mode 100644 ProjectMonorail/ProjectMonorail/Resources/низ1.jpg create mode 100644 ProjectMonorail/ProjectMonorail/Resources/право.jpg create mode 100644 верх.jpg create mode 100644 лево (2).jpg create mode 100644 низ.jpg diff --git a/ProjectMonorail/ProjectMonorail/DirectionType.cs b/ProjectMonorail/ProjectMonorail/DirectionType.cs new file mode 100644 index 0000000..684014a --- /dev/null +++ b/ProjectMonorail/ProjectMonorail/DirectionType.cs @@ -0,0 +1,21 @@ +namespace ProjectMonorail; + +public enum DirectionType +{ + /// + /// Вверх + /// + Up = 1, + /// + /// Вниз + /// + Down = 2, + /// + /// Влево + /// + Left = 3, + /// + /// Вправо + /// + Right = 4 +} diff --git a/ProjectMonorail/ProjectMonorail/DrawningMonorail.cs b/ProjectMonorail/ProjectMonorail/DrawningMonorail.cs new file mode 100644 index 0000000..19f88cf --- /dev/null +++ b/ProjectMonorail/ProjectMonorail/DrawningMonorail.cs @@ -0,0 +1,257 @@ +namespace ProjectMonorail; + +public class DrawningMonorail +{ + /// + /// Класс-сущность + /// + public EntityMonorail? EntityMonorail { get; private set; } + /// + /// Ширина окна + /// + private int? _pictureWidth; + /// + /// Высота окна + /// + private int? _pictureHeight; + /// + /// Левая координата прорисовки автомобиля + /// + private int? _startPosX; + /// + /// Верхняя кооридната прорисовки автомобиля + /// + private int? _startPosY; + /// + /// Ширина прорисовки автомобиля + /// + private readonly int _drawningWidth = 140; + /// + /// Высота прорисовки автомобиля + /// + private readonly int _drawningHeight = 60; + /// + /// Инициализация свойств + /// + /// Скорость + /// Вес + /// Основной цвет + /// Дополнительный цвет + /// Признак наличия магнитного рельса + /// Признак наличия второй кабины + public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool magneticRail, bool secondCabin) + { + EntityMonorail = new EntityMonorail(); + EntityMonorail.Init(speed, weight, bodyColor, additionalColor, magneticRail, secondCabin); + _pictureWidth = null; + _pictureHeight = null; + _startPosX = null; + _startPosY = null; + } + /// + /// Установка границ поля + /// + /// Ширина поля + /// Высота поля + /// true - границы заданы, false - проверка не пройдена, нельзя разместить объект в этих размерах + public bool SetPictureSize(int width, int height) + { + // проверка, что объект "влезает" в размеры поля + // если влезает, сохраняем границы и корректируем позицию объекта, если она была уже установлена + if (width >= _drawningWidth && height >= _drawningHeight) + { + _pictureWidth = width; + _pictureHeight = height; + return true; + } + return false; + } + /// + /// Установка позиции + /// + /// Координата X + /// Координата Y + public void SetPosition(int x, int y) + { + if (!_pictureHeight.HasValue || !_pictureWidth.HasValue) + { + return; + } + // если при установке объекта в эти координаты, он будет "выходить" за границы формы + // то надо изменить координаты, чтобы он оставался в этих границах + + if (x + 140 > _pictureWidth.Value) + { + x -= (x + 140) - _pictureWidth.Value; + } + if (y + 60 > _pictureHeight.Value) + { + y -= (y + 60) - _pictureHeight.Value; + } + + _startPosX = x; + _startPosY = y; + } + /// + /// Изменение направления перемещения + /// + /// Направление + /// true - перемещене выполнено, false - перемещение невозможно + public bool MoveTransport(DirectionType direction) + { + if (EntityMonorail == null || !_startPosX.HasValue || !_startPosY.HasValue) + { + return false; + } + switch (direction) + { + //влево + case DirectionType.Left: + if (_startPosX.Value - EntityMonorail.Step > 0) + { + _startPosX -= (int)EntityMonorail.Step; + } + return true; + //вверх + case DirectionType.Up: + if (_startPosY.Value - EntityMonorail.Step > 0) + { + _startPosY -= (int)EntityMonorail.Step; + } + return true; + // вправо + case DirectionType.Right: + if (_startPosX.Value + EntityMonorail.Step + _drawningWidth < _pictureWidth) + { + _startPosX += (int)EntityMonorail.Step; + } + + return true; + //вниз + case DirectionType.Down: + if (_startPosY.Value + EntityMonorail.Step + _drawningHeight < _pictureHeight) + { + _startPosY += (int)EntityMonorail.Step; + } + return true; + default: + return false; + } + } + /// + /// Прорисовка объекта + /// + /// + public void DrawTransport(Graphics g) + { + if (EntityMonorail == null || !_startPosX.HasValue || !_startPosY.HasValue) + { + return; + } + Pen pen = new(Color.Black); + Brush additionalBrush = new + SolidBrush(EntityMonorail.AdditionalColor); + + //магнитная рельса + if (EntityMonorail.MagneticRail) + { + g.FillRectangle(additionalBrush, _startPosX.Value, _startPosY.Value + 48, 130, 5); + } + + //вторая кабина + + if (EntityMonorail.SecondCabin) + { + Point[] second_cabin = { + new Point(_startPosX.Value + 125, _startPosY.Value), + new Point(_startPosX.Value + 132, _startPosY.Value + 20), + new Point(_startPosX.Value + 132, _startPosY.Value + 40), + new Point(_startPosX.Value + 125, _startPosY.Value + 40), + new Point(_startPosX.Value + 125, _startPosY.Value + 20), + new Point(_startPosX.Value + 132, _startPosY.Value + 20) + }; + g.DrawPolygon(pen, second_cabin); + g.FillPolygon(additionalBrush, second_cabin); + + } + + // Границы + Brush brush = new SolidBrush(EntityMonorail.BodyColor); + g.DrawRectangle(pen, _startPosX.Value + 5, _startPosY.Value + 20, 120, 20); + Point[] p1 = { + new Point(_startPosX.Value + 12, _startPosY.Value), + new Point(_startPosX.Value + 125, _startPosY.Value), + new Point(_startPosX.Value + 125, _startPosY.Value + 20), + new Point(_startPosX.Value + 5, _startPosY.Value + 20) + }; + g.DrawPolygon(pen, p1); + + // Окрас + + g.FillRectangle(brush, _startPosX.Value + 6, _startPosY.Value + 21, 119, 19); + + Point[] p2 = { + new Point(_startPosX.Value + 12, _startPosY.Value + 1), + new Point(_startPosX.Value + 125, _startPosY.Value + 1), + new Point(_startPosX.Value + 125, _startPosY.Value + 20), + new Point(_startPosX.Value + 5, _startPosY.Value + 20) + }; + g.FillPolygon(brush, p2); + + //дверь + Brush brWhite = new SolidBrush(Color.White); + g.DrawRectangle(pen, _startPosX.Value + 40, _startPosY.Value + 8, 10, 25); + g.FillRectangle(brWhite, _startPosX.Value + 41, _startPosY.Value + 9, 9, 24); + + //окна + Pen pen1 = new(Color.Blue); + g.DrawRectangle(pen1, _startPosX.Value + 13, _startPosY.Value + 4, 10, 11); + g.DrawRectangle(pen1, _startPosX.Value + 27, _startPosY.Value + 4, 10, 11); + g.DrawRectangle(pen1, _startPosX.Value + 110, _startPosY.Value + 4, 10, 11); + + // держатели + + Brush brBlack = new SolidBrush(Color.Black); + + //1 + + Point[] point1 = { + new Point(_startPosX.Value + 7, _startPosY.Value + 40), + new Point(_startPosX.Value + 45, _startPosY.Value + 40), + new Point(_startPosX.Value + 38, _startPosY.Value + 46), + new Point(_startPosX.Value, _startPosY.Value + 46) + }; + g.DrawPolygon(pen, point1); + g.FillPolygon(brBlack, point1); + + //2 + + Point[] point3 = { + new Point(_startPosX.Value + 123, _startPosY.Value + 40), + new Point(_startPosX.Value + 130, _startPosY.Value + 46), + new Point(_startPosX.Value + 92, _startPosY.Value + 46), + new Point(_startPosX.Value + 85, _startPosY.Value + 40) + }; + g.DrawPolygon(pen, point3); + g.FillPolygon(brBlack, point3); + + + //колеса + + //1-ое колеса + g.DrawEllipse(pen, _startPosX.Value + 13, _startPosY.Value + 40, 11, 11); + g.FillEllipse(brWhite, _startPosX.Value + 13, _startPosY.Value + 40, 11, 11); + + //2-ое колесо + g.DrawEllipse(pen, _startPosX.Value + 35, _startPosY.Value + 40, 11, 11); + g.FillEllipse(brWhite, _startPosX.Value + 35, _startPosY.Value + 40, 11, 11); + + //3-ее колесо + g.DrawEllipse(pen, _startPosX.Value + 85, _startPosY.Value + 40, 11, 11); + g.FillEllipse(brWhite, _startPosX.Value + 85, _startPosY.Value + 40, 11, 11); + + //4-ое колесо + g.DrawEllipse(pen, _startPosX.Value + 107, _startPosY.Value + 40, 11, 11); + g.FillEllipse(brWhite, _startPosX.Value + 107, _startPosY.Value + 40, 11, 11); + } +} diff --git a/ProjectMonorail/ProjectMonorail/EntityMonorail.cs b/ProjectMonorail/ProjectMonorail/EntityMonorail.cs new file mode 100644 index 0000000..5a5cfcc --- /dev/null +++ b/ProjectMonorail/ProjectMonorail/EntityMonorail.cs @@ -0,0 +1,52 @@ +namespace ProjectMonorail; +public class EntityMonorail +{ + /// + /// Скорость + /// + 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 MagneticRail { get; private set; } + /// + /// /// Признак (опция) наличия антикрыла + /// /// + public bool SecondCabin { get; private set; } + /// + /// Признак (опция) наличия гоночной полосы + /// + public double Step => Speed * 100 / Weight; + /// + /// Инициализация полей объекта-класса спортивного автомобиля + /// + /// Скорость + /// Вес автомобиля + /// Основной цвет + /// Дополнительный цвет + /// Признак наличия обвеса + /// Признак наличия антикрыла + /// Признак наличия гоночной полосы + public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool magneticRail, bool secondCabin) + { + Speed = speed; + Weight = weight; + BodyColor = bodyColor; + AdditionalColor = additionalColor; + MagneticRail = magneticRail; + SecondCabin = secondCabin; + } + +} diff --git a/ProjectMonorail/ProjectMonorail/Form1.Designer.cs b/ProjectMonorail/ProjectMonorail/Form1.Designer.cs deleted file mode 100644 index 89df0d6..0000000 --- a/ProjectMonorail/ProjectMonorail/Form1.Designer.cs +++ /dev/null @@ -1,39 +0,0 @@ -namespace ProjectMonorail -{ - 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/ProjectMonorail/ProjectMonorail/Form1.cs b/ProjectMonorail/ProjectMonorail/Form1.cs deleted file mode 100644 index 3a909b2..0000000 --- a/ProjectMonorail/ProjectMonorail/Form1.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace ProjectMonorail -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - } -} diff --git a/ProjectMonorail/ProjectMonorail/FormMonorail.Designer.cs b/ProjectMonorail/ProjectMonorail/FormMonorail.Designer.cs new file mode 100644 index 0000000..0c51d76 --- /dev/null +++ b/ProjectMonorail/ProjectMonorail/FormMonorail.Designer.cs @@ -0,0 +1,146 @@ +namespace ProjectMonorail +{ + partial class FormMonorail + { + /// + /// 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() + { + pictureBoxMonorail = new PictureBox(); + buttonCreate = new Button(); + buttonRight = new Button(); + buttonLeft = new Button(); + buttonUp = new Button(); + buttonDown = new Button(); + ((System.ComponentModel.ISupportInitialize)pictureBoxMonorail).BeginInit(); + SuspendLayout(); + // + // pictureBoxMonorail + // + pictureBoxMonorail.BackgroundImageLayout = ImageLayout.Stretch; + pictureBoxMonorail.Dock = DockStyle.Fill; + pictureBoxMonorail.ErrorImage = null; + pictureBoxMonorail.InitialImage = null; + pictureBoxMonorail.Location = new Point(0, 0); + pictureBoxMonorail.Margin = new Padding(3, 4, 3, 4); + pictureBoxMonorail.Name = "pictureBoxMonorail"; + pictureBoxMonorail.Size = new Size(882, 471); + pictureBoxMonorail.TabIndex = 0; + pictureBoxMonorail.TabStop = false; + pictureBoxMonorail.Click += pictureBoxMonorail_Click; + // + // buttonCreate + // + buttonCreate.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + buttonCreate.Location = new Point(14, 424); + buttonCreate.Margin = new Padding(3, 4, 3, 4); + buttonCreate.Name = "buttonCreate"; + buttonCreate.Size = new Size(86, 31); + buttonCreate.TabIndex = 1; + buttonCreate.Text = "Создать"; + buttonCreate.UseVisualStyleBackColor = true; + buttonCreate.Click += buttonCreate_Click_1; + // + // buttonRight + // + buttonRight.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonRight.BackgroundImage = Properties.Resources.право; + buttonRight.BackgroundImageLayout = ImageLayout.Stretch; + buttonRight.Location = new Point(829, 408); + buttonRight.Margin = new Padding(3, 4, 3, 4); + buttonRight.Name = "buttonRight"; + buttonRight.Size = new Size(40, 47); + buttonRight.TabIndex = 2; + buttonRight.UseVisualStyleBackColor = true; + buttonRight.Click += ButtonMove_Click; + // + // buttonLeft + // + buttonLeft.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonLeft.BackgroundImage = Properties.Resources.лево__2_1; + buttonLeft.BackgroundImageLayout = ImageLayout.Stretch; + buttonLeft.Location = new Point(735, 408); + buttonLeft.Margin = new Padding(3, 4, 3, 4); + buttonLeft.Name = "buttonLeft"; + buttonLeft.Size = new Size(40, 47); + buttonLeft.TabIndex = 3; + buttonLeft.UseVisualStyleBackColor = true; + buttonLeft.Click += ButtonMove_Click; + // + // buttonUp + // + buttonUp.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonUp.BackgroundImage = Properties.Resources.верх1; + buttonUp.BackgroundImageLayout = ImageLayout.Stretch; + buttonUp.Location = new Point(782, 353); + buttonUp.Margin = new Padding(3, 4, 3, 4); + buttonUp.Name = "buttonUp"; + buttonUp.Size = new Size(40, 47); + buttonUp.TabIndex = 4; + buttonUp.UseVisualStyleBackColor = true; + buttonUp.Click += ButtonMove_Click; + // + // buttonDown + // + buttonDown.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonDown.BackgroundImage = Properties.Resources.низ1; + buttonDown.BackgroundImageLayout = ImageLayout.Stretch; + buttonDown.Location = new Point(782, 408); + buttonDown.Margin = new Padding(3, 4, 3, 4); + buttonDown.Name = "buttonDown"; + buttonDown.Size = new Size(40, 47); + buttonDown.TabIndex = 5; + buttonDown.UseVisualStyleBackColor = true; + buttonDown.Click += ButtonMove_Click; + // + // FormMonorail + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(882, 471); + Controls.Add(buttonDown); + Controls.Add(buttonUp); + Controls.Add(buttonLeft); + Controls.Add(buttonRight); + Controls.Add(buttonCreate); + Controls.Add(pictureBoxMonorail); + Margin = new Padding(3, 4, 3, 4); + Name = "FormMonorail"; + Text = "Монорельс"; + Load += FormMonorail_Load; + ((System.ComponentModel.ISupportInitialize)pictureBoxMonorail).EndInit(); + ResumeLayout(false); + } + + #endregion + + private PictureBox pictureBoxMonorail; + private Button buttonCreate; + private Button buttonRight; + private Button buttonLeft; + private Button buttonUp; + private Button buttonDown; + } +} \ No newline at end of file diff --git a/ProjectMonorail/ProjectMonorail/FormMonorail.cs b/ProjectMonorail/ProjectMonorail/FormMonorail.cs new file mode 100644 index 0000000..792bb5e --- /dev/null +++ b/ProjectMonorail/ProjectMonorail/FormMonorail.cs @@ -0,0 +1,90 @@ +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 ProjectMonorail +{ + public partial class FormMonorail : Form + { + private DrawningMonorail? _drawningMonorail; + public FormMonorail() + { + InitializeComponent(); + } + + private void Draw() + { + if (_drawningMonorail == null) + { + return; + } + Bitmap bmp = new(pictureBoxMonorail.Width, pictureBoxMonorail.Height); + Graphics gr = Graphics.FromImage(bmp); + _drawningMonorail.DrawTransport(gr); + pictureBoxMonorail.Image = bmp; + } + private void buttonCreate_Click_1(object sender, EventArgs e) + { + Random random = new(); + _drawningMonorail = new DrawningMonorail(); + _drawningMonorail.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))); + _drawningMonorail.SetPictureSize(pictureBoxMonorail.Width, pictureBoxMonorail.Height); + _drawningMonorail.SetPosition(random.Next(10, 100), random.Next(10, 100)); + + Draw(); + } + private void ButtonMove_Click(object sender, EventArgs e) + { + if (_drawningMonorail == null) + { + return; + } + string name = ((Button)sender)?.Name ?? string.Empty; + bool result = false; + switch (name) + { + case "buttonUp": + result = + _drawningMonorail.MoveTransport(DirectionType.Up); + break; + case "buttonDown": + result = + _drawningMonorail.MoveTransport(DirectionType.Down); + break; + case "buttonLeft": + result = + _drawningMonorail.MoveTransport(DirectionType.Left); + break; + case "buttonRight": + result = + _drawningMonorail.MoveTransport(DirectionType.Right); + break; + } + if (result) + { + Draw(); + } + } + + private void pictureBoxMonorail_Click(object sender, EventArgs e) + { + + } + + private void FormMonorail_Load(object sender, EventArgs e) + { + + } + } +} + + diff --git a/ProjectMonorail/ProjectMonorail/Form1.resx b/ProjectMonorail/ProjectMonorail/FormMonorail.resx similarity index 92% rename from ProjectMonorail/ProjectMonorail/Form1.resx rename to ProjectMonorail/ProjectMonorail/FormMonorail.resx index 1af7de1..8b2ff64 100644 --- a/ProjectMonorail/ProjectMonorail/Form1.resx +++ b/ProjectMonorail/ProjectMonorail/FormMonorail.resx @@ -1,17 +1,17 @@  - diff --git a/ProjectMonorail/ProjectMonorail/Program.cs b/ProjectMonorail/ProjectMonorail/Program.cs index 05e6dd5..3f68a06 100644 --- a/ProjectMonorail/ProjectMonorail/Program.cs +++ b/ProjectMonorail/ProjectMonorail/Program.cs @@ -11,7 +11,7 @@ namespace ProjectMonorail // 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 FormMonorail()); } } } \ No newline at end of file diff --git a/ProjectMonorail/ProjectMonorail/ProjectMonorail.csproj b/ProjectMonorail/ProjectMonorail/ProjectMonorail.csproj index e1a0735..341e41a 100644 --- a/ProjectMonorail/ProjectMonorail/ProjectMonorail.csproj +++ b/ProjectMonorail/ProjectMonorail/ProjectMonorail.csproj @@ -1,11 +1,26 @@  - - WinExe - net7.0-windows - enable - true - enable - + + WinExe + net8.0-windows + enable + true + enable + + + + + True + True + Resources.resx + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + \ No newline at end of file diff --git a/ProjectMonorail/ProjectMonorail/Properties/Resources.Designer.cs b/ProjectMonorail/ProjectMonorail/Properties/Resources.Designer.cs new file mode 100644 index 0000000..0e4ba07 --- /dev/null +++ b/ProjectMonorail/ProjectMonorail/Properties/Resources.Designer.cs @@ -0,0 +1,137 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +namespace ProjectMonorail.Properties { + using System; + using System.Drawing; + + + /// + /// Класс ресурса со строгой типизацией для поиска локализованных строк и т.д. + /// + // Этот класс создан автоматически классом 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 { + internal static Image free_icon_right; + internal static Image free_icon_left; + internal static Image free_icon_up; + internal static Image free_icon_down; + 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("ProjectMonorail.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 верх1 { + get { + object obj = ResourceManager.GetObject("верх1", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap лево__2_ { + get { + object obj = ResourceManager.GetObject("лево (2)", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap лево__2_1 { + get { + object obj = ResourceManager.GetObject("лево (2)1", 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 низ1 { + get { + object obj = ResourceManager.GetObject("низ1", 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/ProjectMonorail/ProjectMonorail/Properties/Resources.resx b/ProjectMonorail/ProjectMonorail/Properties/Resources.resx new file mode 100644 index 0000000..8b5b0fc --- /dev/null +++ b/ProjectMonorail/ProjectMonorail/Properties/Resources.resx @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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\верх1.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\лево (2).jpg;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\верх.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\лево (2)1.jpg;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\низ1.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/ProjectMonorail/ProjectMonorail/Resources/верх.jpg b/ProjectMonorail/ProjectMonorail/Resources/верх.jpg new file mode 100644 index 0000000000000000000000000000000000000000..30c4d2b1664a44ea20849f46bfb364f697e21bdc GIT binary patch literal 10872 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 bJ%!~_1~$d{;De-+L|T~QA%$5(Qt$r&%P)ri literal 0 HcmV?d00001 diff --git a/ProjectMonorail/ProjectMonorail/Resources/верх1.jpg b/ProjectMonorail/ProjectMonorail/Resources/верх1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4c6a212df3a2e422785a5bd8c9cedd4da812c10b GIT binary patch literal 16317 zcmeHO30PCtwmwWEpdt#QAf}3-6@jW~sv>bHj^!c_L_tWE3j#63DuY1CaRLR3hzJN& zf+8Rwq#z-JkjN|of*@mnFqBCMNdUPg+k0*6ZD0G|<&gamzI`}Z|5|IW zz5ca!kXED{n7@DbzTJSFoE)$h{Q(dTunSO-mw)#{FGcjFG+RkYQBg@%S$Wp%IjVE! zsHv){&7HSk{@i&Q^VHPlFPg8hP*Y1wYmU11;zgQ^7iel}zI%wA0{TCSN-9c9Dw=cE z=4$@x3wZ`;%$Dz#?^cjo0my5}DQL(cWdH^M+j4i);jb`uyVtxbC*?A z7ilkEqGMpVYW2r!%rWTpB1Yc|}D9Mdf$6?0;~z19KGQP~$0R060K)_Fn{?Jc(y1Rz!iMjal` zXXVOGw^>s6NsSQTauZSTCR#wT6l{w3NqN3KdZP5!zB%;>!04~3p-*6CO7w#^I@Hu~JLPjT#<8$!ri28R*rYj9v;|gT(wdi6td%TgWPd`BJ-qD* z0(dQ^AV3#6269yx;By+MN?5XV*6O{U;uNM}*;l+-VJ?H@SlLLdHtdHZkI}1TZ^Z6s z1fi#~zo2ncB~wQs+LG6XaedFWR6o+GjnnJGJLiXigZF*laVfi#9_^Z_{>I+2`B9-| zQrjCpQVqUYJ7Vori!GnE*~z)%QKqcHXg^z@-5rI?tCQ+)2}~^x*Ckv^cC2ES`n0H* z7nNe5Nf&q|TZ}8Sd}u;t`{*|A||HhwK*N zM8tRndlUf{Vg(Nq)m2dMy+v&gmTbN-S8C8h?8j(qg!Tsa;Wov(Q*ED+r|LSb%h^Hf zxr1>B(jG+P-3+|f)^L6AwBUuidVQ|5K7l6egkXqi{K4k8ZZ#9Nue2o(L#1mn#?z-& z`yPH5>*ZYyZ#BF22e)swxngA6WveBLK>)>eS#FXni2|@Rg_gYtP*PU^h0TU45yR-@ zcxDL#%@3PcTjALi)yvahE=hr35Qpj~^OAV6?t|5IsPR4=w;j>V)6Q#Q%P z3Nop_KT(VFD@-L}_pu-Jr6qC-ciA6@C$^A&vx+I5Tu z8(?G90~^VD?51dV@n6Z3{u}&WcR&{RhiwwSAW5NL#C4}4K;ARRv%qPePxUQ^;v_FgH3B+gMAH^QbHFhQj>@Wnp&s`^Rfl} zayxvm`L+PVyN`x_RL&EM~oGtyX?@&Uwt_q`^_< zR==+hpc*Twg6IMU;NP!lvt8-WHqL<>@N!pzYN1vJ^ti00D%G{X>gkD&nn7rffR5XM zDbR-E3Vb3?hTV;KUtQ%wFT+6}U*kPQ01V|!*K9%H2)49SzB?$vQ0%p}Tx>_49{4() zYAijleVLjBPi>gy^Q?q+2vF{qw9hT2GCsiQz4 zF=H09ezIk=7y&|j2;xBuY|gR0XmK75YY(X${bzB;++x1s8zqWm+AefclZ^P39=FFy zp9Ud7!Yz6iJbGG|E~R7=G%keN2px;S%n|KKcb$}bTRS=(PFM^ZM#P`r8gTyj5x~Y$ z^SuKvo|5Ap9xgZ3F5IkIdCQ{Q65|`{rwV*) zv5sOV5Iy5wE2#Ub(AwMB^X{epoiNynIpfaa&< zro)m9cmiMP`CfbdgFWTma3A|rB7g?97N=zvt^@fwR4DX2wm#<;u<}-kZdz>HV?Fkb zEss!NS{!|KR%NrM1z8(bdGCVrLVxc7*8v@NfK_8F7P~z04DoOTVOkoi|e8%Z?(|bhL1grD0l1##tf*VO*8H5vEUDgJ*{WW1`jn6sl z`xcM6xWGbpAn8};&B|{Er3+%FTCq0Ar3;10W6ocZ1Qqwr%8q#DxLDA}>tHd=qo&}; zt5V$YTddw@@@|jYb#nGT-eGQ?ofPqx{x7-`Tll8Zh5V`Kd9pO>lFXoNGaJhGdZ%Ly z;#u$bhttOGrXqU?0SdT$V<3R^E5-XwDS)GsWEaI#z#knHF!4fWu;Gg4TJK#%-Cp~A zj_iaA+=!9%`(OnvzL`W@i>0sl8?6q#F~(Wv1ZSCeWG!8Jwjv`xHeQm5? zCUD{1TyZK>u;`ysC_qRL<1R6`6i)OyKJFtd?C@=mzPEgZ0RrI3^Xp<%!JN=%S?I>~ zUGn~mf75qC%Y~6;AV4)7Vqpa}ux)axh21LL(I{3?ubiajPOOI>n$ELB3l3hI?>*n*>Ej_ZZ^!%v|N z-SM*aqmewJo~-bWeJGm4$5?v2p;gKT#9$D6eY#tUe{8~Wy$2ChE-sQ9t6d+yIZ)%l z;x#x@L{H|<#_q~6#vC_n4oT4YwiE##J|T-eQTB@f$|C!I*nnOW7pIcY?%E&L{_*@E zTSDQ3gUW9$Eh#oAmE-)4%9+cXf7}~djsSt7iO({&R^4rn`bKQq1GX?^slp2i@=;i#lg_(VR1tC`-y!Zv%UFC-u!GMf*q1 znv1oXSZDCIN|H^N;L2*HMufW4ad?V-aCqijvgVY z4H-4DN!IO8ZDkp(wI@anJ4xfWDY{KKC0ul6>% zR;eiz-)nk>W&Vod)Dt?;_%_qRmuS5slA}q&QyjbC1b#`u72~}8lyET# zC6cRTX4Zx55R}~k;AdvGtFB5>ZH|=coW5?RJH#-?9AetXA9!wWwDL^8ZDs+m`hLj& z$}kefz^cI#53rIu;AqJ``?lJdQwovt9u2HhQWrw&7Ve0zqbv2!_F*^(@rm6NsVL!E@CwJ zFVul4pgX_a-cgpuGIqCE+qBZ(VbcmyZrECu?Tc3I3pO89SS#a0a{*u44Rg0gl-)v? z%wFsHgnbW3wj`H2I5->-J&3r*_9(5#Z~d8E{THmG@7EXJvK!PPV&)a1)t1OoQG;9i z%b2rFTc%CG(6=@`PRncb(*V$tmd)iINTN1@vqzS0O-eBgce59%_3aF9PH11^4u8(NrqJje_NQoNgT>DVWt?=7{2MW zz32&*Oo~8JGNqGYRKDmo__%J^;HSlw9~WOf=O%TZme@Eqr1-9Bh7yG_-q_9qz>al^d6sCV@{^YvY{?68$Cod`#OWuy$k zMb>iRtmNJzZ!~pkHg$Q;u-fU9pI`7KputLi(}1_gut<3-0?l-LP225zQ|Nt!`PI2E zDH%qKIU?Il&)_k|y2KILz}n7{7q0J(2meOQQLry%t$1CyitaZ3GTh%HKHY7?pq$bF z9T$E==h9orQ%@S%XbCIuOTvkwqSP?6n|bX6an~@LC6DhTK;34Xu(^XF6}4ngYuOm7 zrNm5nq`{on)8?~SJ<8unpZaFHmDaTrdOHdRUdFlu@a>0L+THwe`aJ15$T#UiU5V)O z$lllY=M}=^tCsH543(OMMQ!Z-Nx}2q&Fq!7jtqH9HhW~b>^1H=yfSC6L`(BrjeR}7 z2Pf4$F!ho)br-tnxouW|WKY*6qm+cu2AEvXLV7DnlQq5D3r28|5uJD3zgxDfv3oFR z%&u$Dj-egbUq+rVPCJ#&p<^lzJ_a9;qgyidv)^3$AEQ@pWefgN$Js<~3-8@IL|y*G z1@fW4$mV8%)mPE>jY-R}h#;ehY}sC;w^{_u-$$h!#DdelO& zcm)EubNEYKMFeHazH=>DJLBxa`mvQ@Z00VdTb=9_QZRGt6+9IXjvg?g)YcX$Qw5D8zlY)(+iu~=sH!=Z7; zZIpRE7#C!5`3i*3UTw!LK!DPFEC5~2sn-!eaE>dr#0ZAS7jYBAy*TMoCR(8(kZk_* z?u#Wbe54BxbXOK5KwDiUb)7)Q%8Pp$esYkrt@%O2o~JdI{oWIVh)e?7Q*#9%!R*U$ydJ5%fm)$6fp<>BqXkmrLN6cpK@#eMWk{HJ8xKBmC zHwsOs5XRBvl3eUOBKX!F2)TY^h*mjc4PmPV* zjR0=j=}A9hr{AObZ{dU5{VG@$Cq<39p%2XHV@4nE^MUux&BW6m`p%3# zX7n+$UVi8UGy0g($NPNXeRDJM^oPDPqmLPV%&eCm`oN4nX7uqsA9&xKg)dq!yp#sE zw)8$!fKP5lfak%4mlFX4^x?Wb<G6e z>pD`6X@VF$I)5?>_+1*yrQdb4WztPG3T{@)nJ2)b_)#w?4;Ymy* z?89E8I4K$~rtEOidHOtQtkN7DZ`$LrOWkgo8Ujea5GqSG$i4k{Ck(@T>t?^Pjb|PA zaCwqubav3K$jlOx_ByqC@sOV9^(pV~b-nE`sjDa?w$M(K;$Mw{(^}wNx-Qm(D zogmsLXh$10!JuG(aDzRmBiIAa8Dooe!lCn~m4xZJ7tof#EFXe2jF5NxpmHxkx;dtg zE}K=TfdE&w(&61nf2foU%DWE73FxWs!!<L>dxbl;t(0_{zVId zEaF}BLk@nij+N@PlBF;FN^spps5I#wu0tzYiXy2tFh6~(c7$;7XT13*-`AMA|93i8 P@vpm-|KDr?B5nT#+RTFe literal 0 HcmV?d00001 diff --git a/ProjectMonorail/ProjectMonorail/Resources/лево (2).jpg b/ProjectMonorail/ProjectMonorail/Resources/лево (2).jpg new file mode 100644 index 0000000000000000000000000000000000000000..c983214080fc415a4e83a30fa5b6ab370355731d GIT binary patch literal 10872 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

M=_#x>0 zgcT8>aJzAb-yr)oSZZ4JCM4hBE>9?@wJcXBjB_d6VvdZod&JS{k!*HWr-{05`b2Pt!?5=V!O-|W-9O#`>h&miCy zG0kVz$!O>RwO>@7c7@F*qTaJmsSir0ly$ModRU_&#_9wLx z>&D3{R82ChYZY@6kjs*zVgM&V!=={yN+@vz5vYIyq?+C+k#wKdymALyCLu~0#K}2d zq-$azDPw8ErF(kOin?nW=7ljeoN0pI=4U*}|4BBNLKXYC6@Je(%7Z?{@36^%ni4d+2=4p=0af9k-s1vb-60^Bpt^?%u_YKus0_5e{&`y#3-)F4FkQ+b%p%1 zdlKF^t)e%(58hua9qwC+;FE_LR$k2R?XUD<)bof=o;{V~BVmxor<4GwMDmq(5&>U! zI1mauMcL`m5KHl^kG-QZ9>uM6&T6shVs>{(lNgtt4X=t;zjQ=ZboP57eAjHqzzWc8 zdb(>JzEn90(eH7LBbn!?D%+BM?=#;!cWluE15N>+^IvTT^}>L20M{3Vpw$sPr`zIk zM|VxM%+{Tc^|jFOp_=IIw}S-qj=c=%(AleuZ562Sb2%*qy}T!4wbO|}fM#P-5kDQ< z6P{r!shlw{SbsBB)dzB>;$FvlJoeXQj4U*=3z#{MI(yFm*-?bv6(wo~QUHANZb<~d z)nMn1+0N@*>cv)>|Nj5~SYT9XZ&S|)?~Tc$+8a}?wI@d4-JV0=D89F4TK4QnW%YtMBV;9JFFDEg0iGWD%(b=PwzgV zlcxrs(DCr_r@Je3*)(7#?I^J+&I9~I2$d0@T&r5rHrmjmxT5NPA-ZA$4u~6Pz)xyC z7sa0Vm&T;%KDyX7d``Q#1Ify`_;8c^O_bo4{pYkiwJPUQ#`T~U29T(@|7oQS_dS`q zL+5kz;*#EkB2fLO=ocS;p)BRigT<|~%-@{a`Y^apVv~1ttOCj?tIG$ikDk`oPOx{8Z!znn z(|P=>L4$NN6m1&8WK3%2Q#$T$+?WxhS<}W+*LgVuS$+AagV62ap(FA7O<^3uL8|h8 z7p#m{nVV_+=rvR{PwiWLNMMgRIEYSZODePM9lziP-;@?YxHheGy>!|~2(V8n{}_2N zZQ;o0N;wC)CK=%(WWWP7)5rVNQo;-4ep3PJEHwSYo=4&>W8PK|YHmDR=qg};9@Lc} zjF*gU%@^0bIrmAhI7VFmY}`b7zs-$G={Hmg12gKpgz}WN!1SM_G?z2KDPAs`Y4AIM zD2&!wjOuz76g#7z2AmG6S>`m2o?^@Cf8Lj-p`2B{a)g0jzoRJ4;mr7xW{v0v5`vch zm!f;)96x`>Cl59Ac5i&+*u;n=^P`c|#zB5pmR5!}P|5e?Oj{7G={fqiYpoS?7^zcB zizrV_L7E`VGlTLVmfULJMje^$u`1e#ITguBe+d)ePa09IQd}PCjD|ZlD)x~Z3gAa1 z3(lisl2n|Tb>lgiDIzDEW@Mx^8#z=A(eJQ1in*n3LE`~Rfn1NdQz+@mJ}mpCeKDVl zJ`#SBOu(=5x$TH}A^(7=U`oYKu31#jzrnUg`Zsy=DXgjAN>Wh~!t&{4G5)orKmc&> zil#>`vSoh3If&PfH{l{+Zu?rY;2fIysh3TDhD?K~0i<)h4Ci+{;<-vOZc6$Il<9I( zoDam<@3`;eS$~cdY3cZny%Gs4kAX3a=vQ?KsU9?$1_f~xc{Bb!@IK3B3zW`mJZtz_0=6<#*mTb|W^PIkfvpoAX>tJy}Ze zNo=~ho-A|%l5x7|@&k(6s~>AAIsq>o0W%d{H2;T3PvAA-N%Rwk%06^tTwIH?+zBG zn@N_0bKUiApA5L3O!%n7#pP^f5kx@3C;>Sc?>(r8e-PW6pwgfifC*`siRP*% z@yWP1V1tj3ZJnadEYr9okviUHxoss%@C6jK!Zszgby7}8*=+uS=C6S=s7GJ0v(7HR zSOi{wUN27lSv`=GduW`eQRoumZyDFx^I-{bU5TRjDx)uB9;sKH*;#c&PxKLH*OHkZ Xr(=?x4n0gPPN0S<9G0IkAolzZ_q~St literal 0 HcmV?d00001 diff --git a/ProjectMonorail/ProjectMonorail/Resources/лево (2)1.jpg b/ProjectMonorail/ProjectMonorail/Resources/лево (2)1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5e2cbf2ec7c7e5a821cb5d43aa562d2620da584e GIT binary patch literal 16310 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 b-iOYt!^}F&U|h`z#okPr1O6Od6#lU literal 0 HcmV?d00001 diff --git a/ProjectMonorail/ProjectMonorail/Resources/низ.jpg b/ProjectMonorail/ProjectMonorail/Resources/низ.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a4050a78e561a3ddbecf63984ee065a279ad882b GIT binary patch literal 10872 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 z KWo_U5YyScfemL(&a^l_jp0GI0v%<>Exq@u-ufrTIL?nX(lc1~Rn1|{LYt))J zAMFB66e*jcHdM)x=(9fxq~f}5Ty*_ zQbC@7=Au#I5UyzQvTornfj^iQbsTyC{8x#A#Ig=4$6j$Vif!^l2 zLjKu33GbU$(VN`|?=O}P_pLx)9r>Ik0G zZE?AyyCzy@>(0meT4?xCO?39#K>~WmUIujN>{Z6L3RL*HoR)%K-V?Ff=|mtvvoWcN zpN{Pb&#;wL&X^ahznQA)136Q1uj4%)`)e{r78=zC_?Xw614&;0G_;C z5&>{F*m+~N^ZJ&0u~p{3fB!!g7**Qa)bqi6WAdo>##C$Vi4l0WXV*81?`@fuJsXml z581^?4ezYNcQ4A{Ww84T0`DzMBl+K=)WUbEe$wKe4bAVxWRz;xEI-KH{!VY)HP}uD z@}1tq`4b6usstSN5JM_r4}i?@UVz2=@ACWzS&7+8PV&6~Y+^rR{*8{Q-UG0gkpF%B zuUX(HJMZniIrW}<^RI}5)Zn2T42pn5;M<=cfeAtbuxo=mb3;3Cys!fJkqKL6+X(gP z-4i-_YVd@PhlfAiU7^dS0W)bwiA`}H;2%P$jPT@I)snW+h91QgRqqSY6%%kk+&BY% zQscQO_Qbz5CPnwr#jfFV+Ql76R>sALo7``r1h?!zr{$?tIhQi72emMOM8*A2D{Z*% z$pPLt#^d=O6>OV!l`0xv5DQ_MuZj~ihvGDSOqcfddQI&^-T)+!ojkDuc!v^!` z_{&yrW|kP)1o@K4^XPw7zzNy^DN{ zStp&&<6jLLq?@5=(+DPGQZt{@ad+d!j3CXLHkP{1%NfY(%SRoAZVwL~iPvum;}8x~ zmG`?~WwgrNOyftdp`v+e-{M08d&I#(bV^%NnPu_9geMq60|0JckocT@ha?wnK z-vLBnw9aBw*Q=n|8T~ZibWqJQr)l&QTTcJ;zBCQxtm>5`4E*{XMQILa#-B86L_d%a zwEVvm-5cll`71tosF}BW;~U2&MkJXZjhr?P^1HIMGOU40z9(nef@n?8(Z^kDt(e0| zomyH%d14CE1Zkcbln1foR{J*U$ZYpj(MHUvNJjcgmuE@@fY&&f;?IoUKLBc<8Mp<;-Bhs{yUEp-bT4^Rr^dd!_dNmuq^*)Q#j z`CRmo@QY*uewEK{N5l*H2Sf!^Dt2jeJ9WQbF4^9$A9dVNLYCcjA2B-s!K@qpvg2Sh@;4x@khG!n8q7Cg6EJc zE050(|GJ)m03@{tET0T)OsaoTdBDtIV8Y)_$+mUsap#<>sl|2K?r7sg!a0+9#p0TaT zuiUDz^|ECCAJLubu5bHf!1-jtM;$IMXETc+0un|E$jNx`K|TC~*wzG<2E_nONW)At zS2c-G#=QX>e0*%{6m@2q#wCf=@ixnCD^Y?kpr94DDY31SayrUp^A9wC4U|DW`huNx zcKO93@cQ$5aq7?Nft=h!<2;Q*ml%J`xYnKzONi@A6vbB=eHrsez2eNysv~-$k1)HI a%=|bVlk9ZpVPbItHB8~K{EPvy=YIgBFNXL4 literal 0 HcmV?d00001 diff --git a/верх.jpg b/верх.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4c6a212df3a2e422785a5bd8c9cedd4da812c10b GIT binary patch literal 16317 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 P@vpm-|KDr?B5nT#+RTFe literal 0 HcmV?d00001 diff --git a/лево (2).jpg b/лево (2).jpg new file mode 100644 index 0000000000000000000000000000000000000000..5e2cbf2ec7c7e5a821cb5d43aa562d2620da584e GIT binary patch literal 16310 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 b-iOYt!^}F&U|h`z#okPr1O6Od6#lU literal 0 HcmV?d00001 diff --git a/низ.jpg b/низ.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e0108918a7c9ffc746c2d09baf8a03cb30faf994 GIT binary patch literal 16332 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 Date: Fri, 14 Feb 2025 16:34:27 +0400 Subject: [PATCH 2/2] =?UTF-8?q?=D0=BB=D0=B0=D0=B1=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ProjectMonorail/ProjectMonorail.sln | 2 +- .../ProjectMonorail/DrawningMonorail.cs | 192 ++++++++---------- .../ProjectMonorail/EntityMonorail.cs | 33 +-- .../Properties/Resources.Designer.cs | 10 +- 4 files changed, 106 insertions(+), 131 deletions(-) diff --git a/ProjectMonorail/ProjectMonorail.sln b/ProjectMonorail/ProjectMonorail.sln index 85a501b..6ef2aff 100644 --- a/ProjectMonorail/ProjectMonorail.sln +++ b/ProjectMonorail/ProjectMonorail.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.11.35303.130 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectMonorail", "ProjectMonorail\ProjectMonorail.csproj", "{FFFB69FA-2DD3-4887-B6FC-9BA8B6F356A2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProjectMonorail", "ProjectMonorail\ProjectMonorail.csproj", "{FFFB69FA-2DD3-4887-B6FC-9BA8B6F356A2}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/ProjectMonorail/ProjectMonorail/DrawningMonorail.cs b/ProjectMonorail/ProjectMonorail/DrawningMonorail.cs index 19f88cf..25d7ea4 100644 --- a/ProjectMonorail/ProjectMonorail/DrawningMonorail.cs +++ b/ProjectMonorail/ProjectMonorail/DrawningMonorail.cs @@ -1,4 +1,6 @@ -namespace ProjectMonorail; +using static System.Windows.Forms.AxHost; + +namespace ProjectMonorail; public class DrawningMonorail { @@ -25,11 +27,20 @@ public class DrawningMonorail ///

/// Ширина прорисовки автомобиля /// - private readonly int _drawningWidth = 140; + private readonly int _drawningWidth = 110; /// /// Высота прорисовки автомобиля /// - private readonly int _drawningHeight = 60; + private readonly int _drawningHeight = 56; + /// + /// Минимальный отступ слева + /// + private readonly int minLeftMargin = 0; + /// + /// Минимальный отступ сверху + /// + private readonly int minTopMargin = 0; + /// /// Инициализация свойств /// @@ -48,6 +59,7 @@ public class DrawningMonorail _startPosX = null; _startPosY = null; } + /// /// Установка границ поля /// @@ -56,8 +68,6 @@ public class DrawningMonorail /// true - границы заданы, false - проверка не пройдена, нельзя разместить объект в этих размерах public bool SetPictureSize(int width, int height) { - // проверка, что объект "влезает" в размеры поля - // если влезает, сохраняем границы и корректируем позицию объекта, если она была уже установлена if (width >= _drawningWidth && height >= _drawningHeight) { _pictureWidth = width; @@ -66,6 +76,7 @@ public class DrawningMonorail } return false; } + /// /// Установка позиции /// @@ -77,8 +88,10 @@ public class DrawningMonorail { return; } - // если при установке объекта в эти координаты, он будет "выходить" за границы формы - // то надо изменить координаты, чтобы он оставался в этих границах + + // Проверка на минимальные отступы + x = Math.Max(x, minLeftMargin); + y = Math.Max(y, minTopMargin); if (x + 140 > _pictureWidth.Value) { @@ -92,6 +105,7 @@ public class DrawningMonorail _startPosX = x; _startPosY = y; } + /// /// Изменение направления перемещения /// @@ -103,31 +117,27 @@ public class DrawningMonorail { return false; } + switch (direction) { - //влево case DirectionType.Left: - if (_startPosX.Value - EntityMonorail.Step > 0) + if (_startPosX.Value - EntityMonorail.Step > minLeftMargin) { _startPosX -= (int)EntityMonorail.Step; } return true; - //вверх case DirectionType.Up: - if (_startPosY.Value - EntityMonorail.Step > 0) + if (_startPosY.Value - EntityMonorail.Step > minTopMargin) { _startPosY -= (int)EntityMonorail.Step; } return true; - // вправо case DirectionType.Right: if (_startPosX.Value + EntityMonorail.Step + _drawningWidth < _pictureWidth) { _startPosX += (int)EntityMonorail.Step; } - return true; - //вниз case DirectionType.Down: if (_startPosY.Value + EntityMonorail.Step + _drawningHeight < _pictureHeight) { @@ -138,6 +148,7 @@ public class DrawningMonorail return false; } } + /// /// Прорисовка объекта /// @@ -149,109 +160,72 @@ public class DrawningMonorail return; } Pen pen = new(Color.Black); - Brush additionalBrush = new - SolidBrush(EntityMonorail.AdditionalColor); + Brush additionalBrush = new SolidBrush(EntityMonorail.AdditionalColor); + Brush BodyBrush = new SolidBrush(EntityMonorail.BodyColor); + Brush CraneBrush = new SolidBrush(Color.Black); - //магнитная рельса - if (EntityMonorail.MagneticRail) - { - g.FillRectangle(additionalBrush, _startPosX.Value, _startPosY.Value + 48, 130, 5); - } - //вторая кабина + //корпус + g.FillRectangle(BodyBrush, _startPosX.Value + 10, _startPosY.Value + 30, 62, 12); + g.DrawRectangle(pen, _startPosX.Value + 10, _startPosY.Value + 30, 62, 12); + g.FillRectangle(BodyBrush, _startPosX.Value + 22, _startPosY.Value + 16, 4, 15); + g.DrawRectangle(pen, _startPosX.Value + 22, _startPosY.Value + 16, 4, 14); + g.FillRectangle(BodyBrush, _startPosX.Value + 37, _startPosY.Value + 8, 5, 23); + g.DrawRectangle(pen, _startPosX.Value + 37, _startPosY.Value + 8, 5, 22); - if (EntityMonorail.SecondCabin) - { - Point[] second_cabin = { - new Point(_startPosX.Value + 125, _startPosY.Value), - new Point(_startPosX.Value + 132, _startPosY.Value + 20), - new Point(_startPosX.Value + 132, _startPosY.Value + 40), - new Point(_startPosX.Value + 125, _startPosY.Value + 40), - new Point(_startPosX.Value + 125, _startPosY.Value + 20), - new Point(_startPosX.Value + 132, _startPosY.Value + 20) - }; - g.DrawPolygon(pen, second_cabin); - g.FillPolygon(additionalBrush, second_cabin); - - } - - // Границы - Brush brush = new SolidBrush(EntityMonorail.BodyColor); - g.DrawRectangle(pen, _startPosX.Value + 5, _startPosY.Value + 20, 120, 20); - Point[] p1 = { - new Point(_startPosX.Value + 12, _startPosY.Value), - new Point(_startPosX.Value + 125, _startPosY.Value), - new Point(_startPosX.Value + 125, _startPosY.Value + 20), - new Point(_startPosX.Value + 5, _startPosY.Value + 20) - }; - g.DrawPolygon(pen, p1); - - // Окрас - - g.FillRectangle(brush, _startPosX.Value + 6, _startPosY.Value + 21, 119, 19); - - Point[] p2 = { - new Point(_startPosX.Value + 12, _startPosY.Value + 1), - new Point(_startPosX.Value + 125, _startPosY.Value + 1), - new Point(_startPosX.Value + 125, _startPosY.Value + 20), - new Point(_startPosX.Value + 5, _startPosY.Value + 20) - }; - g.FillPolygon(brush, p2); - - //дверь - Brush brWhite = new SolidBrush(Color.White); - g.DrawRectangle(pen, _startPosX.Value + 40, _startPosY.Value + 8, 10, 25); - g.FillRectangle(brWhite, _startPosX.Value + 41, _startPosY.Value + 9, 9, 24); - - //окна - Pen pen1 = new(Color.Blue); - g.DrawRectangle(pen1, _startPosX.Value + 13, _startPosY.Value + 4, 10, 11); - g.DrawRectangle(pen1, _startPosX.Value + 27, _startPosY.Value + 4, 10, 11); - g.DrawRectangle(pen1, _startPosX.Value + 110, _startPosY.Value + 4, 10, 11); - - // держатели - - Brush brBlack = new SolidBrush(Color.Black); - - //1 - - Point[] point1 = { - new Point(_startPosX.Value + 7, _startPosY.Value + 40), - new Point(_startPosX.Value + 45, _startPosY.Value + 40), - new Point(_startPosX.Value + 38, _startPosY.Value + 46), - new Point(_startPosX.Value, _startPosY.Value + 46) - }; - g.DrawPolygon(pen, point1); - g.FillPolygon(brBlack, point1); - - //2 - - Point[] point3 = { - new Point(_startPosX.Value + 123, _startPosY.Value + 40), - new Point(_startPosX.Value + 130, _startPosY.Value + 46), - new Point(_startPosX.Value + 92, _startPosY.Value + 46), - new Point(_startPosX.Value + 85, _startPosY.Value + 40) - }; - g.DrawPolygon(pen, point3); - g.FillPolygon(brBlack, point3); + //стекло + g.FillRectangle(additionalBrush, _startPosX.Value + 52, _startPosY.Value + 14, 21, 16); + g.DrawRectangle(pen, _startPosX.Value + 52, _startPosY.Value + 14, 20, 16); + //гусеницы + g.DrawLine(pen, _startPosX.Value + 8, _startPosY.Value + 42, _startPosX.Value + 10, _startPosY.Value + 42); + g.DrawLine(pen, _startPosX.Value + 7, _startPosY.Value + 43, _startPosX.Value + 7, _startPosY.Value + 53); + g.DrawLine(pen, _startPosX.Value + 8, _startPosY.Value + 54, _startPosX.Value + 12, _startPosY.Value + 54); + g.DrawLine(pen, _startPosX.Value + 13, _startPosY.Value + 55, _startPosX.Value + 69, _startPosY.Value + 55); + g.DrawLine(pen, _startPosX.Value + 70, _startPosY.Value + 54, _startPosX.Value + 73, _startPosY.Value + 54); + g.DrawLine(pen, _startPosX.Value + 74, _startPosY.Value + 53, _startPosX.Value + 74, _startPosY.Value + 43); + g.DrawLine(pen, _startPosX.Value + 71, _startPosY.Value + 42, _startPosX.Value + 73, _startPosY.Value + 42); //колеса + g.FillEllipse(BodyBrush, _startPosX.Value + 10, _startPosY.Value + 44, 9, 9); + g.DrawEllipse(pen, _startPosX.Value + 10, _startPosY.Value + 44, 9, 9); + g.FillEllipse(BodyBrush, _startPosX.Value + 63, _startPosY.Value + 44, 9, 9); + g.DrawEllipse(pen, _startPosX.Value + 63, _startPosY.Value + 44, 9, 9); - //1-ое колеса - g.DrawEllipse(pen, _startPosX.Value + 13, _startPosY.Value + 40, 11, 11); - g.FillEllipse(brWhite, _startPosX.Value + 13, _startPosY.Value + 40, 11, 11); + g.FillEllipse(BodyBrush, _startPosX.Value + 25, _startPosY.Value + 48, 6, 6); + g.DrawEllipse(pen, _startPosX.Value + 25, _startPosY.Value + 48, 6, 6); + g.FillEllipse(BodyBrush, _startPosX.Value + 38, _startPosY.Value + 48, 6, 6); + g.DrawEllipse(pen, _startPosX.Value + 38, _startPosY.Value + 48, 6, 6); + g.FillEllipse(BodyBrush, _startPosX.Value + 50, _startPosY.Value + 48, 6, 6); + g.DrawEllipse(pen, _startPosX.Value + 50, _startPosY.Value + 48, 6, 6); - //2-ое колесо - g.DrawEllipse(pen, _startPosX.Value + 35, _startPosY.Value + 40, 11, 11); - g.FillEllipse(brWhite, _startPosX.Value + 35, _startPosY.Value + 40, 11, 11); + g.FillEllipse(BodyBrush, _startPosX.Value + 33, _startPosY.Value + 44, 4, 4); + g.DrawEllipse(pen, _startPosX.Value + 33, _startPosY.Value + 44, 4, 4); + g.FillEllipse(BodyBrush, _startPosX.Value + 45, _startPosY.Value + 44, 4, 4); + g.DrawEllipse(pen, _startPosX.Value + 45, _startPosY.Value + 44, 4, 4); - //3-ее колесо - g.DrawEllipse(pen, _startPosX.Value + 85, _startPosY.Value + 40, 11, 11); - g.FillEllipse(brWhite, _startPosX.Value + 85, _startPosY.Value + 40, 11, 11); + //кран + if (EntityMonorail.Crane) + { + //балка + g.FillRectangle(BodyBrush, _startPosX.Value, _startPosY.Value, 110, 9); + g.DrawRectangle(pen, _startPosX.Value, _startPosY.Value, 109, 8); - //4-ое колесо - g.DrawEllipse(pen, _startPosX.Value + 107, _startPosY.Value + 40, 11, 11); - g.FillEllipse(brWhite, _startPosX.Value + 107, _startPosY.Value + 40, 11, 11); + //крюк + g.FillRectangle(CraneBrush, _startPosX.Value + 107, _startPosY.Value + 8, 3, 13); + g.FillRectangle(CraneBrush, _startPosX.Value + 102, _startPosY.Value + 18, 8, 3); + g.FillRectangle(CraneBrush, _startPosX.Value + 102, _startPosY.Value + 16, 3, 5); + } + + //противовес + if (EntityMonorail.Сounterweight) + { + g.FillRectangle(additionalBrush, _startPosX.Value + 35, _startPosY.Value, 10, 9); + g.DrawRectangle(pen, _startPosX.Value + 35, _startPosY.Value, 9, 8); + + g.DrawLine(pen, _startPosX.Value + 35, _startPosY.Value + 2, _startPosX.Value + 44, _startPosY.Value + 2); + g.DrawLine(pen, _startPosX.Value + 35, _startPosY.Value + 4, _startPosX.Value + 44, _startPosY.Value + 4); + g.DrawLine(pen, _startPosX.Value + 35, _startPosY.Value + 6, _startPosX.Value + 44, _startPosY.Value + 6); + } } -} +} \ No newline at end of file diff --git a/ProjectMonorail/ProjectMonorail/EntityMonorail.cs b/ProjectMonorail/ProjectMonorail/EntityMonorail.cs index 5a5cfcc..4686dce 100644 --- a/ProjectMonorail/ProjectMonorail/EntityMonorail.cs +++ b/ProjectMonorail/ProjectMonorail/EntityMonorail.cs @@ -1,4 +1,11 @@ -namespace ProjectMonorail; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectMonorail; + public class EntityMonorail { /// @@ -18,15 +25,15 @@ public class EntityMonorail /// public Color AdditionalColor { get; private set; } /// - /// Признак (опция) наличия обвеса + /// Признак (опция) наличия противовеса /// - public bool MagneticRail { get; private set; } + public bool Сounterweight { get; private set; } /// - /// /// Признак (опция) наличия антикрыла - /// /// - public bool SecondCabin { get; private set; } + /// Признак (опция) наличия крана + /// + public bool Crane { get; private set; } /// - /// Признак (опция) наличия гоночной полосы + /// Шаг перемещения автомобиля /// public double Step => Speed * 100 / Weight; /// @@ -36,17 +43,15 @@ public class EntityMonorail /// Вес автомобиля /// Основной цвет /// Дополнительный цвет - /// Признак наличия обвеса - /// Признак наличия антикрыла - /// Признак наличия гоночной полосы - public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool magneticRail, bool secondCabin) + /// Признак наличия обвеса + /// Признак наличия крана + public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool counterweight, bool crane) { Speed = speed; Weight = weight; BodyColor = bodyColor; AdditionalColor = additionalColor; - MagneticRail = magneticRail; - SecondCabin = secondCabin; + Сounterweight = counterweight; + Crane = crane; } - } diff --git a/ProjectMonorail/ProjectMonorail/Properties/Resources.Designer.cs b/ProjectMonorail/ProjectMonorail/Properties/Resources.Designer.cs index 0e4ba07..c77aa93 100644 --- a/ProjectMonorail/ProjectMonorail/Properties/Resources.Designer.cs +++ b/ProjectMonorail/ProjectMonorail/Properties/Resources.Designer.cs @@ -10,9 +10,8 @@ namespace ProjectMonorail.Properties { using System; - using System.Drawing; - - + + /// /// Класс ресурса со строгой типизацией для поиска локализованных строк и т.д. /// @@ -24,10 +23,7 @@ namespace ProjectMonorail.Properties { [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { - internal static Image free_icon_right; - internal static Image free_icon_left; - internal static Image free_icon_up; - internal static Image free_icon_down; + private static global::System.Resources.ResourceManager resourceMan; private static global::System.Globalization.CultureInfo resourceCulture;