diff --git a/MonorailProject/MonorailProject.sln b/MonorailProject/MonorailProject.sln deleted file mode 100644 index 45d9d58..0000000 --- a/MonorailProject/MonorailProject.sln +++ /dev/null @@ -1,25 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.6.33801.468 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonorailProject", "MonorailProject\MonorailProject.csproj", "{9FCA3318-633F-404A-B465-6DF510961ED2}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9FCA3318-633F-404A-B465-6DF510961ED2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9FCA3318-633F-404A-B465-6DF510961ED2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9FCA3318-633F-404A-B465-6DF510961ED2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9FCA3318-633F-404A-B465-6DF510961ED2}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {E490344E-18A5-4A0A-A607-857B4986CFC5} - EndGlobalSection -EndGlobal diff --git a/MonorailProject/MonorailProject/Direction.cs b/MonorailProject/MonorailProject/Direction.cs deleted file mode 100644 index c11bd2a..0000000 --- a/MonorailProject/MonorailProject/Direction.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace MonorailProject -{ - public enum DirectionType - { - Up = 1, - Down = 2, - Left = 3, - Right = 4 - } -} diff --git a/MonorailProject/MonorailProject/DrawningObjects/DrawningMonorail.cs b/MonorailProject/MonorailProject/DrawningObjects/DrawningMonorail.cs deleted file mode 100644 index 0ee1b21..0000000 --- a/MonorailProject/MonorailProject/DrawningObjects/DrawningMonorail.cs +++ /dev/null @@ -1,156 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using MonorailProject.Entities; - -namespace MonorailProject.DrawningObjects -{ - public class DrawningMonorail - { - public EntityMonorail? EntityMonorail { get; protected set; } - private int _pictureWidth; - private int _pictureHeight; - protected int _startPosX; - protected int _startPosY; - protected int _relWidth = 150; - protected readonly int _relHeight = 46; - public DrawningMonorail(int speed, double weight, Color bodyColor, int width, int height) - { - if (0 + _relWidth >= width || 0 + _relHeight >= height) - { - return; - } - _pictureWidth = width; - _pictureHeight = height; - EntityMonorail = new EntityMonorail(speed, weight, bodyColor); - } - protected DrawningMonorail(int speed, double weight, Color bodyColor, int width, - int height, int carWidth, int carHeight) - { - if (0 + _relWidth >= width || 0 + _relHeight >= height) - { - return; - } - _pictureWidth = width; - _pictureHeight = height; - _relWidth = carWidth; - _relHeight = carHeight; - EntityMonorail = new EntityMonorail(speed, weight, bodyColor); - } - public void SetPosition(int x, int y) - { - if (x < 0 || x > _pictureWidth - _relWidth) - { - x = 0; - } - if (y < 0 || y > _pictureHeight - _relHeight) - { - y = 0; - } - _startPosX = x; - _startPosY = y; - } - public void MoveTransport(DirectionType direction) - { - if (!CanMove(direction) || EntityMonorail == null) - { - return; - } - switch (direction) - { - case DirectionType.Left: - _startPosX -= (int)EntityMonorail.Step; - break; - case DirectionType.Right: - _startPosX += (int)EntityMonorail.Step; - break; - case DirectionType.Up: - _startPosY -= (int)EntityMonorail.Step; - break; - case DirectionType.Down: - _startPosY += (int)EntityMonorail.Step; - break; - } - } - public int GetPosX => _startPosX; - public int GetPosY => _startPosY; - public int GetWidth => _relWidth; - public int GetHeight => _relHeight; - public bool CanMove(DirectionType direction) - { - if (EntityMonorail == null) - { - return false; - } - return direction switch - { - DirectionType.Left => _startPosX - EntityMonorail.Step > 0, - DirectionType.Up => _startPosY - EntityMonorail.Step > 0, - DirectionType.Right => _startPosX + EntityMonorail.Step < _pictureWidth - _relWidth, - DirectionType.Down => _startPosY + EntityMonorail.Step < _pictureHeight - _relHeight - }; - } - - - public virtual void DrawTransport(Graphics g) - { - if (EntityMonorail == null) - { - return; - } - _relWidth = 150; - Pen pen = new(Color.Black, 2); - Brush bodyBrush = new SolidBrush(EntityMonorail.BodyColor); - //колёса - - g.DrawEllipse(pen, _startPosX + 20, _startPosY + 35, 15, 15); - g.DrawEllipse(pen, _startPosX + 50, _startPosY + 35, 15, 15); - g.DrawEllipse(pen, _startPosX + 80, _startPosY + 35, 15, 15); - g.DrawEllipse(pen, _startPosX + 110, _startPosY + 35, 15, 15); - g.DrawRectangle(pen, _startPosX + 22, _startPosY + 36, 40, 8); - g.DrawRectangle(pen, _startPosX + 82, _startPosY + 36, 40, 8); - g.DrawEllipse(pen, _startPosX + 3, _startPosY + 37, 30, 8); - g.DrawEllipse(pen, _startPosX + 110, _startPosY + 37, 29, 8); - - Brush brBlack = new SolidBrush(Color.Black); - g.FillRectangle(brBlack, _startPosX + 22, _startPosY + 36, 40, 8); - g.FillRectangle(brBlack, _startPosX + 82, _startPosY + 36, 40, 8); - g.FillEllipse(brBlack, _startPosX + 3, _startPosY + 37, 30, 8); - g.FillEllipse(brBlack, _startPosX + 110, _startPosY + 37, 29, 8); - - Brush brWhite = new SolidBrush(Color.White); - g.FillEllipse(brWhite, _startPosX + 20, _startPosY + 35, 15, 15); - g.FillEllipse(brWhite, _startPosX + 50, _startPosY + 35, 15, 15); - g.FillEllipse(brWhite, _startPosX + 80, _startPosY + 35, 15, 15); - g.FillEllipse(brWhite, _startPosX + 110, _startPosY + 35, 15, 15); - - //Кабина - - g.DrawRectangle(pen, _startPosX + 10, _startPosY + 20, 120, 16); - g.FillRectangle(bodyBrush, _startPosX + 10, _startPosY + 20, 120, 16); - Point p1 = new Point(_startPosX + 10, _startPosY + 20); - Point p2 = new Point(_startPosX + 130, _startPosY + 20); - Point p3 = new Point(_startPosX + 130, _startPosY + 5); - Point p4 = new Point(_startPosX + 13, _startPosY + 5); - - g.DrawPolygon(pen, new Point[] { p1, p2, p3, p4 }); - g.FillPolygon(bodyBrush, new Point[] { p1, p2, p3, p4 }); - - - //дверь - g.FillRectangle(brWhite, _startPosX + 49, _startPosY + 9, 12, 22); - g.DrawRectangle(pen, _startPosX + 49, _startPosY + 9, 12, 22); - - //Окна и прочее - - Pen penBlue = new Pen(Color.Cyan, 2); - g.DrawRectangle(penBlue, _startPosX + 20, _startPosY + 8, 10, 10); - g.DrawRectangle(penBlue, _startPosX + 35, _startPosY + 8, 10, 10); - g.DrawRectangle(penBlue, _startPosX + 117, _startPosY + 8, 10, 10); - - g.DrawRectangle(pen, _startPosX + 132, _startPosY + 10, 2, 22); - } - } -} diff --git a/MonorailProject/MonorailProject/DrawningObjects/DrawningSecondMonorail.cs b/MonorailProject/MonorailProject/DrawningObjects/DrawningSecondMonorail.cs deleted file mode 100644 index beda8a0..0000000 --- a/MonorailProject/MonorailProject/DrawningObjects/DrawningSecondMonorail.cs +++ /dev/null @@ -1,99 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using MonorailProject.Entities; - -namespace MonorailProject.DrawningObjects -{ - public class DrawningSecondMonorail : DrawningMonorail - { - public DrawningSecondMonorail(int speed, double weight, Color bodyColor, Color -additionalColor, bool monorails, bool secondCabin, int width, int height) : - base(speed, weight, bodyColor, width, height, 110, 60) - { - if(EntityMonorail != null) - { - EntityMonorail = new EntitySecondMonorail(speed, weight, bodyColor, additionalColor, monorails, secondCabin); - } - } - public override void DrawTransport(Graphics g) - { - base.DrawTransport(g); - - if (EntityMonorail is not EntitySecondMonorail secondMonorail) - { - return; - } - - Pen pen = new(Color.Black); - Brush additionalBrush = new SolidBrush(secondMonorail.AdditionalColor); - Brush brBlack = new SolidBrush(Color.Black); - Brush brWhite = new SolidBrush(Color.White); - Pen penBlue = new Pen(Color.Cyan, 2); - - if (secondMonorail.Monorails) - { - g.DrawRectangle(pen, _startPosX, _startPosY + 50, 140, 10); - g.FillRectangle(brBlack, _startPosX, _startPosY + 50, 140, 10); - - g.FillRectangle(brWhite, _startPosX + 5, _startPosY + 53, 130, 5); - } - - if (secondMonorail.SecondCabin) - { - _relWidth = 290; - //низ - g.DrawEllipse(pen, _startPosX + 160, _startPosY + 35, 15, 15); - g.DrawEllipse(pen, _startPosX + 190, _startPosY + 35, 15, 15); - g.DrawEllipse(pen, _startPosX + 220, _startPosY + 35, 15, 15); - g.DrawEllipse(pen, _startPosX + 250, _startPosY + 35, 15, 15); - g.DrawRectangle(pen, _startPosX + 162, _startPosY + 36, 40, 8); - g.DrawRectangle(pen, _startPosX + 222, _startPosY + 36, 40, 8); - g.DrawEllipse(pen, _startPosX + 143, _startPosY + 37, 30, 8); - g.DrawEllipse(pen, _startPosX + 250, _startPosY + 37, 29, 8); - - g.FillRectangle(brBlack, _startPosX + 162, _startPosY + 36, 40, 8); - g.FillRectangle(brBlack, _startPosX + 222, _startPosY + 36, 40, 8); - g.FillEllipse(brBlack, _startPosX + 143, _startPosY + 37, 30, 8); - g.FillEllipse(brBlack, _startPosX + 250, _startPosY + 37, 29, 8); - - g.FillEllipse(brWhite, _startPosX + 160, _startPosY + 35, 15, 15); - g.FillEllipse(brWhite, _startPosX + 190, _startPosY + 35, 15, 15); - g.FillEllipse(brWhite, _startPosX + 220, _startPosY + 35, 15, 15); - g.FillEllipse(brWhite, _startPosX + 250, _startPosY + 35, 15, 15); - - if (secondMonorail.Monorails) - { - g.DrawRectangle(pen, _startPosX + 140, _startPosY + 50, 145, 10); - g.FillRectangle(brBlack, _startPosX + 140, _startPosY + 50, 145, 10); - - g.FillRectangle(brWhite, _startPosX + 135, _startPosY + 53, 145, 5); - } - - //Кабина - g.DrawRectangle(pen, _startPosX + 150, _startPosY + 20, 120, 16); - g.FillRectangle(additionalBrush, _startPosX + 150, _startPosY + 20, 120, 16); - Point p5 = new Point(_startPosX + 150, _startPosY + 20); - Point p6 = new Point(_startPosX + 270, _startPosY + 20); - Point p7 = new Point(_startPosX + 267, _startPosY + 5); - Point p8 = new Point(_startPosX + 150, _startPosY + 5); - - g.DrawPolygon(pen, new Point[] { p5, p6, p7, p8 }); - g.FillPolygon(additionalBrush, new Point[] { p5, p6, p7, p8 }); - - //дверь - g.FillRectangle(brWhite, _startPosX + 189, _startPosY + 9, 12, 22); - g.DrawRectangle(pen, _startPosX + 189, _startPosY + 9, 12, 22); - - //Окна и прочее - g.DrawRectangle(penBlue, _startPosX + 160, _startPosY + 8, 10, 10); - g.DrawRectangle(penBlue, _startPosX + 175, _startPosY + 8, 10, 10); - g.DrawRectangle(penBlue, _startPosX + 257, _startPosY + 8, 10, 10); - - g.DrawRectangle(pen, _startPosX + 272, _startPosY + 10, 2, 22); - } - } - } -} diff --git a/MonorailProject/MonorailProject/Entities/EntityMonorail.cs b/MonorailProject/MonorailProject/Entities/EntityMonorail.cs deleted file mode 100644 index 3e16ca7..0000000 --- a/MonorailProject/MonorailProject/Entities/EntityMonorail.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace MonorailProject.Entities -{ - public class EntityMonorail - { - public int Speed { get; private set; } - public double Weight { get; private set; } - public Color BodyColor { get; private set; } - public double Step => (double)Speed * 100 / Weight; - public EntityMonorail(int speed, double weight, Color bodyColor) - { - Speed = speed; - Weight = weight; - BodyColor = bodyColor; - } - } -} diff --git a/MonorailProject/MonorailProject/Entities/EntitySecondMonorail.cs b/MonorailProject/MonorailProject/Entities/EntitySecondMonorail.cs deleted file mode 100644 index 4678353..0000000 --- a/MonorailProject/MonorailProject/Entities/EntitySecondMonorail.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Net.NetworkInformation; -using System.Text; -using System.Threading.Tasks; - -namespace MonorailProject.Entities -{ - public class EntitySecondMonorail : EntityMonorail - { - public Color AdditionalColor { get; private set; } - public bool Monorails { get; private set; } - public bool SecondCabin { get; private set; } - public EntitySecondMonorail(int speed, double weight, Color bodyColor, - Color additionalColor, bool monorails, bool secondCabin) : base(speed, weight, bodyColor) - { - AdditionalColor = additionalColor; - Monorails = monorails; - SecondCabin = secondCabin; - } - } -} diff --git a/MonorailProject/MonorailProject/Form1.Designer.cs b/MonorailProject/MonorailProject/Form1.Designer.cs deleted file mode 100644 index 2ba3400..0000000 --- a/MonorailProject/MonorailProject/Form1.Designer.cs +++ /dev/null @@ -1,183 +0,0 @@ -namespace MonorailProject -{ - 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() - { - pictureBoxMonorail = new PictureBox(); - buttonLeft = new Button(); - buttonDown = new Button(); - buttonRight = new Button(); - buttonUp = new Button(); - comboBoxStrategy = new ComboBox(); - buttonStep = new Button(); - ButtonCreateSecondMonorail = new Button(); - ButtonCreateMonorail = new Button(); - ((System.ComponentModel.ISupportInitialize)pictureBoxMonorail).BeginInit(); - SuspendLayout(); - // - // pictureBoxMonorail - // - pictureBoxMonorail.Dock = DockStyle.Fill; - pictureBoxMonorail.Location = new Point(0, 0); - pictureBoxMonorail.Name = "pictureBoxMonorail"; - pictureBoxMonorail.Size = new Size(800, 450); - pictureBoxMonorail.SizeMode = PictureBoxSizeMode.AutoSize; - pictureBoxMonorail.TabIndex = 2; - pictureBoxMonorail.TabStop = false; - // - // buttonLeft - // - buttonLeft.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; - buttonLeft.BackColor = SystemColors.Info; - buttonLeft.BackgroundImage = Properties.Resources.left_arrow; - buttonLeft.BackgroundImageLayout = ImageLayout.Zoom; - buttonLeft.Location = new Point(656, 398); - buttonLeft.Name = "buttonLeft"; - buttonLeft.Size = new Size(40, 40); - buttonLeft.TabIndex = 14; - buttonLeft.UseVisualStyleBackColor = false; - buttonLeft.Click += ButtonMove_Click; - // - // buttonDown - // - buttonDown.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; - buttonDown.BackColor = SystemColors.Info; - buttonDown.BackgroundImage = Properties.Resources.down_arrow; - buttonDown.BackgroundImageLayout = ImageLayout.Zoom; - buttonDown.Location = new Point(702, 398); - buttonDown.Name = "buttonDown"; - buttonDown.Size = new Size(40, 40); - buttonDown.TabIndex = 13; - buttonDown.UseVisualStyleBackColor = false; - buttonDown.Click += ButtonMove_Click; - // - // buttonRight - // - buttonRight.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; - buttonRight.BackColor = SystemColors.Info; - buttonRight.BackgroundImage = Properties.Resources.right_arrow; - buttonRight.BackgroundImageLayout = ImageLayout.Zoom; - buttonRight.Location = new Point(748, 398); - buttonRight.Name = "buttonRight"; - buttonRight.Size = new Size(40, 40); - buttonRight.TabIndex = 12; - buttonRight.UseVisualStyleBackColor = false; - buttonRight.Click += ButtonMove_Click; - // - // buttonUp - // - buttonUp.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; - buttonUp.BackColor = SystemColors.Info; - buttonUp.BackgroundImage = Properties.Resources.upper_arrow; - buttonUp.BackgroundImageLayout = ImageLayout.Zoom; - buttonUp.Location = new Point(702, 352); - buttonUp.Name = "buttonUp"; - buttonUp.Size = new Size(40, 40); - buttonUp.TabIndex = 11; - buttonUp.UseVisualStyleBackColor = false; - buttonUp.Click += ButtonMove_Click; - // - // comboBoxStrategy - // - comboBoxStrategy.BackColor = SystemColors.Info; - comboBoxStrategy.DropDownStyle = ComboBoxStyle.DropDownList; - comboBoxStrategy.FormattingEnabled = true; - comboBoxStrategy.Items.AddRange(new object[] { "0", "1" }); - comboBoxStrategy.Location = new Point(637, 12); - comboBoxStrategy.Name = "comboBoxStrategy"; - comboBoxStrategy.Size = new Size(151, 28); - comboBoxStrategy.TabIndex = 15; - // - // buttonStep - // - buttonStep.BackColor = SystemColors.Info; - buttonStep.Location = new Point(694, 46); - buttonStep.Name = "buttonStep"; - buttonStep.Size = new Size(94, 29); - buttonStep.TabIndex = 16; - buttonStep.Text = "Шаг"; - buttonStep.UseVisualStyleBackColor = false; - buttonStep.Click += ButtonStep_Click; - // - // ButtonCreateSecondMonorail - // - ButtonCreateSecondMonorail.BackColor = SystemColors.Info; - ButtonCreateSecondMonorail.Location = new Point(205, 397); - ButtonCreateSecondMonorail.Name = "ButtonCreateSecondMonorail"; - ButtonCreateSecondMonorail.Size = new Size(239, 41); - ButtonCreateSecondMonorail.TabIndex = 17; - ButtonCreateSecondMonorail.Text = "Создать два Монорельса"; - ButtonCreateSecondMonorail.UseVisualStyleBackColor = false; - ButtonCreateSecondMonorail.Click += ButtonCreateSecondMonorail_Click; - // - // ButtonCreateMonorail - // - ButtonCreateMonorail.BackColor = SystemColors.Info; - ButtonCreateMonorail.Location = new Point(12, 397); - ButtonCreateMonorail.Name = "ButtonCreateMonorail"; - ButtonCreateMonorail.Size = new Size(175, 41); - ButtonCreateMonorail.TabIndex = 18; - ButtonCreateMonorail.Text = "Создать Монорельс"; - ButtonCreateMonorail.UseVisualStyleBackColor = false; - ButtonCreateMonorail.Click += ButtonCreateMonorail_Click; - // - // Form1 - // - AutoScaleDimensions = new SizeF(8F, 20F); - AutoScaleMode = AutoScaleMode.Font; - BackColor = SystemColors.ControlDarkDark; - ClientSize = new Size(800, 450); - Controls.Add(ButtonCreateMonorail); - Controls.Add(ButtonCreateSecondMonorail); - Controls.Add(buttonStep); - Controls.Add(comboBoxStrategy); - Controls.Add(buttonLeft); - Controls.Add(buttonDown); - Controls.Add(buttonRight); - Controls.Add(buttonUp); - Controls.Add(pictureBoxMonorail); - Name = "Form1"; - Text = "Form1"; - ((System.ComponentModel.ISupportInitialize)pictureBoxMonorail).EndInit(); - ResumeLayout(false); - PerformLayout(); - } - - #endregion - - private PictureBox pictureBoxMonorail; - private Button buttonLeft; - private Button buttonDown; - private Button buttonRight; - private Button buttonUp; - private ComboBox comboBoxStrategy; - private Button buttonStep; - private Button ButtonCreateSecondMonorail; - private Button ButtonCreateMonorail; - } -} \ No newline at end of file diff --git a/MonorailProject/MonorailProject/Form1.cs b/MonorailProject/MonorailProject/Form1.cs deleted file mode 100644 index 99dd38f..0000000 --- a/MonorailProject/MonorailProject/Form1.cs +++ /dev/null @@ -1,113 +0,0 @@ -using MonorailProject.DrawningObjects; -using MonorailProject.MovementStrategy; -namespace MonorailProject -{ - public partial class Form1 : Form - { - private DrawningMonorail? _drawningMonorail; - private AbstractStrategy? _abstractStrategy; - public Form1() - { - 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 ButtonCreateSecondMonorail_Click(object sender, EventArgs e) - { - Random random = new(); - - _drawningMonorail = new DrawningSecondMonorail(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)), - true, true, - pictureBoxMonorail.Width, pictureBoxMonorail.Height); - _drawningMonorail.SetPosition(random.Next(10, 100), random.Next(10, - 100)); - Draw(); - } - private void ButtonCreateMonorail_Click(object sender, EventArgs e) - { - Random random = new(); - _drawningMonorail = new DrawningMonorail(random.Next(100, 300), - random.Next(1000, 3000), Color.FromArgb(random.Next(0, 256), random.Next(0, 256), - random.Next(0, 256)), 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; - switch (name) - { - case "buttonUp": - _drawningMonorail.MoveTransport(DirectionType.Up); - break; - case "buttonDown": - _drawningMonorail.MoveTransport(DirectionType.Down); - break; - case "buttonLeft": - _drawningMonorail.MoveTransport(DirectionType.Left); - break; - case "buttonRight": - _drawningMonorail.MoveTransport(DirectionType.Right); - break; - } - Draw(); - } - private void ButtonStep_Click(object sender, EventArgs e) - { - if (_drawningMonorail == null) - { - return; - } - if (comboBoxStrategy.Enabled) - { - _abstractStrategy = comboBoxStrategy.SelectedIndex - switch - { - 0 => new MoveToCenter(), - 1 => new MoveToBorder(), - _ => null, - }; - if (_abstractStrategy == null) - { - return; - } - _abstractStrategy.SetData(new - DrawningObjectMonorail(_drawningMonorail), pictureBoxMonorail.Width, - pictureBoxMonorail.Height); - //comboBoxStrategy.Enabled = false; - } - if (_abstractStrategy == null) - { - return; - } - _abstractStrategy.MakeStep(); - Draw(); - if (_abstractStrategy.GetStatus() == Status.Finish) - { - comboBoxStrategy.Enabled = true; - _abstractStrategy = null; - } - - } - } -} \ No newline at end of file diff --git a/MonorailProject/MonorailProject/Form1.resx b/MonorailProject/MonorailProject/Form1.resx deleted file mode 100644 index a395bff..0000000 --- a/MonorailProject/MonorailProject/Form1.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/MonorailProject/MonorailProject/MonorailProject.csproj b/MonorailProject/MonorailProject/MonorailProject.csproj deleted file mode 100644 index 13ee123..0000000 --- a/MonorailProject/MonorailProject/MonorailProject.csproj +++ /dev/null @@ -1,26 +0,0 @@ - - - - WinExe - net6.0-windows - enable - true - enable - - - - - True - True - Resources.resx - - - - - - ResXFileCodeGenerator - Resources.Designer.cs - - - - \ No newline at end of file diff --git a/MonorailProject/MonorailProject/MovementStrategy/AbstractStrategy.cs b/MonorailProject/MonorailProject/MovementStrategy/AbstractStrategy.cs deleted file mode 100644 index 1ff1d8e..0000000 --- a/MonorailProject/MonorailProject/MovementStrategy/AbstractStrategy.cs +++ /dev/null @@ -1,73 +0,0 @@ - -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace MonorailProject.MovementStrategy -{ - public abstract class AbstractStrategy - { - private IMoveableObject? _moveableObject; - private Status _state = Status.NotInit; - protected int FieldWidth { get; private set; } - protected int FieldHeight { get; private set; } - public Status GetStatus() { return _state; } - public void SetData(IMoveableObject moveableObject, int width, int - height) - { - if (moveableObject == null) - { - _state = Status.NotInit; - return; - } - _state = Status.InProgress; - _moveableObject = moveableObject; - FieldWidth = width; - FieldHeight = height; - } - public void MakeStep() - { - if (_state != Status.InProgress) - { - return; - } - if (IsTargetDestinaion()) - { - _state = Status.Finish; - return; - } - MoveToTarget(); - } - protected bool MoveLeft() => MoveTo(DirectionType.Left); - protected bool MoveRight() => MoveTo(DirectionType.Right); - protected bool MoveUp() => MoveTo(DirectionType.Up); - protected bool MoveDown() => MoveTo(DirectionType.Down); - protected ObjectParameters? GetObjectParameters => - _moveableObject?.GetObjectPosition; - protected int? GetStep() - { - if (_state != Status.InProgress) - { - return null; - } - return _moveableObject?.GetStep; - } - protected abstract void MoveToTarget(); - protected abstract bool IsTargetDestinaion(); - private bool MoveTo(DirectionType directionType) - { - if (_state != Status.InProgress) - { - return false; - } - if (_moveableObject?.CheckCanMove(directionType) ?? false) - { - _moveableObject.MoveObject(directionType); - return true; - } - return false; - } - } -} diff --git a/MonorailProject/MonorailProject/MovementStrategy/DrawningObjectMonorail.cs b/MonorailProject/MonorailProject/MovementStrategy/DrawningObjectMonorail.cs deleted file mode 100644 index 860c68a..0000000 --- a/MonorailProject/MonorailProject/MovementStrategy/DrawningObjectMonorail.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using MonorailProject.DrawningObjects; - -namespace MonorailProject.MovementStrategy -{ - public class DrawningObjectMonorail : IMoveableObject - { - private readonly DrawningMonorail? _drawningMonorail = null; - public DrawningObjectMonorail(DrawningMonorail drawningMonorail) - { - _drawningMonorail = drawningMonorail; - } - public ObjectParameters? GetObjectPosition - { - get - { - if (_drawningMonorail == null || _drawningMonorail.EntityMonorail == - null) - { - return null; - } - return new ObjectParameters(_drawningMonorail.GetPosX, - _drawningMonorail.GetPosY, _drawningMonorail.GetWidth, _drawningMonorail.GetHeight); - } - } - public int GetStep => (int)(_drawningMonorail?.EntityMonorail?.Step ?? 0); - public bool CheckCanMove(DirectionType direction) => - _drawningMonorail?.CanMove(direction) ?? false; - public void MoveObject(DirectionType direction) => - _drawningMonorail?.MoveTransport(direction); - } - -} diff --git a/MonorailProject/MonorailProject/MovementStrategy/IMoveableObject.cs b/MonorailProject/MonorailProject/MovementStrategy/IMoveableObject.cs deleted file mode 100644 index faa67a4..0000000 --- a/MonorailProject/MonorailProject/MovementStrategy/IMoveableObject.cs +++ /dev/null @@ -1,17 +0,0 @@ -using MonorailProject.MovementStrategy; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace MonorailProject.MovementStrategy -{ - public interface IMoveableObject - { - ObjectParameters? GetObjectPosition { get; } - int GetStep { get; } - bool CheckCanMove(DirectionType direction); - void MoveObject(DirectionType direction); - } -} diff --git a/MonorailProject/MonorailProject/MovementStrategy/MoveToBorder.cs b/MonorailProject/MonorailProject/MovementStrategy/MoveToBorder.cs deleted file mode 100644 index 0b0998c..0000000 --- a/MonorailProject/MonorailProject/MovementStrategy/MoveToBorder.cs +++ /dev/null @@ -1,56 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace MonorailProject.MovementStrategy -{ - public class MoveToBorder : AbstractStrategy - { - protected override bool IsTargetDestinaion() - { - var objParams = GetObjectParameters; - if (objParams == null) - { - return false; - } - return objParams.RightBorder <= FieldWidth && - objParams.RightBorder + GetStep() >= FieldWidth&& - objParams.DownBorder <= FieldHeight&& - objParams.DownBorder + GetStep() >= FieldHeight; - } - protected override void MoveToTarget() - { - var objParams = GetObjectParameters; - if (objParams == null) - { - return; - } - var diffX = objParams.RightBorder - FieldWidth; - if (Math.Abs(diffX) > GetStep()) - { - if (diffX > 0) - { - MoveLeft(); - } - else - { - MoveRight(); - } - } - var diffY = objParams.DownBorder - FieldHeight; - if (Math.Abs(diffY) > GetStep()) - { - if (diffY > 0) - { - MoveUp(); - } - else - { - MoveDown(); - } - } - } - } -} diff --git a/MonorailProject/MonorailProject/MovementStrategy/MoveToCenter.cs b/MonorailProject/MonorailProject/MovementStrategy/MoveToCenter.cs deleted file mode 100644 index 857c1a1..0000000 --- a/MonorailProject/MonorailProject/MovementStrategy/MoveToCenter.cs +++ /dev/null @@ -1,56 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace MonorailProject.MovementStrategy -{ - public class MoveToCenter : AbstractStrategy - { - protected override bool IsTargetDestinaion() - { - var objParams = GetObjectParameters; - if (objParams == null) - { - return false; - } - return objParams.ObjectMiddleHorizontal <= FieldWidth / 2 && - objParams.ObjectMiddleHorizontal + GetStep() >= FieldWidth / 2 && - objParams.ObjectMiddleVertical <= FieldHeight / 2 && - objParams.ObjectMiddleVertical + GetStep() >= FieldHeight / 2; - } - protected override void MoveToTarget() - { - var objParams = GetObjectParameters; - if (objParams == null) - { - return; - } - var diffX = objParams.ObjectMiddleHorizontal - FieldWidth / 2; - if (Math.Abs(diffX) > GetStep()) - { - if (diffX > 0) - { - MoveLeft(); - } - else - { - MoveRight(); - } - } - var diffY = objParams.ObjectMiddleVertical - FieldHeight / 2; - if (Math.Abs(diffY) > GetStep()) - { - if (diffY > 0) - { - MoveUp(); - } - else - { - MoveDown(); - } - } - } - } -} diff --git a/MonorailProject/MonorailProject/MovementStrategy/ObjectParameters.cs b/MonorailProject/MonorailProject/MovementStrategy/ObjectParameters.cs deleted file mode 100644 index 224012b..0000000 --- a/MonorailProject/MonorailProject/MovementStrategy/ObjectParameters.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace MonorailProject.MovementStrategy -{ - public class ObjectParameters - { - private readonly int _x; - private readonly int _y; - private readonly int _width; - private readonly int _height; - public int LeftBorder => _x; - public int TopBorder => _y; - public int RightBorder => _x + _width; - public int DownBorder => _y + _height; - public int ObjectMiddleHorizontal => _x + _width / 2; - public int ObjectMiddleVertical => _y + _height / 2; - public ObjectParameters(int x, int y, int width, int height) - { - _x = x; - _y = y; - _width = width; - _height = height; - } - - } -} diff --git a/MonorailProject/MonorailProject/MovementStrategy/Status.cs b/MonorailProject/MonorailProject/MovementStrategy/Status.cs deleted file mode 100644 index 190029c..0000000 --- a/MonorailProject/MonorailProject/MovementStrategy/Status.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace MonorailProject.MovementStrategy -{ - public enum Status - { - NotInit, - InProgress, - Finish - } - -} diff --git a/MonorailProject/MonorailProject/Program.cs b/MonorailProject/MonorailProject/Program.cs deleted file mode 100644 index a0a7472..0000000 --- a/MonorailProject/MonorailProject/Program.cs +++ /dev/null @@ -1,17 +0,0 @@ -namespace MonorailProject -{ - internal static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - // To customize application configuration such as set high DPI settings or default font, - // see https://aka.ms/applicationconfiguration. - ApplicationConfiguration.Initialize(); - Application.Run(new Form1()); - } - } -} \ No newline at end of file diff --git a/MonorailProject/MonorailProject/Properties/Resources.Designer.cs b/MonorailProject/MonorailProject/Properties/Resources.Designer.cs deleted file mode 100644 index 1d7c9f9..0000000 --- a/MonorailProject/MonorailProject/Properties/Resources.Designer.cs +++ /dev/null @@ -1,103 +0,0 @@ -//------------------------------------------------------------------------------ -// -// Этот код создан программой. -// Исполняемая версия:4.0.30319.42000 -// -// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае -// повторной генерации кода. -// -//------------------------------------------------------------------------------ - -namespace MonorailProject.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("MonorailProject.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Перезаписывает свойство CurrentUICulture текущего потока для всех - /// обращений к ресурсу с помощью этого класса ресурса со строгой типизацией. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// - /// Поиск локализованного ресурса типа System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap down_arrow { - get { - object obj = ResourceManager.GetObject("down-arrow", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Поиск локализованного ресурса типа System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap left_arrow { - get { - object obj = ResourceManager.GetObject("left-arrow", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Поиск локализованного ресурса типа System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap right_arrow { - get { - object obj = ResourceManager.GetObject("right-arrow", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Поиск локализованного ресурса типа System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap upper_arrow { - get { - object obj = ResourceManager.GetObject("upper-arrow", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - } -} diff --git a/MonorailProject/MonorailProject/Properties/Resources.resx b/MonorailProject/MonorailProject/Properties/Resources.resx deleted file mode 100644 index 44bb4fe..0000000 --- a/MonorailProject/MonorailProject/Properties/Resources.resx +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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\down-arrow.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\right-arrow.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\upper-arrow.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\left-arrow.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - \ No newline at end of file diff --git a/MonorailProject/MonorailProject/Resources/down-arrow.png b/MonorailProject/MonorailProject/Resources/down-arrow.png deleted file mode 100644 index 9d67143..0000000 Binary files a/MonorailProject/MonorailProject/Resources/down-arrow.png and /dev/null differ diff --git a/MonorailProject/MonorailProject/Resources/left-arrow.png b/MonorailProject/MonorailProject/Resources/left-arrow.png deleted file mode 100644 index 046470d..0000000 Binary files a/MonorailProject/MonorailProject/Resources/left-arrow.png and /dev/null differ diff --git a/MonorailProject/MonorailProject/Resources/right-arrow.png b/MonorailProject/MonorailProject/Resources/right-arrow.png deleted file mode 100644 index fac4c96..0000000 Binary files a/MonorailProject/MonorailProject/Resources/right-arrow.png and /dev/null differ diff --git a/MonorailProject/MonorailProject/Resources/upper-arrow.png b/MonorailProject/MonorailProject/Resources/upper-arrow.png deleted file mode 100644 index 0bc323d..0000000 Binary files a/MonorailProject/MonorailProject/Resources/upper-arrow.png and /dev/null differ