From 025bd88523b6e4e8766715c3c09f80d0a6213e3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=B3=D0=BE=D1=80=D1=8C=20=D0=93=D0=BE=D1=80=D0=B4?= =?UTF-8?q?=D0=B5=D0=B5=D0=B2?= <89176335310x@gmail.com> Date: Mon, 18 Sep 2023 13:32:20 +0400 Subject: [PATCH 1/3] new branch --- .../ElectricLocomotive/DirectionType.cs | 19 ++ .../DrawningElectricLocomotive.cs | 200 +++++++++++++++ .../ElectricLocomotive.Designer.cs | 138 +++++++++++ .../ElectricLocomotive/ElectricLocomotive.cs | 64 +++++ .../ElectricLocomotive.csproj | 15 ++ .../ElectricLocomotive.resx | 234 ++++++++++++++++++ .../EntityElectricLocomotive.cs | 35 +++ .../ElectricLocomotive/Form1.Designer.cs | 39 --- .../ElectricLocomotive/Form1.cs | 10 - .../ElectricLocomotive/Program.cs | 2 +- .../Properties/Resources.Designer.cs | 63 +++++ .../{Form1.resx => Properties/Resources.resx} | 0 12 files changed, 769 insertions(+), 50 deletions(-) create mode 100644 ElectricLocomotive/ElectricLocomotive/DirectionType.cs create mode 100644 ElectricLocomotive/ElectricLocomotive/DrawningElectricLocomotive.cs create mode 100644 ElectricLocomotive/ElectricLocomotive/ElectricLocomotive.Designer.cs create mode 100644 ElectricLocomotive/ElectricLocomotive/ElectricLocomotive.cs create mode 100644 ElectricLocomotive/ElectricLocomotive/ElectricLocomotive.resx create mode 100644 ElectricLocomotive/ElectricLocomotive/EntityElectricLocomotive.cs delete mode 100644 ElectricLocomotive/ElectricLocomotive/Form1.Designer.cs delete mode 100644 ElectricLocomotive/ElectricLocomotive/Form1.cs create mode 100644 ElectricLocomotive/ElectricLocomotive/Properties/Resources.Designer.cs rename ElectricLocomotive/ElectricLocomotive/{Form1.resx => Properties/Resources.resx} (100%) diff --git a/ElectricLocomotive/ElectricLocomotive/DirectionType.cs b/ElectricLocomotive/ElectricLocomotive/DirectionType.cs new file mode 100644 index 0000000..ab57b68 --- /dev/null +++ b/ElectricLocomotive/ElectricLocomotive/DirectionType.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ElectricLocomotive +{ + public enum DirectionType + { + Up = 1, + + Down = 2, + + Left = 3, + + Right = 4 + } +} diff --git a/ElectricLocomotive/ElectricLocomotive/DrawningElectricLocomotive.cs b/ElectricLocomotive/ElectricLocomotive/DrawningElectricLocomotive.cs new file mode 100644 index 0000000..6c76064 --- /dev/null +++ b/ElectricLocomotive/ElectricLocomotive/DrawningElectricLocomotive.cs @@ -0,0 +1,200 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms.VisualStyles; + +namespace ElectricLocomotive +{ + public class DrawningElectricLocomotive + { + private EntityElectricLocomotive enitity_electric_locomotive = new EntityElectricLocomotive(); + + + private int _startPosX; + + private int _startPosY; + + private const int _LengthLocomotive = 120; + + private const int _HeightLocomorive=90; + + + public bool Init(int speed, double weight, Color bodyColor, Color additionalColor) + { + if (speed < 0 || bodyColor == additionalColor) + { + return false; + } + else + { + enitity_electric_locomotive.Init(speed, weight, bodyColor, additionalColor); + + return true; + } + } + + public void SetPosition(int x, int y) + { + if (x < 0 || y < 0 || x + _LengthLocomotive > ElectricLocomotive.ActiveForm.Size.Width || y + _HeightLocomorive > ElectricLocomotive.ActiveForm.Size.Height) + { + return ; + } + else + { + _startPosX = x; + + _startPosY = y; + } + } + + public void MoveTransport(DirectionType direction) + { + if (enitity_electric_locomotive == null) + { + return; + } + + switch (direction) + { + //влево + case DirectionType.Left: + if (_startPosX - enitity_electric_locomotive.Step > 0) + { + _startPosX -= (int)enitity_electric_locomotive.Step; + } + break; + + //вверх + case DirectionType.Up: + if (_startPosY - enitity_electric_locomotive.Step > 0) + { + _startPosY -= (int)enitity_electric_locomotive.Step; + } + break; + + // вправо + case DirectionType.Right: // TODO: Продумать логику + if (_startPosX+_LengthLocomotive+(int)enitity_electric_locomotive.Step < ElectricLocomotive.ActiveForm.Size.Width) + { + _startPosX += (int)enitity_electric_locomotive.Step; + } + break; + + //вниз + case DirectionType.Down: // TODO: Продумать логику + if (_startPosY + _HeightLocomorive + (int)enitity_electric_locomotive.Step < ElectricLocomotive.ActiveForm.Size.Height) + { + _startPosY += (int)enitity_electric_locomotive.Step; + } + break; + } + } + + + + + public void DrawTransport(Graphics g) + { + if (enitity_electric_locomotive == null) + { + return; + } + + Pen pen = new(enitity_electric_locomotive.AdditionalColor); + Brush brush = new SolidBrush(enitity_electric_locomotive.BodyColor); + + ///ВЛ60к-1595 + + ///ходовая + g.FillRectangle(brush, new Rectangle(_startPosX + 20, _startPosY + 45, 15, 5)); + g.FillRectangle(brush, new Rectangle(_startPosX + 65, _startPosY + 45, 15, 5)); + + g.FillEllipse(brush, _startPosX + 15, _startPosY + 45, 10, 10); + g.FillEllipse(brush, _startPosX + 30, _startPosY + 45, 10, 10); + g.FillEllipse(brush, _startPosX + 60, _startPosY + 45, 10, 10); + g.FillEllipse(brush, _startPosX + 75, _startPosY + 45, 10, 10); + PointF[] chassis = + { + new Point(_startPosX+10, _startPosY+50), + new Point(_startPosX, _startPosY+50), + new Point(_startPosX+10, _startPosY +40), + new Point(_startPosX + 90, _startPosY+40), + new Point(_startPosX+100, _startPosY+50), + new Point(_startPosX+90,_startPosY+ 50), + new Point(_startPosX+85, _startPosY+45), + new Point(_startPosX+15, _startPosY+45), + }; + g.FillPolygon(brush, chassis); + + ///обводка ходовой + Point[] chassisCont = + { + new Point(_startPosX+10, _startPosY+50), + new Point(_startPosX, _startPosY+50), + new Point(_startPosX+10, _startPosY +40), + new Point(_startPosX + 90, _startPosY+40), + new Point(_startPosX+100, _startPosY+50), + new Point(_startPosX+90,_startPosY+ 50), + new Point(_startPosX+85, _startPosY+45), + new Point(_startPosX+15, _startPosY+45), + }; + g.DrawPolygon(pen, chassisCont); + + ///кабина + Point[] cabin = + { + new Point(_startPosX+20, _startPosY+10), + new Point(_startPosX+90,_startPosY+10), + new Point(_startPosX+90,_startPosY + 40), + new Point(_startPosX+10,_startPosY+40), + new Point(_startPosX+10,_startPosY+25) + }; + g.DrawPolygon(pen, cabin); + g.DrawLine(pen, _startPosX + 10, _startPosY + 25, _startPosX + 90, _startPosY + 25); + + ///окна + g.FillRectangle(brush, _startPosX + 20, _startPosY + 15, 10, 10); + g.FillRectangle(brush, _startPosX + 35, _startPosY + 15, 10, 10); + + g.FillRectangle(brush, _startPosX + 75, _startPosY + 15, 10, 10); + + ///дверь + g.FillRectangle(brush, _startPosX + 50, _startPosY + 15, 10, 25); + + ///рога + g.FillRectangle(brush, _startPosX + 25, _startPosY + 5, 15, 5); + + Point[] horns = + { + new Point(_startPosX+25, _startPosY+10), + new Point(_startPosX+25, _startPosY+5), + new Point(_startPosX+33,_startPosY+5), + new Point(_startPosX+50, _startPosY), + new Point(_startPosX+33,_startPosY+5), + new Point(_startPosX+40,_startPosY+5), + new Point(_startPosX+40,_startPosY+10) + }; + g.DrawPolygon(pen, horns); + + g.FillRectangle(brush, _startPosX + 65, _startPosY + 5, 15, 5); + Point[] horns2 = + { + new Point(_startPosX+65, _startPosY+10), + new Point(_startPosX+65, _startPosY+5), + new Point(_startPosX+73,_startPosY+5), + new Point(_startPosX+90, _startPosY), + new Point(_startPosX+73,_startPosY+5), + new Point(_startPosX+80,_startPosY+5), + new Point(_startPosX+80,_startPosY+10) + }; + g.DrawPolygon(pen, horns2); + + ///Батарея + g.FillRectangle(brush, _startPosX + 45, _startPosY + 5, 15, 5); + + } + } +} diff --git a/ElectricLocomotive/ElectricLocomotive/ElectricLocomotive.Designer.cs b/ElectricLocomotive/ElectricLocomotive/ElectricLocomotive.Designer.cs new file mode 100644 index 0000000..f765a9b --- /dev/null +++ b/ElectricLocomotive/ElectricLocomotive/ElectricLocomotive.Designer.cs @@ -0,0 +1,138 @@ +namespace ElectricLocomotive +{ + partial class ElectricLocomotive + { + /// + /// 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() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ElectricLocomotive)); + pictureBoxElectroLocomotiv = new PictureBox(); + buttonUp = new Button(); + buttonRight = new Button(); + buttonDown = new Button(); + buttonLeft = new Button(); + buttonCreate = new Button(); + ((System.ComponentModel.ISupportInitialize)pictureBoxElectroLocomotiv).BeginInit(); + SuspendLayout(); + // + // pictureBoxElectroLocomotiv + // + pictureBoxElectroLocomotiv.AccessibleRole = AccessibleRole.Client; + pictureBoxElectroLocomotiv.Dock = DockStyle.Fill; + pictureBoxElectroLocomotiv.Location = new Point(0, 0); + pictureBoxElectroLocomotiv.Name = "pictureBoxElectroLocomotiv"; + pictureBoxElectroLocomotiv.Size = new Size(854, 467); + pictureBoxElectroLocomotiv.SizeMode = PictureBoxSizeMode.AutoSize; + pictureBoxElectroLocomotiv.TabIndex = 5; + pictureBoxElectroLocomotiv.TabStop = false; + // + // buttonUp + // + buttonUp.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonUp.BackgroundImage = (Image)resources.GetObject("buttonUp.BackgroundImage"); + buttonUp.BackgroundImageLayout = ImageLayout.Zoom; + buttonUp.Location = new Point(777, 389); + buttonUp.Name = "buttonUp"; + buttonUp.Size = new Size(30, 30); + buttonUp.TabIndex = 10; + buttonUp.UseVisualStyleBackColor = true; + buttonUp.Click += buttonMove_Click; + // + // buttonRight + // + buttonRight.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonRight.BackgroundImage = (Image)resources.GetObject("buttonRight.BackgroundImage"); + buttonRight.BackgroundImageLayout = ImageLayout.Zoom; + buttonRight.Location = new Point(813, 425); + buttonRight.Name = "buttonRight"; + buttonRight.Size = new Size(30, 30); + buttonRight.TabIndex = 9; + buttonRight.UseVisualStyleBackColor = true; + buttonRight.Click += buttonMove_Click; + // + // buttonDown + // + buttonDown.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonDown.BackgroundImage = (Image)resources.GetObject("buttonDown.BackgroundImage"); + buttonDown.BackgroundImageLayout = ImageLayout.Zoom; + buttonDown.Location = new Point(777, 425); + buttonDown.Name = "buttonDown"; + buttonDown.Size = new Size(30, 30); + buttonDown.TabIndex = 8; + buttonDown.UseVisualStyleBackColor = true; + buttonDown.Click += buttonMove_Click; + // + // buttonLeft + // + buttonLeft.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonLeft.BackgroundImage = (Image)resources.GetObject("buttonLeft.BackgroundImage"); + buttonLeft.BackgroundImageLayout = ImageLayout.Zoom; + buttonLeft.Location = new Point(741, 425); + buttonLeft.Name = "buttonLeft"; + buttonLeft.Size = new Size(30, 30); + buttonLeft.TabIndex = 7; + buttonLeft.UseVisualStyleBackColor = true; + buttonLeft.Click += buttonMove_Click; + // + // buttonCreate + // + buttonCreate.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + buttonCreate.Location = new Point(13, 425); + buttonCreate.Name = "buttonCreate"; + buttonCreate.Size = new Size(108, 34); + buttonCreate.TabIndex = 6; + buttonCreate.Text = "Создать"; + buttonCreate.UseVisualStyleBackColor = true; + buttonCreate.Click += buttonCreate_Click; + // + // ElectricLocomotive + // + AutoScaleDimensions = new SizeF(7F, 15F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(854, 467); + Controls.Add(buttonUp); + Controls.Add(buttonRight); + Controls.Add(buttonDown); + Controls.Add(buttonLeft); + Controls.Add(buttonCreate); + Controls.Add(pictureBoxElectroLocomotiv); + Name = "ElectricLocomotive"; + Text = "ElectricLocomotive"; + ((System.ComponentModel.ISupportInitialize)pictureBoxElectroLocomotiv).EndInit(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private PictureBox pictureBoxElectroLocomotiv; + private Button buttonUp; + private Button buttonRight; + private Button buttonDown; + private Button buttonLeft; + private Button buttonCreate; + } +} \ No newline at end of file diff --git a/ElectricLocomotive/ElectricLocomotive/ElectricLocomotive.cs b/ElectricLocomotive/ElectricLocomotive/ElectricLocomotive.cs new file mode 100644 index 0000000..360e4bd --- /dev/null +++ b/ElectricLocomotive/ElectricLocomotive/ElectricLocomotive.cs @@ -0,0 +1,64 @@ +namespace ElectricLocomotive +{ + public partial class ElectricLocomotive : Form + { + private DrawningElectricLocomotive? _drawningElectricLocomotive; + public ElectricLocomotive() + { + InitializeComponent(); + } + + private void Draw() + { + if (_drawningElectricLocomotive == null) + { + return; + } + + Bitmap bmp = new(pictureBoxElectroLocomotiv.Width, pictureBoxElectroLocomotiv.Height); + Graphics gr = Graphics.FromImage(bmp); + _drawningElectricLocomotive.DrawTransport(gr); + pictureBoxElectroLocomotiv.Image = bmp; + + } + + private void buttonCreate_Click(object sender, EventArgs e) + { + Random random = new(); + _drawningElectricLocomotive = new DrawningElectricLocomotive(); + _drawningElectricLocomotive.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))); + _drawningElectricLocomotive.SetPosition(random.Next(10, 100), random.Next(10, 100)); + + Draw(); + } + private void buttonMove_Click(object sender, EventArgs e) + { + if (_drawningElectricLocomotive == null) + { + return; + } + + string name = ((Button)sender)?.Name ?? string.Empty; + + switch (name) + { + case "buttonUp": + _drawningElectricLocomotive.MoveTransport(DirectionType.Up); + break; + case "buttonDown": + _drawningElectricLocomotive.MoveTransport(DirectionType.Down); + break; + case "buttonLeft": + _drawningElectricLocomotive.MoveTransport(DirectionType.Left); + break; + case "buttonRight": + _drawningElectricLocomotive.MoveTransport(DirectionType.Right); + break; + } + + Draw(); + } + } +} \ No newline at end of file diff --git a/ElectricLocomotive/ElectricLocomotive/ElectricLocomotive.csproj b/ElectricLocomotive/ElectricLocomotive/ElectricLocomotive.csproj index b57c89e..13ee123 100644 --- a/ElectricLocomotive/ElectricLocomotive/ElectricLocomotive.csproj +++ b/ElectricLocomotive/ElectricLocomotive/ElectricLocomotive.csproj @@ -8,4 +8,19 @@ enable + + + True + True + Resources.resx + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + \ No newline at end of file diff --git a/ElectricLocomotive/ElectricLocomotive/ElectricLocomotive.resx b/ElectricLocomotive/ElectricLocomotive/ElectricLocomotive.resx new file mode 100644 index 0000000..c147ad4 --- /dev/null +++ b/ElectricLocomotive/ElectricLocomotive/ElectricLocomotive.resx @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + 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 + Lfof8qiDQ1mFN78AAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL + DAAACwwBP0AiyAAAASRJREFUaEPtmL0KwjAURiv4AK6Co6KCoDgr/ryKvoSb7+Tk4mu46CIiooKDOut3 + ay+EklQXexO5Bw4kaYac0hYxUhR/qcJNIo2DYwafiTQOjjnkABoHhwZIowHSaIA0GiCNBkijAdJogDQa + II0GSKMB0miANBogjQb8khKcwkY8s/NtQBlOYCWe5cQC0sHucEALFr4JqMM9pD1rWsiLFeTDuSI+BTTh + AfKeHcwN+r+f7xxpi8gKaMEj5Os32IO5UoNmxAOOIeMKaMMT5GsUP4QiZEXYAjrwDM39YodnXBHpgC68 + GGu0bwS9IB1Bj8XSmNNX62rM6ZnvQ69IR7j06s6n+RTh9eEZV0QQh2dsL3Ywh2coYgvpy+P6ueE9BVh8 + D5V/JIpe+j/GQF3wLqYAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAAMNJREFUaEPt + 1T0OAVEUhuGbWAYW4GcBGksgbIZSSWxKBDugwgZmBWh4T6K4ubmmUMg98T3J20wyyXeamSAiIiIi/6VN + ezpR1x54YuMv9Hy3JjfS8Q8akgu58RNyoUWux59J438tN35KLrge36R4vLWheSHNqE8fbSkeX2IVNShr + R7mXSqr2APthXSl+4UCrQlpQj2qlf907jcgVHVEKHVGK3BFjcsWOiD+xNxqQK+kRS3LHjrA/9pE69kBE + RERE5AshvACI8cWowOkNEgAAAABJRU5ErkJggg== + + + \ No newline at end of file diff --git a/ElectricLocomotive/ElectricLocomotive/EntityElectricLocomotive.cs b/ElectricLocomotive/ElectricLocomotive/EntityElectricLocomotive.cs new file mode 100644 index 0000000..6e42320 --- /dev/null +++ b/ElectricLocomotive/ElectricLocomotive/EntityElectricLocomotive.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ElectricLocomotive +{ + public class EntityElectricLocomotive + { + + 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 double Step => (double)Speed * 100 / Weight; + + public void Init(int speed, double weight, Color bodyColor, Color additionalColor) + { + + Speed = speed; + + Weight = weight; + + BodyColor = bodyColor; + + AdditionalColor = additionalColor; + + } + } +} diff --git a/ElectricLocomotive/ElectricLocomotive/Form1.Designer.cs b/ElectricLocomotive/ElectricLocomotive/Form1.Designer.cs deleted file mode 100644 index 370aa92..0000000 --- a/ElectricLocomotive/ElectricLocomotive/Form1.Designer.cs +++ /dev/null @@ -1,39 +0,0 @@ -namespace ElectricLocomotive -{ - 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/ElectricLocomotive/ElectricLocomotive/Form1.cs b/ElectricLocomotive/ElectricLocomotive/Form1.cs deleted file mode 100644 index e2660af..0000000 --- a/ElectricLocomotive/ElectricLocomotive/Form1.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace ElectricLocomotive -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - } -} \ No newline at end of file diff --git a/ElectricLocomotive/ElectricLocomotive/Program.cs b/ElectricLocomotive/ElectricLocomotive/Program.cs index 107b7fb..cfc9721 100644 --- a/ElectricLocomotive/ElectricLocomotive/Program.cs +++ b/ElectricLocomotive/ElectricLocomotive/Program.cs @@ -11,7 +11,7 @@ namespace ElectricLocomotive // 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 ElectricLocomotive()); } } } \ No newline at end of file diff --git a/ElectricLocomotive/ElectricLocomotive/Properties/Resources.Designer.cs b/ElectricLocomotive/ElectricLocomotive/Properties/Resources.Designer.cs new file mode 100644 index 0000000..50bd099 --- /dev/null +++ b/ElectricLocomotive/ElectricLocomotive/Properties/Resources.Designer.cs @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +namespace ElectricLocomotive.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("ElectricLocomotive.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; + } + } + } +} diff --git a/ElectricLocomotive/ElectricLocomotive/Form1.resx b/ElectricLocomotive/ElectricLocomotive/Properties/Resources.resx similarity index 100% rename from ElectricLocomotive/ElectricLocomotive/Form1.resx rename to ElectricLocomotive/ElectricLocomotive/Properties/Resources.resx -- 2.25.1 From d1f9a5eead22ee368af8d82286ccda4ab6000de9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=B3=D0=BE=D1=80=D1=8C=20=D0=93=D0=BE=D1=80=D0=B4?= =?UTF-8?q?=D0=B5=D0=B5=D0=B2?= <89176335310x@gmail.com> Date: Fri, 6 Oct 2023 12:54:51 +0400 Subject: [PATCH 2/3] Sdano --- .../DrawningElectricLocomotive.cs | 102 +++++++++--------- .../ElectricLocomotive/ElectricLocomotive.cs | 4 +- .../EntityElectricLocomotive.cs | 43 ++++++-- 3 files changed, 89 insertions(+), 60 deletions(-) diff --git a/ElectricLocomotive/ElectricLocomotive/DrawningElectricLocomotive.cs b/ElectricLocomotive/ElectricLocomotive/DrawningElectricLocomotive.cs index 6c76064..5ea4c7c 100644 --- a/ElectricLocomotive/ElectricLocomotive/DrawningElectricLocomotive.cs +++ b/ElectricLocomotive/ElectricLocomotive/DrawningElectricLocomotive.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Drawing; using System.Linq; +using System.Net.NetworkInformation; using System.Text; using System.Threading.Tasks; using System.Windows.Forms.VisualStyles; @@ -10,35 +11,38 @@ namespace ElectricLocomotive { public class DrawningElectricLocomotive { - private EntityElectricLocomotive enitity_electric_locomotive = new EntityElectricLocomotive(); + public EntityElectricLocomotive? _ElectricLocomotive { get; private set; } + + private int _pictureWidth; + + private int _pictureHeight; private int _startPosX; private int _startPosY; - private const int _LengthLocomotive = 120; + private readonly int _LocomotiveWidth = 100; - private const int _HeightLocomorive=90; + private readonly int _LocomoriveHeight =50; - public bool Init(int speed, double weight, Color bodyColor, Color additionalColor) + public bool Init(int speed, double weight, Color bodyColor, Color additionalColor, bool horns, int width, int height) { - if (speed < 0 || bodyColor == additionalColor) + _pictureWidth = width; + _pictureHeight = height; + if ((_pictureHeight < _LocomoriveHeight) || (_pictureWidth < _LocomotiveWidth)) { return false; } - else - { - enitity_electric_locomotive.Init(speed, weight, bodyColor, additionalColor); - - return true; - } + _ElectricLocomotive = new EntityElectricLocomotive(); + _ElectricLocomotive.Init(speed, weight, bodyColor, additionalColor, horns); + return true; } public void SetPosition(int x, int y) { - if (x < 0 || y < 0 || x + _LengthLocomotive > ElectricLocomotive.ActiveForm.Size.Width || y + _HeightLocomorive > ElectricLocomotive.ActiveForm.Size.Height) + if (x < 0 || y < 0 || x + _LocomotiveWidth > _pictureWidth || y + _LocomoriveHeight > _pictureHeight) { return ; } @@ -52,7 +56,7 @@ namespace ElectricLocomotive public void MoveTransport(DirectionType direction) { - if (enitity_electric_locomotive == null) + if (_ElectricLocomotive == null) { return; } @@ -61,33 +65,33 @@ namespace ElectricLocomotive { //влево case DirectionType.Left: - if (_startPosX - enitity_electric_locomotive.Step > 0) + if (_startPosX - _ElectricLocomotive.Step > 0) { - _startPosX -= (int)enitity_electric_locomotive.Step; + _startPosX -= (int)_ElectricLocomotive.Step; } break; //вверх case DirectionType.Up: - if (_startPosY - enitity_electric_locomotive.Step > 0) + if (_startPosY - _ElectricLocomotive.Step > 0) { - _startPosY -= (int)enitity_electric_locomotive.Step; + _startPosY -= (int)_ElectricLocomotive.Step; } break; // вправо case DirectionType.Right: // TODO: Продумать логику - if (_startPosX+_LengthLocomotive+(int)enitity_electric_locomotive.Step < ElectricLocomotive.ActiveForm.Size.Width) + if (_startPosX+ _LocomotiveWidth + (int)_ElectricLocomotive.Step < _pictureWidth) { - _startPosX += (int)enitity_electric_locomotive.Step; + _startPosX += (int)_ElectricLocomotive.Step; } break; //вниз case DirectionType.Down: // TODO: Продумать логику - if (_startPosY + _HeightLocomorive + (int)enitity_electric_locomotive.Step < ElectricLocomotive.ActiveForm.Size.Height) + if (_startPosY + _LocomoriveHeight + (int)_ElectricLocomotive.Step < _pictureHeight) { - _startPosY += (int)enitity_electric_locomotive.Step; + _startPosY += (int)_ElectricLocomotive.Step; } break; } @@ -98,13 +102,13 @@ namespace ElectricLocomotive public void DrawTransport(Graphics g) { - if (enitity_electric_locomotive == null) + if (_ElectricLocomotive == null) { return; } - Pen pen = new(enitity_electric_locomotive.AdditionalColor); - Brush brush = new SolidBrush(enitity_electric_locomotive.BodyColor); + Pen pen = new(_ElectricLocomotive.AdditionalColor); + Brush brush = new SolidBrush(_ElectricLocomotive.BodyColor); ///ВЛ60к-1595 @@ -165,33 +169,35 @@ namespace ElectricLocomotive g.FillRectangle(brush, _startPosX + 50, _startPosY + 15, 10, 25); ///рога - g.FillRectangle(brush, _startPosX + 25, _startPosY + 5, 15, 5); - - Point[] horns = + if (_ElectricLocomotive.Horns == true) { - new Point(_startPosX+25, _startPosY+10), - new Point(_startPosX+25, _startPosY+5), - new Point(_startPosX+33,_startPosY+5), - new Point(_startPosX+50, _startPosY), - new Point(_startPosX+33,_startPosY+5), - new Point(_startPosX+40,_startPosY+5), - new Point(_startPosX+40,_startPosY+10) - }; - g.DrawPolygon(pen, horns); + g.FillRectangle(brush, _startPosX + 25, _startPosY + 5, 15, 5); - g.FillRectangle(brush, _startPosX + 65, _startPosY + 5, 15, 5); - Point[] horns2 = - { - new Point(_startPosX+65, _startPosY+10), - new Point(_startPosX+65, _startPosY+5), - new Point(_startPosX+73,_startPosY+5), - new Point(_startPosX+90, _startPosY), - new Point(_startPosX+73,_startPosY+5), - new Point(_startPosX+80,_startPosY+5), - new Point(_startPosX+80,_startPosY+10) - }; - g.DrawPolygon(pen, horns2); + Point[] horns = + { + new Point(_startPosX+25, _startPosY+10), + new Point(_startPosX+25, _startPosY+5), + new Point(_startPosX+33,_startPosY+5), + new Point(_startPosX+50, _startPosY), + new Point(_startPosX+33,_startPosY+5), + new Point(_startPosX+40,_startPosY+5), + new Point(_startPosX+40,_startPosY+10) + }; + g.DrawPolygon(pen, horns); + g.FillRectangle(brush, _startPosX + 65, _startPosY + 5, 15, 5); + Point[] horns2 = + { + new Point(_startPosX+65, _startPosY+10), + new Point(_startPosX+65, _startPosY+5), + new Point(_startPosX+73,_startPosY+5), + new Point(_startPosX+90, _startPosY), + new Point(_startPosX+73,_startPosY+5), + new Point(_startPosX+80,_startPosY+5), + new Point(_startPosX+80,_startPosY+10) + }; + g.DrawPolygon(pen, horns2); + } ///Батарея g.FillRectangle(brush, _startPosX + 45, _startPosY + 5, 15, 5); diff --git a/ElectricLocomotive/ElectricLocomotive/ElectricLocomotive.cs b/ElectricLocomotive/ElectricLocomotive/ElectricLocomotive.cs index 360e4bd..744b4dc 100644 --- a/ElectricLocomotive/ElectricLocomotive/ElectricLocomotive.cs +++ b/ElectricLocomotive/ElectricLocomotive/ElectricLocomotive.cs @@ -28,7 +28,9 @@ namespace ElectricLocomotive _drawningElectricLocomotive = new DrawningElectricLocomotive(); _drawningElectricLocomotive.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))); + Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)), + Convert.ToBoolean(random.Next(0, 2)), pictureBoxElectroLocomotiv.Width, pictureBoxElectroLocomotiv.Height); + _drawningElectricLocomotive.SetPosition(random.Next(10, 100), random.Next(10, 100)); Draw(); diff --git a/ElectricLocomotive/ElectricLocomotive/EntityElectricLocomotive.cs b/ElectricLocomotive/ElectricLocomotive/EntityElectricLocomotive.cs index 6e42320..779c84e 100644 --- a/ElectricLocomotive/ElectricLocomotive/EntityElectricLocomotive.cs +++ b/ElectricLocomotive/ElectricLocomotive/EntityElectricLocomotive.cs @@ -8,28 +8,49 @@ namespace ElectricLocomotive { public class EntityElectricLocomotive { - + /// + /// Скорость + /// 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 Horns { get; private set; } + /// + /// Признак (опция) roga + /// - public double Step => (double)Speed * 100 / Weight; + public double Step => (double)Speed * 100 / Weight; ///свойство с лямбда выражением + /// + /// Инициализация полей объекта-класса электролокоматива + /// + /// Скорость + /// Вес + /// Основной цвет + /// Дополнительный цвет + /// Признак наличия рогов - public void Init(int speed, double weight, Color bodyColor, Color additionalColor) + public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool horns) { - Speed = speed; - Weight = weight; - BodyColor = bodyColor; - AdditionalColor = additionalColor; - + Horns = horns; } } + } + -- 2.25.1 From b9ea3213ee583f49fb51ef60ed711147fe65c671 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=B3=D0=BE=D1=80=D1=8C=20=D0=93=D0=BE=D1=80=D0=B4?= =?UTF-8?q?=D0=B5=D0=B5=D0=B2?= <89176335310x@gmail.com> Date: Fri, 6 Oct 2023 12:58:55 +0400 Subject: [PATCH 3/3] laba is done --- .../ElectricLocomotive/DrawningElectricLocomotive.cs | 1 - ElectricLocomotive/ElectricLocomotive/ElectricLocomotive.cs | 1 - 2 files changed, 2 deletions(-) diff --git a/ElectricLocomotive/ElectricLocomotive/DrawningElectricLocomotive.cs b/ElectricLocomotive/ElectricLocomotive/DrawningElectricLocomotive.cs index 5ea4c7c..7b811a7 100644 --- a/ElectricLocomotive/ElectricLocomotive/DrawningElectricLocomotive.cs +++ b/ElectricLocomotive/ElectricLocomotive/DrawningElectricLocomotive.cs @@ -17,7 +17,6 @@ namespace ElectricLocomotive private int _pictureHeight; - private int _startPosX; private int _startPosY; diff --git a/ElectricLocomotive/ElectricLocomotive/ElectricLocomotive.cs b/ElectricLocomotive/ElectricLocomotive/ElectricLocomotive.cs index 744b4dc..65f0e26 100644 --- a/ElectricLocomotive/ElectricLocomotive/ElectricLocomotive.cs +++ b/ElectricLocomotive/ElectricLocomotive/ElectricLocomotive.cs @@ -19,7 +19,6 @@ namespace ElectricLocomotive Graphics gr = Graphics.FromImage(bmp); _drawningElectricLocomotive.DrawTransport(gr); pictureBoxElectroLocomotiv.Image = bmp; - } private void buttonCreate_Click(object sender, EventArgs e) -- 2.25.1