From a8e887e77df7f04c579fa0db0b2d981dded7551f Mon Sep 17 00:00:00 2001 From: ekallin Date: Tue, 12 Sep 2023 19:25:56 +0400 Subject: [PATCH 1/4] =?UTF-8?q?=D0=93=D0=BE=D1=82=D0=BE=D0=B2=D0=B0=D1=8F?= =?UTF-8?q?=20=D0=BB=D0=B0=D0=B11?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DirectionType.cs | 16 ++ .../DrawingElectricLocomotive.cs | 221 ++++++++++++++++++ .../EntityElectricLocomotive.cs | 40 ++++ .../Form1.Designer.cs | 39 ---- .../ProjectElectricLocomotive/Form1.cs | 10 - .../FormElectricLocomotive.Designer.cs | 139 +++++++++++ .../FormElectricLocomotive.cs | 62 +++++ .../FormElectricLocomotive.resx | 60 +++++ .../ProjectElectricLocomotive/Program.cs | 4 +- .../ProjectElectricLocomotive.csproj | 15 ++ .../Properties/Resources.Designer.cs | 103 ++++++++ .../Properties/Resources.resx | 133 +++++++++++ .../Resources/arrowDown.png | Bin 0 -> 2959 bytes .../Resources/arrowLeft.png | Bin 0 -> 1251 bytes .../Resources/arrowRight.png | Bin 0 -> 2711 bytes .../Resources/arrowUP.png | Bin 0 -> 2946 bytes 16 files changed, 791 insertions(+), 51 deletions(-) create mode 100644 ProjectElectricLocomotive/ProjectElectricLocomotive/DirectionType.cs create mode 100644 ProjectElectricLocomotive/ProjectElectricLocomotive/DrawingElectricLocomotive.cs create mode 100644 ProjectElectricLocomotive/ProjectElectricLocomotive/EntityElectricLocomotive.cs delete mode 100644 ProjectElectricLocomotive/ProjectElectricLocomotive/Form1.Designer.cs delete mode 100644 ProjectElectricLocomotive/ProjectElectricLocomotive/Form1.cs create mode 100644 ProjectElectricLocomotive/ProjectElectricLocomotive/FormElectricLocomotive.Designer.cs create mode 100644 ProjectElectricLocomotive/ProjectElectricLocomotive/FormElectricLocomotive.cs create mode 100644 ProjectElectricLocomotive/ProjectElectricLocomotive/FormElectricLocomotive.resx create mode 100644 ProjectElectricLocomotive/ProjectElectricLocomotive/Properties/Resources.Designer.cs create mode 100644 ProjectElectricLocomotive/ProjectElectricLocomotive/Properties/Resources.resx create mode 100644 ProjectElectricLocomotive/ProjectElectricLocomotive/Resources/arrowDown.png create mode 100644 ProjectElectricLocomotive/ProjectElectricLocomotive/Resources/arrowLeft.png create mode 100644 ProjectElectricLocomotive/ProjectElectricLocomotive/Resources/arrowRight.png create mode 100644 ProjectElectricLocomotive/ProjectElectricLocomotive/Resources/arrowUP.png diff --git a/ProjectElectricLocomotive/ProjectElectricLocomotive/DirectionType.cs b/ProjectElectricLocomotive/ProjectElectricLocomotive/DirectionType.cs new file mode 100644 index 0000000..4d71b10 --- /dev/null +++ b/ProjectElectricLocomotive/ProjectElectricLocomotive/DirectionType.cs @@ -0,0 +1,16 @@ +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/ProjectElectricLocomotive/ProjectElectricLocomotive/DrawingElectricLocomotive.cs b/ProjectElectricLocomotive/ProjectElectricLocomotive/DrawingElectricLocomotive.cs new file mode 100644 index 0000000..0d95751 --- /dev/null +++ b/ProjectElectricLocomotive/ProjectElectricLocomotive/DrawingElectricLocomotive.cs @@ -0,0 +1,221 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ElectricLocomotive +{ + public class DrawingElectricLocomotive + { + public EntityElectricLocomotive? EntityElectricLocomotive; + + private int _pictureWidth; + private int _pictureHeight; + private int _startPosX; + private int _startPosY; + private readonly int _locoWidth = 150; + private readonly int _locoHeight = 50; + + public bool Init(int speed, double weight, Color bodyColor, Color additionalColor, bool kolesaRight, bool kolesaLeft, + int width, int height) + { + /// + /// проверка, что размеры формы больше или равны размерам рисуемого объекта + /// + if (width < _locoWidth || height < _locoHeight) + { + return false; + } + _pictureWidth = width; + _pictureHeight = height; + EntityElectricLocomotive = new EntityElectricLocomotive(); + EntityElectricLocomotive.Init(speed, weight, bodyColor, additionalColor, kolesaRight, kolesaLeft); + return true; + } + + public void SetPosition(int x, int y) + { + if (x < 0 || x + _locoWidth > _pictureWidth) + { + x = 20; + } + if (y < 0 || y + _locoHeight > _pictureHeight) + { + y = 20; + } + _startPosX = x; + _startPosY = y; + } + + public void MoveTransport(DirectionType direction) + { + if (EntityElectricLocomotive == null) + { + return; + } + switch (direction) + { + case DirectionType.Left: + if (_startPosX - EntityElectricLocomotive.Step > 0) + { + _startPosX -= (int)EntityElectricLocomotive.Step; + } + break; + case DirectionType.Up: + if (_startPosY - EntityElectricLocomotive.Step > 0) + { + _startPosY -= (int)EntityElectricLocomotive.Step; + } + break; + case DirectionType.Right: + if (_startPosX + EntityElectricLocomotive.Step + _locoWidth < _pictureWidth) + { + _startPosX += (int)EntityElectricLocomotive.Step; + } + break; + case DirectionType.Down: + if (_startPosY + EntityElectricLocomotive.Step + _locoHeight < _pictureHeight) + { + _startPosY += (int)EntityElectricLocomotive.Step; + } + break; + } + } + public void DrawTransport(Graphics g) + { + if (EntityElectricLocomotive == null) + { + return; + } + + Pen pen = new(Color.Black); + Brush blackBrush = new SolidBrush(Color.Black); + Brush windows = new SolidBrush(Color.LightBlue); + Brush bodyColor = new SolidBrush(EntityElectricLocomotive.BodyColor); + Brush additionalBrush = new SolidBrush(EntityElectricLocomotive.AdditionalColor); + + if (EntityElectricLocomotive.KolesaLeft) + { + g.FillEllipse(blackBrush, _startPosX + 130, _startPosY + 45, 5, 5); + } + + if (EntityElectricLocomotive.KolesaRight) + { + g.FillEllipse(blackBrush, _startPosX + 105, _startPosY + 45, 5, 5); + } + + //локомотив + + g.FillPolygon(bodyColor, new Point[] + { + new Point(_startPosX, _startPosY + 40), + new Point(_startPosX, _startPosY + 30), + new Point(_startPosX + 20, _startPosY + 20), + new Point(_startPosX + 70, _startPosY + 20), + new Point(_startPosX +80, _startPosY + 30), + new Point(_startPosX +80, _startPosY + 40), + new Point(_startPosX +75, _startPosY + 45), + new Point(_startPosX +5, _startPosY + 45), + new Point(_startPosX, _startPosY + 40), + } + ); + + g.DrawPolygon(pen, new Point[] + { + new Point(_startPosX, _startPosY + 40), + new Point(_startPosX, _startPosY + 30), + new Point(_startPosX + 20, _startPosY + 20), + new Point(_startPosX + 70, _startPosY + 20), + new Point(_startPosX +80, _startPosY + 30), + new Point(_startPosX +80, _startPosY + 40), + new Point(_startPosX +75, _startPosY + 45), + new Point(_startPosX +5, _startPosY + 45), + new Point(_startPosX, _startPosY + 40), + } + ); + + //окошки + + g.FillPolygon(windows, new Point[] + { + new Point(_startPosX + 10, _startPosY + 30), + new Point(_startPosX +15, _startPosY + 25), + new Point(_startPosX + 20, _startPosY + 25), + new Point(_startPosX + 20, _startPosY + 30), + new Point(_startPosX +10, _startPosY + 30), + } + ); + + g.DrawPolygon(pen, new Point[] + { + new Point(_startPosX + 10, _startPosY + 30), + new Point(_startPosX +15, _startPosY + 25), + new Point(_startPosX + 20, _startPosY + 25), + new Point(_startPosX + 20, _startPosY + 30), + new Point(_startPosX +10, _startPosY + 30), + } + ); + + g.FillRectangle(windows, _startPosX + 25, _startPosY + 25, 10, 5); + g.DrawRectangle(pen, _startPosX + 25, _startPosY + 25, 10, 5); + + //электробатареи + + g.DrawRectangle(pen, _startPosX + 50, _startPosY + 25, 20, 10); + + //horns + + g.FillRectangle(blackBrush, _startPosX + 30, _startPosY + 15, 20, 5); + g.DrawLine(pen, _startPosX + 40, _startPosY + 15, _startPosX + 50, _startPosY + 10); + g.DrawLine(pen, _startPosX + 50, _startPosY + 10, _startPosX + 45, _startPosY); + g.DrawLine(pen, _startPosX + 45, _startPosY + 15, _startPosX + 50, _startPosY + 10); + g.DrawLine(pen, _startPosX + 50, _startPosY + 10, _startPosX + 40, _startPosY); + + //лбязательные колеса + //loco + g.FillEllipse(blackBrush, _startPosX + 10, _startPosY + 45, 5, 5); + g.FillEllipse(blackBrush, _startPosX + 25, _startPosY + 45, 5, 5); + g.FillEllipse(blackBrush, _startPosX + 50, _startPosY + 45, 5, 5); + g.FillEllipse(blackBrush, _startPosX + 65, _startPosY + 45, 5, 5); + + //telega + g.FillEllipse(blackBrush, _startPosX + 95, _startPosY + 45, 5, 5); + g.FillEllipse(blackBrush, _startPosX + 140, _startPosY + 45, 5, 5); + + //telejka + g.FillPolygon(bodyColor, new Point[] + { + new Point(_startPosX + 90, _startPosY + 25), + new Point(_startPosX + 95, _startPosY + 20), + new Point(_startPosX + 145, _startPosY + 20), + new Point(_startPosX + 150, _startPosY + 25), + new Point(_startPosX + 150, _startPosY + 45), + new Point(_startPosX + 90, _startPosY + 45), + new Point(_startPosX + 90, _startPosY + 25), + } + ); + + g.DrawPolygon(pen, new Point[] + { + new Point(_startPosX + 90, _startPosY + 25), + new Point(_startPosX + 95, _startPosY + 20), + new Point(_startPosX + 145, _startPosY + 20), + new Point(_startPosX + 150, _startPosY + 25), + new Point(_startPosX + 150, _startPosY + 45), + new Point(_startPosX + 90, _startPosY + 45), + new Point(_startPosX + 90, _startPosY + 25), + } + ); + + g.DrawLine(pen, _startPosX + 80, _startPosY + 40, _startPosX + 90, _startPosY + 40); + + g.FillRectangle(windows, _startPosX + 95, _startPosY + 30, 10, 5); + g.FillRectangle(windows, _startPosX + 115, _startPosY + 30, 10, 5); + g.FillRectangle(windows, _startPosX + 135, _startPosY + 30, 10, 5); + } + } +} + + +//ПРОВЕРКА ВТОРОЙ ВЕТКИ \ No newline at end of file diff --git a/ProjectElectricLocomotive/ProjectElectricLocomotive/EntityElectricLocomotive.cs b/ProjectElectricLocomotive/ProjectElectricLocomotive/EntityElectricLocomotive.cs new file mode 100644 index 0000000..8ca26f5 --- /dev/null +++ b/ProjectElectricLocomotive/ProjectElectricLocomotive/EntityElectricLocomotive.cs @@ -0,0 +1,40 @@ +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 bool KolesaRight { get; private set; } + + public bool KolesaLeft { get; private set; } + public double Step => (double)Speed * 100 / Weight; + /// + /// Инициализация полей объекта-класса спортивного автомобиля + /// + /// Скорость + /// Вес автомобиля + /// Основной цвет + /// Дополнительный цвет + /// Признак наличия обвеса + /// Признак наличия антикрыла + /// Признак наличия гоночной полосы + public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool kolesaRight, bool kolesaLeft) + { + Speed = speed; + Weight = weight; + BodyColor = bodyColor; + AdditionalColor = additionalColor; + KolesaRight = kolesaRight; + KolesaLeft = kolesaLeft; + } + + } +} diff --git a/ProjectElectricLocomotive/ProjectElectricLocomotive/Form1.Designer.cs b/ProjectElectricLocomotive/ProjectElectricLocomotive/Form1.Designer.cs deleted file mode 100644 index 6cd3a18..0000000 --- a/ProjectElectricLocomotive/ProjectElectricLocomotive/Form1.Designer.cs +++ /dev/null @@ -1,39 +0,0 @@ -namespace ProjectElectricLocomotive -{ - 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/ProjectElectricLocomotive/ProjectElectricLocomotive/Form1.cs b/ProjectElectricLocomotive/ProjectElectricLocomotive/Form1.cs deleted file mode 100644 index eb6a0ea..0000000 --- a/ProjectElectricLocomotive/ProjectElectricLocomotive/Form1.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace ProjectElectricLocomotive -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - } -} \ No newline at end of file diff --git a/ProjectElectricLocomotive/ProjectElectricLocomotive/FormElectricLocomotive.Designer.cs b/ProjectElectricLocomotive/ProjectElectricLocomotive/FormElectricLocomotive.Designer.cs new file mode 100644 index 0000000..be16dad --- /dev/null +++ b/ProjectElectricLocomotive/ProjectElectricLocomotive/FormElectricLocomotive.Designer.cs @@ -0,0 +1,139 @@ +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() + { + this.pictureBoxElectricLocomotive = new System.Windows.Forms.PictureBox(); + this.buttonCreate = new System.Windows.Forms.Button(); + this.buttonLeft = new System.Windows.Forms.Button(); + this.buttonUp = new System.Windows.Forms.Button(); + this.buttonRight = new System.Windows.Forms.Button(); + this.buttonDown = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBoxElectricLocomotive)).BeginInit(); + this.SuspendLayout(); + // + // pictureBoxElectricLocomotive + // + this.pictureBoxElectricLocomotive.Dock = System.Windows.Forms.DockStyle.Fill; + this.pictureBoxElectricLocomotive.Location = new System.Drawing.Point(0, 0); + this.pictureBoxElectricLocomotive.Name = "pictureBoxElectricLocomotive"; + this.pictureBoxElectricLocomotive.Size = new System.Drawing.Size(533, 465); + this.pictureBoxElectricLocomotive.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; + this.pictureBoxElectricLocomotive.TabIndex = 0; + this.pictureBoxElectricLocomotive.TabStop = false; + // + // buttonCreate + // + this.buttonCreate.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.buttonCreate.Font = new System.Drawing.Font("Candara Light", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.buttonCreate.Location = new System.Drawing.Point(16, 395); + this.buttonCreate.Name = "buttonCreate"; + this.buttonCreate.Size = new System.Drawing.Size(111, 52); + this.buttonCreate.TabIndex = 1; + this.buttonCreate.Text = "Создать"; + this.buttonCreate.UseVisualStyleBackColor = true; + this.buttonCreate.Click += new System.EventHandler(this.buttonCreate_Click); + // + // buttonLeft + // + this.buttonLeft.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonLeft.BackgroundImage = global::ProjectElectricLocomotive.Properties.Resources.arrowLeft; + this.buttonLeft.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; + this.buttonLeft.Location = new System.Drawing.Point(389, 417); + 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); + // + // buttonUp + // + this.buttonUp.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonUp.BackgroundImage = global::ProjectElectricLocomotive.Properties.Resources.arrowUP; + this.buttonUp.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; + this.buttonUp.Location = new System.Drawing.Point(435, 368); + this.buttonUp.Name = "buttonUp"; + this.buttonUp.Size = new System.Drawing.Size(30, 30); + this.buttonUp.TabIndex = 3; + this.buttonUp.UseVisualStyleBackColor = true; + this.buttonUp.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::ProjectElectricLocomotive.Properties.Resources.arrowRight; + this.buttonRight.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; + this.buttonRight.Location = new System.Drawing.Point(479, 417); + this.buttonRight.Name = "buttonRight"; + this.buttonRight.Size = new System.Drawing.Size(30, 30); + this.buttonRight.TabIndex = 4; + this.buttonRight.UseVisualStyleBackColor = true; + this.buttonRight.Click += new System.EventHandler(this.buttonMove_Click); + // + // buttonDown + // + this.buttonDown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonDown.BackgroundImage = global::ProjectElectricLocomotive.Properties.Resources.arrowDown; + this.buttonDown.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; + this.buttonDown.Location = new System.Drawing.Point(435, 417); + this.buttonDown.Name = "buttonDown"; + this.buttonDown.Size = new System.Drawing.Size(30, 30); + this.buttonDown.TabIndex = 5; + this.buttonDown.UseVisualStyleBackColor = true; + this.buttonDown.Click += new System.EventHandler(this.buttonMove_Click); + // + // ElectricLocomotive + // + this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 25F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(533, 465); + this.Controls.Add(this.buttonDown); + this.Controls.Add(this.buttonRight); + this.Controls.Add(this.buttonUp); + this.Controls.Add(this.buttonLeft); + this.Controls.Add(this.buttonCreate); + this.Controls.Add(this.pictureBoxElectricLocomotive); + this.Name = "ElectricLocomotive"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "ElectricLocomotive"; + ((System.ComponentModel.ISupportInitialize)(this.pictureBoxElectricLocomotive)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private PictureBox pictureBoxElectricLocomotive; + private Button buttonCreate; + private Button buttonLeft; + private Button buttonUp; + private Button buttonRight; + private Button buttonDown; + } +} \ No newline at end of file diff --git a/ProjectElectricLocomotive/ProjectElectricLocomotive/FormElectricLocomotive.cs b/ProjectElectricLocomotive/ProjectElectricLocomotive/FormElectricLocomotive.cs new file mode 100644 index 0000000..693789d --- /dev/null +++ b/ProjectElectricLocomotive/ProjectElectricLocomotive/FormElectricLocomotive.cs @@ -0,0 +1,62 @@ +namespace ElectricLocomotive +{ + public partial class ElectricLocomotive : Form + { + private DrawingElectricLocomotive? _drawingElectricLocomotive; + public ElectricLocomotive() + { + InitializeComponent(); + } + + private void Draw() + { + if (_drawingElectricLocomotive == null) + { + return; + } + Bitmap bmp = new(pictureBoxElectricLocomotive.Width, pictureBoxElectricLocomotive.Height); + Graphics gr = Graphics.FromImage(bmp); + _drawingElectricLocomotive.DrawTransport(gr); + pictureBoxElectricLocomotive.Image = bmp; + } + + private void buttonCreate_Click(object sender, EventArgs e) + { + Random rnd = new Random(); + _drawingElectricLocomotive = new DrawingElectricLocomotive(); + _drawingElectricLocomotive.Init(rnd.Next(100, 300), rnd.Next(1000, 3000), + Color.FromArgb(rnd.Next(0, 256), rnd.Next(0, 256), rnd.Next(0, 256)), + Color.FromArgb(rnd.Next(0, 256), rnd.Next(0, 256), rnd.Next(0, 256)), + Convert.ToBoolean(rnd.Next(0, 2)), Convert.ToBoolean(rnd.Next(0, 2)), + pictureBoxElectricLocomotive.Width, pictureBoxElectricLocomotive.Height); + _drawingElectricLocomotive.SetPosition(rnd.Next(10, 100), rnd.Next(10, 100)); + Draw(); + } + + private void buttonMove_Click(object sender, EventArgs e) + { + if (_drawingElectricLocomotive == null) + { + return; + } + string name = ((Button)sender)?.Name ?? string.Empty; + switch (name) + { + case "buttonUp": + _drawingElectricLocomotive.MoveTransport(DirectionType.Up); + break; + case "buttonDown": + _drawingElectricLocomotive.MoveTransport(DirectionType.Down); + break; + case "buttonLeft": + _drawingElectricLocomotive.MoveTransport(DirectionType.Left); + break; + case "buttonRight": + _drawingElectricLocomotive.MoveTransport(DirectionType.Right); + break; + } + Draw(); + + } + } +} \ No newline at end of file diff --git a/ProjectElectricLocomotive/ProjectElectricLocomotive/FormElectricLocomotive.resx b/ProjectElectricLocomotive/ProjectElectricLocomotive/FormElectricLocomotive.resx new file mode 100644 index 0000000..f298a7b --- /dev/null +++ b/ProjectElectricLocomotive/ProjectElectricLocomotive/FormElectricLocomotive.resx @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/ProjectElectricLocomotive/ProjectElectricLocomotive/Program.cs b/ProjectElectricLocomotive/ProjectElectricLocomotive/Program.cs index 9a38110..cfc9721 100644 --- a/ProjectElectricLocomotive/ProjectElectricLocomotive/Program.cs +++ b/ProjectElectricLocomotive/ProjectElectricLocomotive/Program.cs @@ -1,4 +1,4 @@ -namespace ProjectElectricLocomotive +namespace ElectricLocomotive { internal static class Program { @@ -11,7 +11,7 @@ namespace ProjectElectricLocomotive // 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/ProjectElectricLocomotive/ProjectElectricLocomotive/ProjectElectricLocomotive.csproj b/ProjectElectricLocomotive/ProjectElectricLocomotive/ProjectElectricLocomotive.csproj index b57c89e..13ee123 100644 --- a/ProjectElectricLocomotive/ProjectElectricLocomotive/ProjectElectricLocomotive.csproj +++ b/ProjectElectricLocomotive/ProjectElectricLocomotive/ProjectElectricLocomotive.csproj @@ -8,4 +8,19 @@ enable + + + True + True + Resources.resx + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + \ No newline at end of file diff --git a/ProjectElectricLocomotive/ProjectElectricLocomotive/Properties/Resources.Designer.cs b/ProjectElectricLocomotive/ProjectElectricLocomotive/Properties/Resources.Designer.cs new file mode 100644 index 0000000..2078663 --- /dev/null +++ b/ProjectElectricLocomotive/ProjectElectricLocomotive/Properties/Resources.Designer.cs @@ -0,0 +1,103 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +namespace ProjectElectricLocomotive.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("ProjectElectricLocomotive.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 arrowDown { + get { + object obj = ResourceManager.GetObject("arrowDown", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap arrowLeft { + get { + object obj = ResourceManager.GetObject("arrowLeft", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap arrowRight { + get { + object obj = ResourceManager.GetObject("arrowRight", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap arrowUP { + get { + object obj = ResourceManager.GetObject("arrowUP", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/ProjectElectricLocomotive/ProjectElectricLocomotive/Properties/Resources.resx b/ProjectElectricLocomotive/ProjectElectricLocomotive/Properties/Resources.resx new file mode 100644 index 0000000..0170beb --- /dev/null +++ b/ProjectElectricLocomotive/ProjectElectricLocomotive/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\arrowDown.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\arrowLeft.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\arrowRight.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\arrowUP.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/ProjectElectricLocomotive/ProjectElectricLocomotive/Resources/arrowDown.png b/ProjectElectricLocomotive/ProjectElectricLocomotive/Resources/arrowDown.png new file mode 100644 index 0000000000000000000000000000000000000000..17a85d2ecb63b9ed38f5ad303148fce0b63c4bff GIT binary patch literal 2959 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 DdvX+O literal 0 HcmV?d00001 diff --git a/ProjectElectricLocomotive/ProjectElectricLocomotive/Resources/arrowLeft.png b/ProjectElectricLocomotive/ProjectElectricLocomotive/Resources/arrowLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..31627848c491748088598672d8057b8bb9c2f6f9 GIT binary patch literal 1251 zcmZ`(e^AnA7^j6Pq#+e1)UYBKs4;_zma+o*2ACo!*h(d2S$fM;le;K?Y+({1=Dw$$ z*$F5e#ZfvV-N~}doMlZ+s+~Ww4X#tktgtLJDfV@LZ+|?`=Y8&ZKcCP0{PDbJ_&jzH z5{HDrU_o3CD;YxPLIf;^G9q_92ZBX~$!sR9xqrDIy%gb|fbF;IvOG-*~I$c^?8l6tJ zSS&`Pkw&9UPfuH|)+<-8^z`(|WHPZ>3;;lBX{lbX2SJcTA`u7#91b@*IXN^mL?)9_ zD3sIbuw~r~vFKi&=^zZYc!tYj2<75e+KfWn=0Kp}WX-9cm%M#8 zuwfJ8lh4<}8xMKWWQo;s#&sLrn!_J7%^fY`A;h{EoIV6uf zXW|D^=QJf2WqhllrJ5zA1MaW3hbfHp&zmYyUCDU&wk^R?SzGU^P8Rl&_J#)ZFkCpr37(R=JSWv%B0;)zDS5!dWyBE;zY8^PL zveFcAcV}Ykb510_YnE<;)6tc_%%|aUH5Pkf03$#r{8`qFRPIcaTy%YT-I0J$LK4|$ zT}LVw`r+-rYXUJfB{fP_M30Ahm}5z`dz1{dv&2r4eqUn?mYl6_zSWHjA!^ zIpfNiMVf)Tc>96#f=E?ky9s&0@7N?O4D#FeG+5Bq%UV@`f8j}ZDy3Lh)B~pWp+z?? zO((5*Fp$p33hnei=iIs^%DZ*+Z|PbJTiBgBpYLsJoi7gc5z>5zFTmAW{T?d3&2z&~ zx&HCor|53(#dk5KO7T<&uX>$HJ2;|jGNgZPYjFKG-egua_O_def7ozw;55;E^Kxcc zMB3;}NTcXBRxx7b?zn0gCD*Jo>E?6B&8s%Atm`i_C`El3;h?Sd==@ZR+Ir&JJG_$} z2;4OicLKe^!oiy#83-32f3b2>IK+%tHT0SG4$Qz_wHEBD=X_5^TEh8}%DB@?u zM8;vVXsryvCR*qjO|q=X1i>Bwxe>KmINblB!Syk(I$f>(@iz6UA)T3YDf>-Nx@gKv zy}ne#f*c2Ht4Ske@jVjRXU|xR`Y3{4XP}#`D`R}bAf*&gwz{Ql3^jvA%fuuM>U znVD_A2K-;h5vO6v-CZW9Y@nh_cU$jQd5Q+xHzC0VL}EZdjL{{fxOr(+ws@2l)uQxR z{BTFDACNB9ifqhyIa5k&nQ2Qa(&A2Y)jQ}0XzfA(#m#|25=c-R48hAB(ClU+f+!67 z-hanc-5}{{ZLR!{XNE$#EEI{R4u*$sSn_w18T0e=3Tc+%ne*pIzq;^eXU0f_SnPUk zbva>VeEe%>dje8E^J`gTc=*l96h+@{_i18bhPthdKAG|uG1)?!QAYQrwR>DtiR|@j zPm~lFFMB3Dmr6exYyYG(4lvrG=+Fz{PA3re14xp;Ue z*giXWCq4WO%c0u_x>-KVbek{+`U%3^e*qiGK;xxr%EdLzAcfgbw3m>7go)$5U0-kZ zgxlIAG4A$Y(WnaE5Wwn3bhNjx11B*gnjf;f(_YFMNKH!{M(Ws;W&yMaA=gW=^oIrO z1H-Uw!7t&*A*c#Abn8UpcUA9wBU*ihCeoaWBEMgdSJP0EEd*lES+bRM1uco3YCs#r z7Bk;F5Qv3k^*gPlw{Dqd7)4}3wWdsBdt6`r`KQPeE+8;2ckeGYh&=_wF!~X?y1E-6 z5-A=Lb8mtWkN=&@pdq%u>hI6_Oe5}$fQwH zIci0zEP>(@@n1+=FcRzMN#F+zgGPZ6L>93MrbNVKGmd?^Fh7rx{)my7z#{>NW6d1d z2|uQsDZCm>`OU&%7!hlRK3&T}B;aLZW6RVEY$E>g^4mAXOrbx4xSzIShr00@&=B0? zdiN?KjuMJ>j{4n;k!0jvy!rRiGvuvmj`2YEb?YZPfZa@Ue;6)~~fRh&k#ySiLj`Fiy zsdh)0Bu=G3AP8YsEW^?gyct>9=Kif2Y6aWR6ty`CS>>td`NH{;nx@s&bdcFy1-oP& zY@{q7LtQ^NC~9n+yFjCDyi`yql!<~}f$PWa=&4%sg(EdlO>?YS<@U9eg%bC3iqi4X z(f5_fb>+f7F0Zb{N;#DwxCRNc5#_K)_h*B_qp3tYk_Wia9lioVR2DO%S}3Srt#`k zoz|Px;P_)e6!P$CO;oF@<$FXqt`6Ru{=s_IVgT++<^ND|spflTKlj;n{id4^QNxtJ zqn#`pY@|6*?(Lbend9i5b3-DLr~qAG zwCoQKr9DRYW~VznDKedlyHtf%D)W|OTOf6s*K)Yc=Z37?2N)Y-sG&hLm3p0~-n_UB zX)o0}7~b|yi~mq?-RFlKZgLZT)j>7hzGyfG(&0zvQ`fh2elt8yWn^W+@_yxXX#v*v z-eGLY8n%StAj@K2I!Z!1+L-$Aeb?dEF4vu9ZMRL)2fTW=F7fHBC<1wJ=Cx}2gd;u* zWaElO9`MoFIh_C%!;6p5Cmt$WnZn*!&3J8lUG!-l2N>$MuZz=+*Ri88lF-=bsHiA; zLH(uYOO}7Ve*JpWW(XtMm!}a|o!QO0<#w=b8YM9);1a^UR>c!w(7HSNGzzvmRR>fH zM05|-4TqDnC1;pIa_p~=H#4DBy1<)Zk4Vw8DUX0UCTf4t=0X~cPY!beBW_}$2=G_N zna1$7&73j=0s>S##1&`>DHFaeh!UnLMUqCfaaiv9SjZWS4Md?2C_;N&x!NbZ570wH zLpN>S83T$d{1eN|gaHt7y#bitkKXIepc$p;b;6l4gxs>zHF_5A0+NjFw*xYVlK6be z)(L%-4aG=HwWiJf_@rpPB*x{~K1hm%H%#~)(~;i%8PKR1Azt3lNYoFGkq^>R`aF9;BLmNIb1c!WOzo zI2wY9POC)i+ht`+s(0u~OpdFrm6s^Q7SnT9C&%0y=4gLETlfw$`|8zQPxwRdF~MOf zi`-!V_u~C5M{6(aIRn;5ugLq%AWD#UG3ryT>NE|aJ?hww(-!^RaIpA$930kod5`#* zLI9ttBTB{?YW4&+03hxN7|5VN-6{55Mnqa;QxhnZ#gnJ_+qvLFd1vzLoBK`D51<}l zx$YU8&6C7AP%i2}{PDAvIxOy>rqS`f(z84s?@|p;6JOb2ndsM-HH9)sI=EXG>G9ex3haHm&d3-U%PSR#zbvg2ekj`APIVJ_jnbLZu~Fp gh5p}?h4pP{p literal 0 HcmV?d00001 diff --git a/ProjectElectricLocomotive/ProjectElectricLocomotive/Resources/arrowUP.png b/ProjectElectricLocomotive/ProjectElectricLocomotive/Resources/arrowUP.png new file mode 100644 index 0000000000000000000000000000000000000000..3355b162e4f2a87c1b17dbf62356e0af8b95fbbb GIT binary patch literal 2946 zcmd6p=UY?R7Kamvm{1dx5{j6FVnI4MfPg?K8bK7t3DN@ukS0wDB18!qRE&Z{l|C0M zNDV{*LkPWtLLk7X1O}ux0TFT!-cR>Gm=F8xXYKu*wbowy{NA$?9qetygyn=mAduJ@ zTkJ(({<1fqLcr6sqCXm#z~L8dEI=jQ3NwHK@in(I2Z73HB0oL%0XFQKty4G%B;L3; zz%3y!yg?ulnKM}POHpp~Vr%?Dukd)z5vm;|i;RXe&{%A1d5mybANsO? zO8cdk1qli1rNTr!6^=@<2&^nEvkR=$zLUI>^BXQAyN=7?j`rdSZfzV=pkwr#NaS)reY392giF1O+xm z!ZKTY{Euzli$-`Rxs-r!W`irz5j$2C{XWrO5eT=ar9!&8x`PMC3|?Awma7>ggz3`FX{&z+ttP8Tz9sy zFa0q=we#@llNvZjlFQ_B)8Eu32@SA8=&z!krSj1hjrz>SdlFeEprljKGGmtm^iwy# zt0NT^^_}O-AVEEoa?3LV&)ZsCsl!)GntLb^yhd68mNYuK9P-ZEW?J&_5V?urf{`S| zrxj|t)!N!;8~M;jyoBZ+b@WI0`yVwVt^757HPyNscvB+nKQ9#|3^nXN)<9vUZWNAF zAvyx~IDom*I)Pu4D@#NfOl3YsI^=ffe_dG#3*)sSDx|8dv71v}S-k1KLgMQ>xPXhh z`}rKRxL`Ux+b~=eDJ!ex9E-+^Bx(_HINXY|qhDp}xhc2ZE6&c`xy8lmg%7pvrVGZT zXF=N`@?k#-GLe*G-;1-itCAc9PDL%{Me+wwO0*ML!$;Z=3@r9)>kzIPcWdWIl^1#D zF}H30mKyDS5I+br1uuN4MF;s1xfQ;&NdD^GQBw-?2^{mVSA_{r&C@BI=T`T;<7eL; z)ubTHW^e;9&=H2|`ReBT_wO&>c8_S?@p8_*yTqG8XF|P1OQ-cco+Bpo3FlDOs|R%5 z>tnRzuD*?2s^y!0t`7N|zN%nmTP008{?MS7W!nu5!*MR2sz+& zP+CT&xF>T4`ek^)2WDhs^e*xyDPTM5I;C81zVg+R35AqtxAeB{KYdW@<{#qt^@e(S z-edf^-){X_o1!V1(HGQ0e7M)&&pqzZjH4~Cq!wxK3e%_22LV0CDb_fYfL)2qT(h{$ zo4cx9D_^$5Tf}5d^O1IF6PwK*ye;AhJErT{C*!GHdHsGjb!8(#3sZ!1G|VZxZ(!k6 z&_st+b&;J`B4x4>mRB;1aEr25@}5v-vRBI^C&9KyXmAms*7_lm&&y9vN=o`miaE$1 z88~yC$!kkdBfhSw@a+lSskoEfS}k<>^5x|EdehZIA7A$IM>3^h*P^0o`aw+-Ewq%u zhko>xw%FF))>!j~!5HdD>&4~GrebtbD(3*Kf*5)7%OHro5rli?YNSxbru z)f1L!lUfAa*W(%QDMYq4_BUhW0F&NfbMmL~t?vn^LJiE<5R!RufRkbv%32Wx z{_y}_Z3Tq=L4(IV&|xtchO@Uj#RWe8vobG2A|zdi0AfbD5ZSVp506<0i2jjc`B0UW zkg#tS+#xQomIg30HgkR8_*GSrMd#b_&(1iikOaYIJS51-AnoN zPpQ>I@2je+ygfXafeG_ws|HbFr%mH_pRH|dWNrKmA`tF?1bc^u(rROOjQqQ(Qzrc6 z2?ZP(;7`+d-Ob{jJRQODTGBvZ!;SaX=g+#;$7G0#iDhgAI=i}#8FgzX9h-dlo5UpB&aq-)xnI{gkq3Lr1oMG ut`Z@TPYpH{rriD4w|f8AjJ`_d#YJDxAD3{C*Z}%w&>1UxY>9=(o&N%*<1jt| literal 0 HcmV?d00001 -- 2.25.1 From 8a9112530c54743f904b00a0d0d87d3ae5f9661c Mon Sep 17 00:00:00 2001 From: ekallin Date: Tue, 12 Sep 2023 20:51:58 +0400 Subject: [PATCH 2/4] =?UTF-8?q?=D0=BA=D0=BE=D1=80=D1=80=D0=B5=D0=BA=D1=82?= =?UTF-8?q?=D0=B8=D1=80=D0=BE=D0=B2=D0=BA=D0=B0=20=D0=BB=D0=B0=D0=B1=D1=8B?= =?UTF-8?q?=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DrawingElectricLocomotive.cs | 52 +++++++++---------- .../EntityElectricLocomotive.cs | 23 +++----- 2 files changed, 32 insertions(+), 43 deletions(-) diff --git a/ProjectElectricLocomotive/ProjectElectricLocomotive/DrawingElectricLocomotive.cs b/ProjectElectricLocomotive/ProjectElectricLocomotive/DrawingElectricLocomotive.cs index 0d95751..2c372da 100644 --- a/ProjectElectricLocomotive/ProjectElectricLocomotive/DrawingElectricLocomotive.cs +++ b/ProjectElectricLocomotive/ProjectElectricLocomotive/DrawingElectricLocomotive.cs @@ -17,12 +17,10 @@ namespace ElectricLocomotive private readonly int _locoWidth = 150; private readonly int _locoHeight = 50; - public bool Init(int speed, double weight, Color bodyColor, Color additionalColor, bool kolesaRight, bool kolesaLeft, + public bool Init(int speed, double weight, Color bodyColor, Color additionalColor, bool horns, bool seifbatteries, int width, int height) { - /// - /// проверка, что размеры формы больше или равны размерам рисуемого объекта - /// + if (width < _locoWidth || height < _locoHeight) { return false; @@ -30,7 +28,7 @@ namespace ElectricLocomotive _pictureWidth = width; _pictureHeight = height; EntityElectricLocomotive = new EntityElectricLocomotive(); - EntityElectricLocomotive.Init(speed, weight, bodyColor, additionalColor, kolesaRight, kolesaLeft); + EntityElectricLocomotive.Init(speed, weight, bodyColor, additionalColor, horns, seifbatteries); return true; } @@ -95,14 +93,28 @@ namespace ElectricLocomotive Brush bodyColor = new SolidBrush(EntityElectricLocomotive.BodyColor); Brush additionalBrush = new SolidBrush(EntityElectricLocomotive.AdditionalColor); - if (EntityElectricLocomotive.KolesaLeft) - { - g.FillEllipse(blackBrush, _startPosX + 130, _startPosY + 45, 5, 5); + if (EntityElectricLocomotive.Horns) + { + //horns + g.FillRectangle(blackBrush, _startPosX + 30, _startPosY + 15, 20, 5); + g.DrawLine(pen, _startPosX + 40, _startPosY + 15, _startPosX + 50, _startPosY + 10); + g.DrawLine(pen, _startPosX + 50, _startPosY + 10, _startPosX + 45, _startPosY); + g.DrawLine(pen, _startPosX + 45, _startPosY + 15, _startPosX + 50, _startPosY + 10); + g.DrawLine(pen, _startPosX + 50, _startPosY + 10, _startPosX + 40, _startPosY); } - if (EntityElectricLocomotive.KolesaRight) + if (EntityElectricLocomotive.Seifbatteries) { - g.FillEllipse(blackBrush, _startPosX + 105, _startPosY + 45, 5, 5); + //g.DrawRectangle(pen, _startPosX + 50, _startPosY + 25, 20, 10); + g.DrawPolygon(pen, new Point[] + { + new Point(_startPosX + 40, _startPosY + 25), + new Point(_startPosX + 65, _startPosY + 25), + new Point(_startPosX + 65, _startPosY + 35), + new Point(_startPosX + 40, _startPosY + 35), + new Point(_startPosX + 40, _startPosY + 25), + } + ); } //локомотив @@ -160,18 +172,6 @@ namespace ElectricLocomotive g.FillRectangle(windows, _startPosX + 25, _startPosY + 25, 10, 5); g.DrawRectangle(pen, _startPosX + 25, _startPosY + 25, 10, 5); - //электробатареи - - g.DrawRectangle(pen, _startPosX + 50, _startPosY + 25, 20, 10); - - //horns - - g.FillRectangle(blackBrush, _startPosX + 30, _startPosY + 15, 20, 5); - g.DrawLine(pen, _startPosX + 40, _startPosY + 15, _startPosX + 50, _startPosY + 10); - g.DrawLine(pen, _startPosX + 50, _startPosY + 10, _startPosX + 45, _startPosY); - g.DrawLine(pen, _startPosX + 45, _startPosY + 15, _startPosX + 50, _startPosY + 10); - g.DrawLine(pen, _startPosX + 50, _startPosY + 10, _startPosX + 40, _startPosY); - //лбязательные колеса //loco g.FillEllipse(blackBrush, _startPosX + 10, _startPosY + 45, 5, 5); @@ -183,6 +183,9 @@ namespace ElectricLocomotive g.FillEllipse(blackBrush, _startPosX + 95, _startPosY + 45, 5, 5); g.FillEllipse(blackBrush, _startPosX + 140, _startPosY + 45, 5, 5); + g.FillEllipse(blackBrush, _startPosX + 130, _startPosY + 45, 5, 5); + g.FillEllipse(blackBrush, _startPosX + 105, _startPosY + 45, 5, 5); + //telejka g.FillPolygon(bodyColor, new Point[] { @@ -215,7 +218,4 @@ namespace ElectricLocomotive g.FillRectangle(windows, _startPosX + 135, _startPosY + 30, 10, 5); } } -} - - -//ПРОВЕРКА ВТОРОЙ ВЕТКИ \ No newline at end of file +} \ No newline at end of file diff --git a/ProjectElectricLocomotive/ProjectElectricLocomotive/EntityElectricLocomotive.cs b/ProjectElectricLocomotive/ProjectElectricLocomotive/EntityElectricLocomotive.cs index 8ca26f5..10b503e 100644 --- a/ProjectElectricLocomotive/ProjectElectricLocomotive/EntityElectricLocomotive.cs +++ b/ProjectElectricLocomotive/ProjectElectricLocomotive/EntityElectricLocomotive.cs @@ -12,29 +12,18 @@ namespace ElectricLocomotive public double Weight { get; private set; } public Color BodyColor { get; private set; } public Color AdditionalColor { get; private set; } - public bool KolesaRight { get; private set; } - - public bool KolesaLeft { get; private set; } + public bool Horns { get; private set; } + public bool Seifbatteries { get; private set; } public double Step => (double)Speed * 100 / Weight; - /// - /// Инициализация полей объекта-класса спортивного автомобиля - /// - /// Скорость - /// Вес автомобиля - /// Основной цвет - /// Дополнительный цвет - /// Признак наличия обвеса - /// Признак наличия антикрыла - /// Признак наличия гоночной полосы - public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool kolesaRight, bool kolesaLeft) + public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool horns, bool seifbatteries) { Speed = speed; Weight = weight; BodyColor = bodyColor; AdditionalColor = additionalColor; - KolesaRight = kolesaRight; - KolesaLeft = kolesaLeft; + Horns = horns; + Seifbatteries = seifbatteries; } - + } } -- 2.25.1 From 925981ec503a0f8cc9ce3b9c7e18ac1feea7a1bb Mon Sep 17 00:00:00 2001 From: ekallin Date: Wed, 13 Sep 2023 09:29:33 +0400 Subject: [PATCH 3/4] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=BE:=20=D1=80=D0=B0=D0=BD=D0=B4=D0=BE=D0=BC=D0=BD=D1=8B?= =?UTF-8?q?=D0=B5=20=D0=BF=D1=80=D0=BE=D0=B2=D0=BE=D0=B4=D0=B0=20=D0=B8=20?= =?UTF-8?q?=D0=BE=D1=82=D1=81=D0=B5=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DrawingElectricLocomotive.cs | 34 ++++++++----------- .../FormElectricLocomotive.cs | 1 - 2 files changed, 15 insertions(+), 20 deletions(-) diff --git a/ProjectElectricLocomotive/ProjectElectricLocomotive/DrawingElectricLocomotive.cs b/ProjectElectricLocomotive/ProjectElectricLocomotive/DrawingElectricLocomotive.cs index 2c372da..905be01 100644 --- a/ProjectElectricLocomotive/ProjectElectricLocomotive/DrawingElectricLocomotive.cs +++ b/ProjectElectricLocomotive/ProjectElectricLocomotive/DrawingElectricLocomotive.cs @@ -103,22 +103,7 @@ namespace ElectricLocomotive g.DrawLine(pen, _startPosX + 50, _startPosY + 10, _startPosX + 40, _startPosY); } - if (EntityElectricLocomotive.Seifbatteries) - { - //g.DrawRectangle(pen, _startPosX + 50, _startPosY + 25, 20, 10); - g.DrawPolygon(pen, new Point[] - { - new Point(_startPosX + 40, _startPosY + 25), - new Point(_startPosX + 65, _startPosY + 25), - new Point(_startPosX + 65, _startPosY + 35), - new Point(_startPosX + 40, _startPosY + 35), - new Point(_startPosX + 40, _startPosY + 25), - } - ); - } - //локомотив - g.FillPolygon(bodyColor, new Point[] { new Point(_startPosX, _startPosY + 40), @@ -133,6 +118,19 @@ namespace ElectricLocomotive } ); + if (EntityElectricLocomotive.Seifbatteries) + { + g.DrawPolygon(pen, new Point[] + { + new Point(_startPosX + 40, _startPosY + 25), + new Point(_startPosX + 65, _startPosY + 25), + new Point(_startPosX + 65, _startPosY + 35), + new Point(_startPosX + 40, _startPosY + 35), + new Point(_startPosX + 40, _startPosY + 25), + } + ); + } + g.DrawPolygon(pen, new Point[] { new Point(_startPosX, _startPosY + 40), @@ -148,7 +146,6 @@ namespace ElectricLocomotive ); //окошки - g.FillPolygon(windows, new Point[] { new Point(_startPosX + 10, _startPosY + 30), @@ -172,7 +169,7 @@ namespace ElectricLocomotive g.FillRectangle(windows, _startPosX + 25, _startPosY + 25, 10, 5); g.DrawRectangle(pen, _startPosX + 25, _startPosY + 25, 10, 5); - //лбязательные колеса + //обязательные колеса //loco g.FillEllipse(blackBrush, _startPosX + 10, _startPosY + 45, 5, 5); g.FillEllipse(blackBrush, _startPosX + 25, _startPosY + 45, 5, 5); @@ -187,7 +184,7 @@ namespace ElectricLocomotive g.FillEllipse(blackBrush, _startPosX + 105, _startPosY + 45, 5, 5); //telejka - g.FillPolygon(bodyColor, new Point[] + g.FillPolygon(additionalBrush, new Point[] { new Point(_startPosX + 90, _startPosY + 25), new Point(_startPosX + 95, _startPosY + 20), @@ -212,7 +209,6 @@ namespace ElectricLocomotive ); g.DrawLine(pen, _startPosX + 80, _startPosY + 40, _startPosX + 90, _startPosY + 40); - g.FillRectangle(windows, _startPosX + 95, _startPosY + 30, 10, 5); g.FillRectangle(windows, _startPosX + 115, _startPosY + 30, 10, 5); g.FillRectangle(windows, _startPosX + 135, _startPosY + 30, 10, 5); diff --git a/ProjectElectricLocomotive/ProjectElectricLocomotive/FormElectricLocomotive.cs b/ProjectElectricLocomotive/ProjectElectricLocomotive/FormElectricLocomotive.cs index 693789d..899ccee 100644 --- a/ProjectElectricLocomotive/ProjectElectricLocomotive/FormElectricLocomotive.cs +++ b/ProjectElectricLocomotive/ProjectElectricLocomotive/FormElectricLocomotive.cs @@ -56,7 +56,6 @@ namespace ElectricLocomotive break; } Draw(); - } } } \ No newline at end of file -- 2.25.1 From 1c87d0401467727aa213e89b29ba5b6187a8c210 Mon Sep 17 00:00:00 2001 From: ekallin Date: Wed, 13 Sep 2023 19:58:42 +0400 Subject: [PATCH 4/4] =?UTF-8?q?=D0=B3=D0=BE=D1=82=D0=BE=D0=B2=D0=B0=D1=8F?= =?UTF-8?q?=20=D0=BA=20=D0=B2=D1=8B=D0=B3=D1=80=D1=83=D0=B7=D0=BA=D0=B5=20?= =?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 --- .../ProjectElectricLocomotive/DrawingElectricLocomotive.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ProjectElectricLocomotive/ProjectElectricLocomotive/DrawingElectricLocomotive.cs b/ProjectElectricLocomotive/ProjectElectricLocomotive/DrawingElectricLocomotive.cs index 905be01..f178e4f 100644 --- a/ProjectElectricLocomotive/ProjectElectricLocomotive/DrawingElectricLocomotive.cs +++ b/ProjectElectricLocomotive/ProjectElectricLocomotive/DrawingElectricLocomotive.cs @@ -207,7 +207,7 @@ namespace ElectricLocomotive new Point(_startPosX + 90, _startPosY + 25), } ); - + //телега окна g.DrawLine(pen, _startPosX + 80, _startPosY + 40, _startPosX + 90, _startPosY + 40); g.FillRectangle(windows, _startPosX + 95, _startPosY + 30, 10, 5); g.FillRectangle(windows, _startPosX + 115, _startPosY + 30, 10, 5); -- 2.25.1