From f0605b226af182607400c9154a792dcae0ba8424 Mon Sep 17 00:00:00 2001 From: Itos Date: Thu, 3 Oct 2024 00:16:11 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GasolineTanker/DrawningGasolineTanker.cs | 163 --------------- .../GasolineTanker/EntityGasolineTanker.cs | 35 ---- .../GasolineTanker/Form1.Designer.cs | 138 ------------- GasolineTanker/GasolineTanker/Form1.cs | 65 ------ .../GasolineTanker/Resources/down.png | Bin 4284 -> 0 bytes .../GasolineTanker/Resources/left.png | Bin 4363 -> 0 bytes .../GasolineTanker/Resources/right.png | Bin 1986 -> 0 bytes .../GasolineTanker/Resources/up.png | Bin 4368 -> 0 bytes ...neTanker.sln => ProjectGasolineTanker.sln} | 14 +- .../ProjectGasolineTanker/AbstractStrategy.cs | 74 +++++++ .../DirectionType.cs} | 6 +- .../DrawingGasolineTanker.cs | 46 +++++ .../DrawingObjectTruck.cs | 35 ++++ .../ProjectGasolineTanker/DrawingTruck.cs | 136 +++++++++++++ .../EntityGasolineTanker.cs | 22 ++ .../ProjectGasolineTanker/EntityTruck.cs | 22 ++ .../FormGasolineTanker.Designer.cs | 190 ++++++++++++++++++ .../FormGasolineTanker.cs | 111 ++++++++++ .../FormGasolineTanker.resx} | 0 .../ProjectGasolineTanker/IMoveableObject.cs | 18 ++ .../ProjectGasolineTanker/MoveToBorder.cs | 57 ++++++ .../ProjectGasolineTanker/MoveToCenter.cs | 57 ++++++ .../ProjectGasolineTanker/ObjectParameters.cs | 29 +++ .../Program.cs | 6 +- .../ProjectGasolineTanker.csproj} | 0 .../Properties/Resources.Designer.cs | 20 +- .../Properties/Resources.resx | 16 +- .../Resources/стрелка вверх.png | Bin 0 -> 17708 bytes .../Resources/стрелка влево.png | Bin 0 -> 16778 bytes .../Resources/стрелка вниз.png | Bin 0 -> 17650 bytes .../Resources/стрелка вправо.png | Bin 0 -> 16846 bytes .../ProjectGasolineTanker/Status.cs | 15 ++ 32 files changed, 843 insertions(+), 432 deletions(-) delete mode 100644 GasolineTanker/GasolineTanker/DrawningGasolineTanker.cs delete mode 100644 GasolineTanker/GasolineTanker/EntityGasolineTanker.cs delete mode 100644 GasolineTanker/GasolineTanker/Form1.Designer.cs delete mode 100644 GasolineTanker/GasolineTanker/Form1.cs delete mode 100644 GasolineTanker/GasolineTanker/Resources/down.png delete mode 100644 GasolineTanker/GasolineTanker/Resources/left.png delete mode 100644 GasolineTanker/GasolineTanker/Resources/right.png delete mode 100644 GasolineTanker/GasolineTanker/Resources/up.png rename GasolineTanker/{GasolineTanker.sln => ProjectGasolineTanker.sln} (54%) create mode 100644 GasolineTanker/ProjectGasolineTanker/AbstractStrategy.cs rename GasolineTanker/{GasolineTanker/Direction.cs => ProjectGasolineTanker/DirectionType.cs} (76%) create mode 100644 GasolineTanker/ProjectGasolineTanker/DrawingGasolineTanker.cs create mode 100644 GasolineTanker/ProjectGasolineTanker/DrawingObjectTruck.cs create mode 100644 GasolineTanker/ProjectGasolineTanker/DrawingTruck.cs create mode 100644 GasolineTanker/ProjectGasolineTanker/EntityGasolineTanker.cs create mode 100644 GasolineTanker/ProjectGasolineTanker/EntityTruck.cs create mode 100644 GasolineTanker/ProjectGasolineTanker/FormGasolineTanker.Designer.cs create mode 100644 GasolineTanker/ProjectGasolineTanker/FormGasolineTanker.cs rename GasolineTanker/{GasolineTanker/Form1.resx => ProjectGasolineTanker/FormGasolineTanker.resx} (100%) create mode 100644 GasolineTanker/ProjectGasolineTanker/IMoveableObject.cs create mode 100644 GasolineTanker/ProjectGasolineTanker/MoveToBorder.cs create mode 100644 GasolineTanker/ProjectGasolineTanker/MoveToCenter.cs create mode 100644 GasolineTanker/ProjectGasolineTanker/ObjectParameters.cs rename GasolineTanker/{GasolineTanker => ProjectGasolineTanker}/Program.cs (81%) rename GasolineTanker/{GasolineTanker/GasolineTanker.csproj => ProjectGasolineTanker/ProjectGasolineTanker.csproj} (100%) rename GasolineTanker/{GasolineTanker => ProjectGasolineTanker}/Properties/Resources.Designer.cs (82%) rename GasolineTanker/{GasolineTanker => ProjectGasolineTanker}/Properties/Resources.resx (84%) create mode 100644 GasolineTanker/ProjectGasolineTanker/Resources/стрелка вверх.png create mode 100644 GasolineTanker/ProjectGasolineTanker/Resources/стрелка влево.png create mode 100644 GasolineTanker/ProjectGasolineTanker/Resources/стрелка вниз.png create mode 100644 GasolineTanker/ProjectGasolineTanker/Resources/стрелка вправо.png create mode 100644 GasolineTanker/ProjectGasolineTanker/Status.cs diff --git a/GasolineTanker/GasolineTanker/DrawningGasolineTanker.cs b/GasolineTanker/GasolineTanker/DrawningGasolineTanker.cs deleted file mode 100644 index 674604f..0000000 --- a/GasolineTanker/GasolineTanker/DrawningGasolineTanker.cs +++ /dev/null @@ -1,163 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace GasolineTanker -{ - public class DrawningGasolineTanker - { - public EntityGasolineTanker? EntityGasolineTanker { get; private set; } - public int _pictureWidth; - public int _pictureHeight; - private int _startPosX = 0; - private int _startPosY = 0; - //Ширина грузовика - private readonly int _gasolineTankerWidth = 200; - //Высота грузовика - private readonly int _gasolineTankerHeight = 100; - //Инициализация свойств - public bool Init(int speed, double weight, Color bodyColor, bool tank, bool signalBeacon, Color additionalColor, int width, int height) - { - - if (width <= _gasolineTankerWidth || height <= _gasolineTankerHeight) - { - return false; - } - _pictureWidth = width; - _pictureHeight = height; - EntityGasolineTanker = new EntityGasolineTanker(); - EntityGasolineTanker.Init(speed, weight, bodyColor, tank, signalBeacon, additionalColor); - return true; - } - public void SetPosition(int x, int y) - { - if (EntityGasolineTanker == null) - { - return; - } - _startPosX = x; - _startPosY = y; - if(x + _gasolineTankerWidth >= _pictureWidth || y + _gasolineTankerHeight >= _pictureHeight) - { - _startPosX = 1; - _startPosY = 1; - } - } - public void MoveTransport(Direction direction) - { - if (EntityGasolineTanker == null) - { - return; - } - switch (direction) - { - case Direction.Left: - if (_startPosX - EntityGasolineTanker.Step >= 0) - { - _startPosX -= (int)EntityGasolineTanker.Step; - } - else - { - _startPosX = 0; - } - break; - case Direction.Up: - if (_startPosY - EntityGasolineTanker.Step > 0) - { - _startPosY -= (int)EntityGasolineTanker.Step; - } - else - { - _startPosY = 0; - } - break; - case Direction.Right: - if (_startPosX + EntityGasolineTanker.Step + _gasolineTankerWidth < _pictureWidth) - { - _startPosX += (int)EntityGasolineTanker.Step; - } - else - { - _startPosX = _pictureWidth - _gasolineTankerWidth; - } - break; - case Direction.Down: - if (_startPosY + EntityGasolineTanker.Step + _gasolineTankerHeight < _pictureHeight) - { - _startPosY += (int)EntityGasolineTanker.Step; - } - else - { - _startPosY = _pictureHeight - _gasolineTankerHeight; - } - break; - } - } - public void DrawTransport(Graphics g) - { - if (EntityGasolineTanker == null) - { - return; - } - Pen pen = new(Color.Black); - Brush bodyBrush = new SolidBrush(EntityGasolineTanker.BodyColor); - Brush additionalBrush = new SolidBrush(EntityGasolineTanker.AdditionalColor); - Brush wheelBrush = new SolidBrush(Color.Black); - //Дополнительные элементы - if (EntityGasolineTanker.Tank) - { - //Цистерна - g.FillEllipse(additionalBrush, _startPosX + _gasolineTankerWidth / 20 * 0, _startPosY + _gasolineTankerHeight / 10 * 1, _gasolineTankerWidth / 20 * 5, _gasolineTankerHeight / 10 * 5); - g.FillEllipse(additionalBrush, _startPosX + _gasolineTankerWidth / 20 * 7, _startPosY + _gasolineTankerHeight / 10 * 1, _gasolineTankerWidth / 20 * 5, _gasolineTankerHeight / 10 * 5); - Point[] pointsTunk = - { - new Point(_startPosX + _gasolineTankerWidth / 20 * 2, _startPosY + _gasolineTankerHeight / 10 * 1), - new Point(_startPosX + _gasolineTankerWidth / 20 * 9, _startPosY + _gasolineTankerHeight / 10 * 1), - new Point(_startPosX + _gasolineTankerWidth / 20 * 9, _startPosY + _gasolineTankerHeight / 10 * 6), - new Point(_startPosX + _gasolineTankerWidth / 20 * 2, _startPosY + _gasolineTankerHeight / 10 * 6), - }; - g.FillPolygon(additionalBrush, pointsTunk); - } - if (EntityGasolineTanker.SignalBeacon) - { - //Маячок - Point[] pointsBeacon = - { - new Point(_startPosX + _gasolineTankerWidth / 20 * 13, _startPosY + _gasolineTankerHeight / 10 * 1), - new Point(_startPosX + _gasolineTankerWidth / 20 * 13, _startPosY + _gasolineTankerHeight / 10 * 0), - new Point(_startPosX + _gasolineTankerWidth / 20 * 14, _startPosY + _gasolineTankerHeight / 10 * 0), - new Point(_startPosX + _gasolineTankerWidth / 20 * 14, _startPosY + _gasolineTankerHeight / 10 * 1), - }; - g.FillPolygon(additionalBrush, pointsBeacon); - //g.DrawPolygon(pen, pointsBeacon); - } - /* - //Граница отрисовки объекта(для безопасности при редактировании) - Point[] pointsBorder = { new Point(_startPosX, _startPosY), - new Point(_startPosX, _startPosY + _gasolineTankerHeight), - new Point(_startPosX + _gasolineTankerWidth, _startPosY + _gasolineTankerHeight), - new Point(_startPosX + _gasolineTankerWidth, _startPosY)}; - - g.DrawPolygon(pen, pointsBorder); - */ - Point[] pointsFrame = { - new Point(_startPosX + _gasolineTankerWidth / 20 * 0, _startPosY + _gasolineTankerHeight / 10 * 6), - new Point(_startPosX + _gasolineTankerWidth / 20 * 12, _startPosY + _gasolineTankerHeight / 10 * 6), - new Point(_startPosX + _gasolineTankerWidth / 20 * 12, _startPosY + _gasolineTankerHeight / 10 * 1), - new Point(_startPosX + _gasolineTankerWidth / 20 * 15, _startPosY + _gasolineTankerHeight / 10 * 1), - new Point(_startPosX + _gasolineTankerWidth / 20 * 16, _startPosY + _gasolineTankerHeight / 10 * 4), - new Point(_startPosX + _gasolineTankerWidth / 20 * 20, _startPosY + _gasolineTankerHeight / 10 * 5), - new Point(_startPosX + _gasolineTankerWidth / 20 * 20, _startPosY + _gasolineTankerHeight / 10 * 8), - new Point(_startPosX + _gasolineTankerWidth / 20 * 0, _startPosY + _gasolineTankerHeight / 10 * 8),}; - - g.FillPolygon(bodyBrush, pointsFrame); - g.DrawPolygon(pen, pointsFrame); - //Колёса - g.FillEllipse(wheelBrush, _startPosX + _gasolineTankerWidth / 20 * 1, _startPosY + _gasolineTankerHeight / 10 * 7, _gasolineTankerWidth / 20 * 3, _gasolineTankerHeight / 10 * 3); - g.FillEllipse(wheelBrush, _startPosX + _gasolineTankerWidth / 20 * 5, _startPosY + _gasolineTankerHeight / 10 * 7, _gasolineTankerWidth / 20 * 3, _gasolineTankerHeight / 10 * 3); - g.FillEllipse(wheelBrush, _startPosX + _gasolineTankerWidth / 20 * 16, _startPosY + _gasolineTankerHeight / 10 * 7, _gasolineTankerWidth / 20 * 3, _gasolineTankerHeight / 10 * 3); - } - } -} diff --git a/GasolineTanker/GasolineTanker/EntityGasolineTanker.cs b/GasolineTanker/GasolineTanker/EntityGasolineTanker.cs deleted file mode 100644 index bf89b23..0000000 --- a/GasolineTanker/GasolineTanker/EntityGasolineTanker.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Drawing; - -namespace GasolineTanker -{ - public class EntityGasolineTanker - { - public int Speed { get; private set; } - public double Weight { get; private set; } - // Основной цвет - public Color BodyColor { get; private set; } - //Наличие цистерны - public bool Tank { get; private set; } - //Наличие сигнального маяка - public bool SignalBeacon { 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, bool tank, bool signalBeacon, Color additionalColor) - { - Speed = speed; - Weight = weight; - BodyColor = bodyColor; - Tank = tank; - SignalBeacon = signalBeacon; - AdditionalColor = additionalColor; - } - } -} diff --git a/GasolineTanker/GasolineTanker/Form1.Designer.cs b/GasolineTanker/GasolineTanker/Form1.Designer.cs deleted file mode 100644 index 220fc1f..0000000 --- a/GasolineTanker/GasolineTanker/Form1.Designer.cs +++ /dev/null @@ -1,138 +0,0 @@ -namespace GasolineTanker -{ - partial class GasolineTanker - { - /// - /// 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.PictureBoxGasolineTanker = new System.Windows.Forms.PictureBox(); - this.ButtonCreate = new System.Windows.Forms.Button(); - this.ButtonRight = new System.Windows.Forms.Button(); - this.ButtonDown = new System.Windows.Forms.Button(); - this.ButtonLeft = new System.Windows.Forms.Button(); - this.ButtonUp = new System.Windows.Forms.Button(); - ((System.ComponentModel.ISupportInitialize)(this.PictureBoxGasolineTanker)).BeginInit(); - this.SuspendLayout(); - // - // PictureBoxGasolineTanker - // - this.PictureBoxGasolineTanker.Dock = System.Windows.Forms.DockStyle.Fill; - this.PictureBoxGasolineTanker.Location = new System.Drawing.Point(0, 0); - this.PictureBoxGasolineTanker.Name = "PictureBoxGasolineTanker"; - this.PictureBoxGasolineTanker.Size = new System.Drawing.Size(884, 461); - this.PictureBoxGasolineTanker.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; - this.PictureBoxGasolineTanker.TabIndex = 0; - this.PictureBoxGasolineTanker.TabStop = false; - // - // ButtonCreate - // - this.ButtonCreate.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.ButtonCreate.Location = new System.Drawing.Point(12, 426); - this.ButtonCreate.Name = "ButtonCreate"; - this.ButtonCreate.Size = new System.Drawing.Size(75, 23); - this.ButtonCreate.TabIndex = 1; - this.ButtonCreate.Text = "Создать"; - this.ButtonCreate.UseVisualStyleBackColor = true; - this.ButtonCreate.Click += new System.EventHandler(this.ButtonCreate_Click); - // - // ButtonRight - // - this.ButtonRight.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.ButtonRight.BackgroundImage = global::GasolineTanker.Properties.Resources.right; - this.ButtonRight.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; - this.ButtonRight.Location = new System.Drawing.Point(842, 419); - this.ButtonRight.Name = "ButtonRight"; - this.ButtonRight.Size = new System.Drawing.Size(30, 30); - this.ButtonRight.TabIndex = 2; - 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::GasolineTanker.Properties.Resources.down; - this.ButtonDown.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; - this.ButtonDown.Location = new System.Drawing.Point(806, 419); - this.ButtonDown.Name = "ButtonDown"; - this.ButtonDown.Size = new System.Drawing.Size(30, 30); - this.ButtonDown.TabIndex = 3; - this.ButtonDown.UseVisualStyleBackColor = true; - this.ButtonDown.Click += new System.EventHandler(this.ButtonMove_Click); - // - // ButtonLeft - // - this.ButtonLeft.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.ButtonLeft.BackgroundImage = global::GasolineTanker.Properties.Resources.left; - this.ButtonLeft.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; - this.ButtonLeft.Location = new System.Drawing.Point(770, 419); - this.ButtonLeft.Name = "ButtonLeft"; - this.ButtonLeft.Size = new System.Drawing.Size(30, 30); - this.ButtonLeft.TabIndex = 4; - 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::GasolineTanker.Properties.Resources.up; - this.ButtonUp.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; - this.ButtonUp.Location = new System.Drawing.Point(806, 383); - this.ButtonUp.Name = "ButtonUp"; - this.ButtonUp.Size = new System.Drawing.Size(30, 30); - this.ButtonUp.TabIndex = 5; - this.ButtonUp.UseVisualStyleBackColor = true; - this.ButtonUp.Click += new System.EventHandler(this.ButtonMove_Click); - // - // GasolineTanker - // - this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(884, 461); - this.Controls.Add(this.ButtonUp); - this.Controls.Add(this.ButtonLeft); - this.Controls.Add(this.ButtonDown); - this.Controls.Add(this.ButtonRight); - this.Controls.Add(this.ButtonCreate); - this.Controls.Add(this.PictureBoxGasolineTanker); - this.Name = "GasolineTanker"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "GasolineTanker"; - ((System.ComponentModel.ISupportInitialize)(this.PictureBoxGasolineTanker)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private PictureBox PictureBoxGasolineTanker; - private Button ButtonCreate; - private Button ButtonRight; - private Button ButtonDown; - private Button ButtonLeft; - private Button ButtonUp; - } -} \ No newline at end of file diff --git a/GasolineTanker/GasolineTanker/Form1.cs b/GasolineTanker/GasolineTanker/Form1.cs deleted file mode 100644 index 224dafa..0000000 --- a/GasolineTanker/GasolineTanker/Form1.cs +++ /dev/null @@ -1,65 +0,0 @@ -namespace GasolineTanker -{ - public partial class GasolineTanker : Form - { - private DrawningGasolineTanker? _drawningGasolineTanker; - public GasolineTanker() - { - InitializeComponent(); - } - private void Draw() - { - if (_drawningGasolineTanker == null) - return; - - Bitmap bmp = new(PictureBoxGasolineTanker.Width, PictureBoxGasolineTanker.Height); - Graphics gr = Graphics.FromImage(bmp); - _drawningGasolineTanker.DrawTransport(gr); - PictureBoxGasolineTanker.Image = bmp; - } - - private void ButtonCreate_Click(object sender, EventArgs e) - { - - Random random = new(); - _drawningGasolineTanker = new DrawningGasolineTanker(); - _drawningGasolineTanker.Init( - random.Next(100, 300), - random.Next(1000, 3000), - Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)), - Convert.ToBoolean(random.Next(0, 2)), - Convert.ToBoolean(random.Next(0, 2)), - Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)), - PictureBoxGasolineTanker.Width, PictureBoxGasolineTanker.Height); - _drawningGasolineTanker.SetPosition(random.Next(10, 100), - random.Next(10, 100)); - - Draw(); - } - private void ButtonMove_Click(object sender, EventArgs e) - { - if (_drawningGasolineTanker == null) - { - return; - } - string name = ((Button)sender)?.Name ?? string.Empty; - switch (name) - { - case "ButtonUp": - _drawningGasolineTanker.MoveTransport(Direction.Up); - break; - case "ButtonDown": - _drawningGasolineTanker.MoveTransport(Direction.Down); - break; - case "ButtonLeft": - _drawningGasolineTanker.MoveTransport(Direction.Left); - break; - case "ButtonRight": - _drawningGasolineTanker.MoveTransport(Direction.Right); - break; - } - Draw(); - } - - } -} \ No newline at end of file diff --git a/GasolineTanker/GasolineTanker/Resources/down.png b/GasolineTanker/GasolineTanker/Resources/down.png deleted file mode 100644 index c49c7709fa4e2de813660de37d6b8bc514434dbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4284 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 diff --git a/GasolineTanker/GasolineTanker/Resources/right.png b/GasolineTanker/GasolineTanker/Resources/right.png deleted file mode 100644 index 5da511f3e8e20e1181e0316629ed2d876046071d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1986 zcmX|Cc~nzZ9uBez7{CZbqXA1zgdk8yKnVhQm=FR62(p=mbx=d7iY0FBFzhI)#sY?e zzC4gdXpq662m*BhY+3SBh-?L_6o^!y4iOy6G7oL%kMFmi@BHpP_nt4`-fixD2 zH8(f6zP=6sfLt!m%gfu&KB+>wdhuSz6Hq9_XB*JyJS&Mop>&-YR3Pxu@a(A1*%2>e ztw{2fd7Ikv@-3Av8XZgDTP!^t2z$?@6pva@$L?09^ajx zDNR~v96G#$wN34xJhD^WGar@gkk5xB+iYC%U=2YM!(qRR$5loHbK8PESRcV^%bm{sK4xgtnvfeXv{)4j5@AgrurOc z^Xw^b!>QeP!D<9VxZf)P*^HMb9F zqcZcuZ|g0O*3q-)=HxfWb6oBCNoK1!N7F>*!Q-rB;u0+Ur{pG#^?mbDau=4Dz}7qx zf8;kB^Stj8Gra$(DoAIUz|$g2Uq8A~o{_p^vD9u;Jv>p@nYDK9U*;9JEE0FVUx7y? zr}9$qi&I%SHzb3n1Uko{r;0pG(ADrsNP|E!M_aMpH-wJ7fT}3&2kRx)@Y2S*<0Z+L3(2iX~M%Eon!V^z6xa ziB9@fLGTVt;y=tPk))UFy(5sKU1*o`^@lVuVUP!`!kFG4AvRLm!6yU~H{#e=`2|B& z1{^4J(aZqGm}bp^1QHK>kegrNal|KZF!k~ajA_nCRwT&PDVDr&-5o_BVbC@#ar5Z{ zXwD0UByHC~8f&~BG1CXz2Iuv@IUMpZMEoBbg>2HYZ|wR;eLxv0+cUG6uVq`XO!@{S zu-0P$AE@;XU;xd@t&~SKb1&Z`(>f$g|_0?B}SuB@2q!_U^tn zU+iR_+gj(+osuH<$bIWhHRmrHIBz2-#SDiN>cNTn+ZNYHyrVL?4K!Po)}qW`bx3D*Cytc*?Yl=4Yh!MR9*W^s0ag| zm`@8o2evQy8H1A-tBpZZ0C_5z$Wze@!?$c0+a$qdAj7P+OpchFei_AMP5@%Sr|D+e zDTGy8>1Fm>wAC`rSQb4a5dRRjS8 zo?X3MLs|UHuM~q$7kwH3aRtR^nu{k(ofc%tGybcVU&>b6>)hD;$CUJEynx-f5aA|8 zqsSz$Ls?02s3o?G2VP$c-3*JsxQgs!y1MK`=l#Ju6L@VLTbKzCiqyvCFY^~18i}rl zWI#n+z-C;S&=USbWRj6HP>FJACDQhw?=dvE$xM9;vf)o$<*u-uVIa|wULs-iCa@p<&(J z<-+tN0G>#Tq!_e5OiE<(vJG4IarM>JCECo4-f_21kZ4=~na(l<>E4Gk-x0Y8EZ3}|OnTZo>cklZ8(7(p>;kXlX&E|`(0*S zfQx$Q6mLY-Z=7i^4aPuatxFnL$pFpeOx!85G@#}cwD+?l(Zj7G7Zxzk27ul!0i z$hG6QcWYLjlhHdT{}8>8AMMe?Ta1i`napx;>5-q8jX(RqUCX?&Sq&K&mGw-C3$x+a zhV2P`M%r7DD?QQr%Mbq-E<~8JkzZx>Bq#T8E!)tlwd*R`GA;e1w*94DHRc^3+#&ik U&6ci$W<*(044N;s)*~|Wf7}GOw*UYD diff --git a/GasolineTanker/GasolineTanker/Resources/up.png b/GasolineTanker/GasolineTanker/Resources/up.png deleted file mode 100644 index 9b45905982bf6973a695755a2ea6b460aa8d8eb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4368 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 G-~1;al|GID diff --git a/GasolineTanker/GasolineTanker.sln b/GasolineTanker/ProjectGasolineTanker.sln similarity index 54% rename from GasolineTanker/GasolineTanker.sln rename to GasolineTanker/ProjectGasolineTanker.sln index 8e0829c..ef650fd 100644 --- a/GasolineTanker/GasolineTanker.sln +++ b/GasolineTanker/ProjectGasolineTanker.sln @@ -1,9 +1,9 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 -VisualStudioVersion = 17.3.32901.215 +VisualStudioVersion = 17.7.34024.191 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GasolineTanker", "GasolineTanker\GasolineTanker.csproj", "{07CE8245-8EAE-4397-B520-52291E0FA5E3}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProjectGasolineTanker", "ProjectGasolineTanker\ProjectGasolineTanker.csproj", "{D0EC2C7B-1218-45A1-95F1-7697825B93CF}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,15 +11,15 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {07CE8245-8EAE-4397-B520-52291E0FA5E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {07CE8245-8EAE-4397-B520-52291E0FA5E3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {07CE8245-8EAE-4397-B520-52291E0FA5E3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {07CE8245-8EAE-4397-B520-52291E0FA5E3}.Release|Any CPU.Build.0 = Release|Any CPU + {D0EC2C7B-1218-45A1-95F1-7697825B93CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D0EC2C7B-1218-45A1-95F1-7697825B93CF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D0EC2C7B-1218-45A1-95F1-7697825B93CF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D0EC2C7B-1218-45A1-95F1-7697825B93CF}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {2ECAEF3F-3601-44FD-BAC5-49DEF6859A6B} + SolutionGuid = {7BD35329-9874-48AD-A3F4-50BA7A354CF5} EndGlobalSection EndGlobal diff --git a/GasolineTanker/ProjectGasolineTanker/AbstractStrategy.cs b/GasolineTanker/ProjectGasolineTanker/AbstractStrategy.cs new file mode 100644 index 0000000..e07c161 --- /dev/null +++ b/GasolineTanker/ProjectGasolineTanker/AbstractStrategy.cs @@ -0,0 +1,74 @@ +using ProjectGasolineTanker.MovementStrategy; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using static System.Windows.Forms.VisualStyles.VisualStyleElement; + +using ProjectGasolineTanker.DrawingObjects; + +namespace ProjectGasolineTanker.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; + } + } +} \ No newline at end of file diff --git a/GasolineTanker/GasolineTanker/Direction.cs b/GasolineTanker/ProjectGasolineTanker/DirectionType.cs similarity index 76% rename from GasolineTanker/GasolineTanker/Direction.cs rename to GasolineTanker/ProjectGasolineTanker/DirectionType.cs index 18b1336..3db36a4 100644 --- a/GasolineTanker/GasolineTanker/Direction.cs +++ b/GasolineTanker/ProjectGasolineTanker/DirectionType.cs @@ -4,13 +4,13 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace GasolineTanker +namespace ProjectGasolineTanker { - public enum Direction + public enum DirectionType { Up = 1, Down = 2, Left = 3, Right = 4 } -} +} \ No newline at end of file diff --git a/GasolineTanker/ProjectGasolineTanker/DrawingGasolineTanker.cs b/GasolineTanker/ProjectGasolineTanker/DrawingGasolineTanker.cs new file mode 100644 index 0000000..4a6834b --- /dev/null +++ b/GasolineTanker/ProjectGasolineTanker/DrawingGasolineTanker.cs @@ -0,0 +1,46 @@ +using ProjectGasolineTanker.DrawingObjects; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using ProjectGasolineTanker.Entities; + +namespace ProjectGasolineTanker +{ + public class DrawingGasolineTanker : DrawingTruck + { + public DrawingGasolineTanker(int speed, double weight, Color bodyColor, Color additionalColor, bool tank, bool wheel, int width, int height) : base(speed, weight, bodyColor, width, height, 130, 70) + { + if (EntityTruck != null) + { + EntityTruck = new EntityGasolineTanker(speed, weight, bodyColor, additionalColor, tank, wheel); + } + } + public override void DrawTransport(Graphics g) + { + if (EntityTruck is not EntityGasolineTanker GasolineTanker) + { + return; + } + Pen pen = new(Color.Black); + Pen additionalPen = new(GasolineTanker.Body); + Brush additionalBrush = new SolidBrush(GasolineTanker.Body); + base.DrawTransport(g); + if (GasolineTanker.Tank) + { + g.FillRectangle(additionalBrush, _startPosX + 45, _startPosY + 53, 35, 20); + g.DrawLine(pen, _startPosX + 45, _startPosY + 53, _startPosX + 80, _startPosY + 73); + g.DrawLine(pen, _startPosX + 80, _startPosY + 53, _startPosX + 45, _startPosY + 73); + } + if (GasolineTanker.Wheel) + { + Brush gr = new SolidBrush(Color.Gray); + g.FillEllipse(additionalBrush, _startPosX + 85, _startPosY + 55, 22, 22); + g.FillEllipse(gr, _startPosX + 87, _startPosY + 57, 18, 18); + g.DrawEllipse(pen, _startPosX + 85, _startPosY + 55, 22, 22); + } + } + } +} \ No newline at end of file diff --git a/GasolineTanker/ProjectGasolineTanker/DrawingObjectTruck.cs b/GasolineTanker/ProjectGasolineTanker/DrawingObjectTruck.cs new file mode 100644 index 0000000..1f52340 --- /dev/null +++ b/GasolineTanker/ProjectGasolineTanker/DrawingObjectTruck.cs @@ -0,0 +1,35 @@ +using ProjectGasolineTanker.MovementStrategy; +using ProjectGasolineTanker; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.NetworkInformation; +using System.Text; +using System.Threading.Tasks; + +using ProjectGasolineTanker.DrawingObjects; +namespace ProjectGasolineTanker.MovementStrategy +{ + public class DrawingObjectTruck : IMoveableObject + { + private readonly DrawingTruck? _drawingTruck = null; + public DrawingObjectTruck(DrawingTruck drawingTruck) + { + _drawingTruck = drawingTruck; + } + public ObjectParameters? GetObjectPosition + { + get + { + if (_drawingTruck == null || _drawingTruck.EntityTruck == null) + { + return null; + } + return new ObjectParameters(_drawingTruck.GetPosX,_drawingTruck.GetPosY, _drawingTruck.GetWidth, _drawingTruck.GetHeight); + } + } + public int GetStep => (int)(_drawingTruck?.EntityTruck?.Step ?? 0); + public bool CheckCanMove(DirectionType direction) => _drawingTruck?.CanMove(direction) ?? false; + public void MoveObject(DirectionType direction) => _drawingTruck?.MoveTransport(direction); + } +} \ No newline at end of file diff --git a/GasolineTanker/ProjectGasolineTanker/DrawingTruck.cs b/GasolineTanker/ProjectGasolineTanker/DrawingTruck.cs new file mode 100644 index 0000000..af132d7 --- /dev/null +++ b/GasolineTanker/ProjectGasolineTanker/DrawingTruck.cs @@ -0,0 +1,136 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +using ProjectGasolineTanker.Entities; + +namespace ProjectGasolineTanker.DrawingObjects +{ + public class DrawingTruck + { + public EntityTruck? EntityTruck { get; protected set; } + private int _pictureWidth; + private int _pictureHeight; + protected int _startPosX; + protected int _startPosY; + protected readonly int _tankerWidth = 130; + protected readonly int _tankerHeight = 70; + public int GetPosX => _startPosX; + public int GetPosY => _startPosY; + public int GetWidth => _tankerWidth; + public int GetHeight => _tankerHeight; + public DrawingTruck(int speed, double weight, Color bodyColor, int width, int height) + { + if (width < _tankerWidth || height < _tankerHeight) + { + return; + } + _pictureWidth = width; + _pictureHeight = height; + EntityTruck = new EntityTruck(speed, weight, bodyColor); + } + protected DrawingTruck(int speed, double weight, Color bodyColor, int width, int height, int tankerWidth, int tankerHeight) + { + if (width < _tankerWidth || height < _tankerHeight) + { + return; + } + _pictureWidth = width; + _pictureHeight = height; + _tankerWidth = tankerWidth; + _tankerHeight = tankerHeight; + EntityTruck = new EntityTruck(speed, weight, bodyColor); + } + public void SetPosition(int x, int y) + { + if (x > _pictureWidth || y > _pictureHeight) + { + return; + } + _startPosX = x; + _startPosY = y; + } + public void MoveTransport(DirectionType direction) + { + if (!CanMove(direction) || EntityTruck == null) + { + return; + } + switch (direction) + { + case DirectionType.Left: + if (_startPosX - EntityTruck.Step > 0) + { + _startPosX -= (int)EntityTruck.Step; + } + break; + case DirectionType.Up: + if (_startPosY - EntityTruck.Step > 0) + { + _startPosY -= (int)EntityTruck.Step; + } + break; + case DirectionType.Right: + if (_startPosX + _tankerWidth + EntityTruck.Step < _pictureWidth) + { + _startPosX += (int)EntityTruck.Step; + } + break; + case DirectionType.Down: + if (_startPosY + _tankerHeight + EntityTruck.Step < _pictureHeight) + { + _startPosY += (int)EntityTruck.Step; + } + break; + } + } + public virtual void DrawTransport(Graphics g) + { + Pen pen = new(Color.Black); + Brush additionalBrush = new SolidBrush(EntityTruck.BodyColor); + g.FillRectangle(additionalBrush, _startPosX + 29, _startPosY + 11, 71, 28); + g.FillRectangle(additionalBrush, _startPosX + 29, _startPosY + 20, 71, 9); + g.DrawRectangle(pen, _startPosX + 29, _startPosY + 11, 71, 28); + g.DrawRectangle(pen, _startPosX + 29, _startPosY + 20, 71, 9); + Brush additionalBrush1 = new + SolidBrush(EntityTruck.BodyColor); + g.FillRectangle(additionalBrush1, _startPosX + 100, _startPosY + 10, 24, 16); + g.FillRectangle(additionalBrush1, _startPosX + 124, _startPosY + 10, 9, 16); + g.FillRectangle(additionalBrush1, _startPosX + 100, _startPosY + 10, 33, 16); + g.FillRectangle(additionalBrush1, _startPosX + 100, _startPosY + 26, 33, 13); + g.DrawLine(pen, _startPosX + 100, _startPosY + 26, _startPosX + 133, _startPosY + 39); + g.DrawRectangle(pen, _startPosX + 100, _startPosY + 10, 24, 16); + g.DrawRectangle(pen, _startPosX + 124, _startPosY + 10, 9, 16); + g.DrawRectangle(pen, _startPosX + 100, _startPosY + 10, 33, 16); + g.DrawRectangle(pen, _startPosX + 100, _startPosY + 26, 33, 13); + Brush additionalBrush2 = new + SolidBrush(EntityTruck.BodyColor); + g.FillRectangle(additionalBrush2, _startPosX + 4, _startPosY + 40, 130, 25); + g.DrawLine(pen, _startPosX + 4, _startPosY + 65, _startPosX + 25, _startPosY + 40); + Brush gr = new SolidBrush(Color.Gray); + g.FillEllipse(additionalBrush, _startPosX + 15, _startPosY + 50, 26, 26); + g.FillEllipse(additionalBrush, _startPosX + 110, _startPosY + 55, 22, 22); + g.FillEllipse(gr, _startPosX + 18, _startPosY + 53, 20, 20); + g.FillEllipse(gr, _startPosX + 112, _startPosY + 57, 18, 18); + g.DrawEllipse(pen, _startPosX + 15, _startPosY + 50, 26, 26); + g.DrawEllipse(pen, _startPosX + 110, _startPosY + 55, 22, 22); + } + public bool CanMove(DirectionType direction) + { + if (EntityTruck == null) + { + return false; + } + return direction switch + { + DirectionType.Left => _startPosX - EntityTruck.Step > 0, + DirectionType.Up => _startPosY - EntityTruck.Step > 0, + DirectionType.Right => _startPosX + _tankerWidth + EntityTruck.Step < _pictureWidth, + DirectionType.Down => _startPosY + _tankerHeight + EntityTruck.Step < _pictureHeight, + _ => false, + }; + } + } +} \ No newline at end of file diff --git a/GasolineTanker/ProjectGasolineTanker/EntityGasolineTanker.cs b/GasolineTanker/ProjectGasolineTanker/EntityGasolineTanker.cs new file mode 100644 index 0000000..ee8b67b --- /dev/null +++ b/GasolineTanker/ProjectGasolineTanker/EntityGasolineTanker.cs @@ -0,0 +1,22 @@ +using ProjectGasolineTanker.Entities; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectGasolineTanker.Entities +{ + public class EntityGasolineTanker : EntityTruck + { + public Color Body { get; private set; } + public bool Tank { get; private set; } + public bool Wheel { get; private set; } + public EntityGasolineTanker(int speed, double weight, Color bodyColor, Color additionalColor, bool tank, bool wheel) : base(speed, weight, bodyColor) + { + Body = additionalColor; + Tank = tank; + Wheel = wheel; + } + } +} \ No newline at end of file diff --git a/GasolineTanker/ProjectGasolineTanker/EntityTruck.cs b/GasolineTanker/ProjectGasolineTanker/EntityTruck.cs new file mode 100644 index 0000000..b3a3ec2 --- /dev/null +++ b/GasolineTanker/ProjectGasolineTanker/EntityTruck.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectGasolineTanker.Entities +{ + public class EntityTruck + { + 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 EntityTruck(int speed, double weight, Color bodyColor) + { + Speed = speed; + Weight = weight; + BodyColor = bodyColor; + } + } +} \ No newline at end of file diff --git a/GasolineTanker/ProjectGasolineTanker/FormGasolineTanker.Designer.cs b/GasolineTanker/ProjectGasolineTanker/FormGasolineTanker.Designer.cs new file mode 100644 index 0000000..f36ec80 --- /dev/null +++ b/GasolineTanker/ProjectGasolineTanker/FormGasolineTanker.Designer.cs @@ -0,0 +1,190 @@ +namespace ProjectGasolineTanker +{ + partial class FormGasolineTanker + { + /// + /// 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.pictureBoxGasolineTanker = new System.Windows.Forms.PictureBox(); + this.buttonCreateGasolineTanker = new System.Windows.Forms.Button(); + this.buttonUp = new System.Windows.Forms.Button(); + this.buttonLeft = new System.Windows.Forms.Button(); + this.buttonDown = new System.Windows.Forms.Button(); + this.buttonRight = new System.Windows.Forms.Button(); + this.comboBoxStrategy = new System.Windows.Forms.ComboBox(); + this.buttonStep = new System.Windows.Forms.Button(); + this.buttonCreateTruck = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBoxGasolineTanker)).BeginInit(); + this.SuspendLayout(); + // + // pictureBoxGasolineTanker + // + this.pictureBoxGasolineTanker.Dock = System.Windows.Forms.DockStyle.Fill; + this.pictureBoxGasolineTanker.Location = new System.Drawing.Point(0, 0); + this.pictureBoxGasolineTanker.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.pictureBoxGasolineTanker.Name = "pictureBoxGasolineTanker"; + this.pictureBoxGasolineTanker.Size = new System.Drawing.Size(772, 340); + this.pictureBoxGasolineTanker.TabIndex = 5; + this.pictureBoxGasolineTanker.TabStop = false; + // + // buttonCreateGasolineTanker + // + this.buttonCreateGasolineTanker.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.buttonCreateGasolineTanker.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); + this.buttonCreateGasolineTanker.Location = new System.Drawing.Point(10, 274); + this.buttonCreateGasolineTanker.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.buttonCreateGasolineTanker.Name = "buttonCreateGasolineTanker"; + this.buttonCreateGasolineTanker.Size = new System.Drawing.Size(105, 55); + this.buttonCreateGasolineTanker.TabIndex = 6; + this.buttonCreateGasolineTanker.Text = "Создать газовоз"; + this.buttonCreateGasolineTanker.UseVisualStyleBackColor = true; + this.buttonCreateGasolineTanker.Click += new System.EventHandler(this.buttonCreateGasolineTanker_Click); + // + // buttonUp + // + this.buttonUp.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonUp.BackgroundImage = global::ProjectGasolineTanker.Properties.Resources.стрелка_вверх; + this.buttonUp.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; + this.buttonUp.Location = new System.Drawing.Point(710, 283); + this.buttonUp.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.buttonUp.Name = "buttonUp"; + this.buttonUp.Size = new System.Drawing.Size(26, 22); + this.buttonUp.TabIndex = 7; + this.buttonUp.UseVisualStyleBackColor = true; + this.buttonUp.Click += new System.EventHandler(this.buttonMove_Click); + // + // buttonLeft + // + this.buttonLeft.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonLeft.BackgroundImage = global::ProjectGasolineTanker.Properties.Resources.стрелка_влево; + this.buttonLeft.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; + this.buttonLeft.Location = new System.Drawing.Point(679, 310); + this.buttonLeft.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.buttonLeft.Name = "buttonLeft"; + this.buttonLeft.Size = new System.Drawing.Size(26, 22); + this.buttonLeft.TabIndex = 8; + this.buttonLeft.UseVisualStyleBackColor = true; + this.buttonLeft.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::ProjectGasolineTanker.Properties.Resources.стрелка_вниз; + this.buttonDown.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; + this.buttonDown.Location = new System.Drawing.Point(710, 310); + this.buttonDown.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.buttonDown.Name = "buttonDown"; + this.buttonDown.Size = new System.Drawing.Size(26, 22); + this.buttonDown.TabIndex = 9; + this.buttonDown.UseVisualStyleBackColor = true; + this.buttonDown.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::ProjectGasolineTanker.Properties.Resources.стрелка_вправо; + this.buttonRight.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom; + this.buttonRight.Location = new System.Drawing.Point(742, 310); + this.buttonRight.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.buttonRight.Name = "buttonRight"; + this.buttonRight.Size = new System.Drawing.Size(26, 22); + this.buttonRight.TabIndex = 10; + this.buttonRight.UseVisualStyleBackColor = true; + this.buttonRight.Click += new System.EventHandler(this.buttonMove_Click); + // + // comboBoxStrategy + // + this.comboBoxStrategy.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.comboBoxStrategy.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboBoxStrategy.FormattingEnabled = true; + this.comboBoxStrategy.Items.AddRange(new object[] { + "В центр", + "В правый нижний угол"}); + this.comboBoxStrategy.Location = new System.Drawing.Point(629, 9); + this.comboBoxStrategy.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.comboBoxStrategy.Name = "comboBoxStrategy"; + this.comboBoxStrategy.Size = new System.Drawing.Size(133, 23); + this.comboBoxStrategy.TabIndex = 11; + // + // buttonStep + // + this.buttonStep.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.buttonStep.Location = new System.Drawing.Point(654, 34); + this.buttonStep.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.buttonStep.Name = "buttonStep"; + this.buttonStep.Size = new System.Drawing.Size(82, 22); + this.buttonStep.TabIndex = 12; + this.buttonStep.Text = "Шаг"; + this.buttonStep.UseVisualStyleBackColor = true; + this.buttonStep.Click += new System.EventHandler(this.buttonStep_Click); + // + // buttonCreateTruck + // + this.buttonCreateTruck.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.buttonCreateTruck.Location = new System.Drawing.Point(121, 291); + this.buttonCreateTruck.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.buttonCreateTruck.Name = "buttonCreateTruck"; + this.buttonCreateTruck.Size = new System.Drawing.Size(105, 38); + this.buttonCreateTruck.TabIndex = 13; + this.buttonCreateTruck.Text = "Создать грузовик"; + this.buttonCreateTruck.UseVisualStyleBackColor = true; + this.buttonCreateTruck.Click += new System.EventHandler(this.buttonCreateTruck_Click); + // + // FormGasolineTanker + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(772, 340); + this.Controls.Add(this.buttonCreateTruck); + this.Controls.Add(this.buttonStep); + this.Controls.Add(this.comboBoxStrategy); + this.Controls.Add(this.buttonRight); + this.Controls.Add(this.buttonDown); + this.Controls.Add(this.buttonLeft); + this.Controls.Add(this.buttonUp); + this.Controls.Add(this.buttonCreateGasolineTanker); + this.Controls.Add(this.pictureBoxGasolineTanker); + this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.Name = "FormGasolineTanker"; + this.Text = "GasolineTanker"; + ((System.ComponentModel.ISupportInitialize)(this.pictureBoxGasolineTanker)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private PictureBox pictureBoxGasolineTanker; + private Button buttonCreateGasolineTanker; + private Button buttonUp; + private Button buttonLeft; + private Button buttonDown; + private Button buttonRight; + private ComboBox comboBoxStrategy; + private Button buttonStep; + private Button buttonCreateTruck; + } +} \ No newline at end of file diff --git a/GasolineTanker/ProjectGasolineTanker/FormGasolineTanker.cs b/GasolineTanker/ProjectGasolineTanker/FormGasolineTanker.cs new file mode 100644 index 0000000..d0c7fdd --- /dev/null +++ b/GasolineTanker/ProjectGasolineTanker/FormGasolineTanker.cs @@ -0,0 +1,111 @@ +using ProjectGasolineTanker.DrawingObjects; +using ProjectGasolineTanker.MovementStrategy; + +namespace ProjectGasolineTanker +{ + public partial class FormGasolineTanker : Form + { + private DrawingTruck? _drawingTruck; + private AbstractStrategy? _abstractStrategy; + public FormGasolineTanker() + { + InitializeComponent(); + } + private void Draw() + { + if (_drawingTruck == null) + { + return; + } + Bitmap bmp = new(pictureBoxGasolineTanker.Width, pictureBoxGasolineTanker.Height); + Graphics gr = Graphics.FromImage(bmp); + _drawingTruck.DrawTransport(gr); + pictureBoxGasolineTanker.Image = bmp; + } + private void buttonCreateGasolineTanker_Click(object sender, EventArgs e) + { + Random random = new(); + _drawingTruck = new DrawingGasolineTanker(random.Next(100, 300), + random.Next(1000, 3000), + Color.FromArgb(random.Next(0, 256), random.Next(0, 256), + random.Next(0, 256)), + Color.FromArgb(random.Next(0, 256), random.Next(0, 256), + random.Next(0, 256)), + Convert.ToBoolean(random.Next(0, 2)), + Convert.ToBoolean(random.Next(0, 2)), + pictureBoxGasolineTanker.Width, pictureBoxGasolineTanker.Height); + _drawingTruck.SetPosition(random.Next(10, 100), random.Next(10, 100)); + Draw(); + } + private void buttonCreateTruck_Click(object sender, EventArgs e) + { + Random random = new(); + _drawingTruck = new DrawingTruck(random.Next(100, 300), + random.Next(1000, 3000), + Color.FromArgb(random.Next(0, 256), random.Next(0, 256), + random.Next(0, 256)), + pictureBoxGasolineTanker.Width, pictureBoxGasolineTanker.Height); + _drawingTruck.SetPosition(random.Next(10, 100), random.Next(10, 100)); + Draw(); + + } + private void buttonMove_Click(object sender, EventArgs e) + { + if (_drawingTruck == null) + { + return; + } + string name = ((Button)sender)?.Name ?? string.Empty; + switch (name) + { + case "buttonUp": + _drawingTruck.MoveTransport(DirectionType.Up); + break; + case "buttonDown": + _drawingTruck.MoveTransport(DirectionType.Down); + break; + case "buttonLeft": + _drawingTruck.MoveTransport(DirectionType.Left); + break; + case "buttonRight": + _drawingTruck.MoveTransport(DirectionType.Right); + break; + } + Draw(); + } + private void buttonStep_Click(object sender, EventArgs e) + { + if (_drawingTruck == null) + { + return; + } + if (comboBoxStrategy.Enabled) + { + _abstractStrategy = comboBoxStrategy.SelectedIndex + switch + { + 0 => new MoveToCenter(), + 1 => new MoveToBorder(), + _ => null, + }; + if (_abstractStrategy == null) + { + return; + } + _abstractStrategy.SetData(new DrawingObjectTruck(_drawingTruck), pictureBoxGasolineTanker.Width, pictureBoxGasolineTanker.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/GasolineTanker/GasolineTanker/Form1.resx b/GasolineTanker/ProjectGasolineTanker/FormGasolineTanker.resx similarity index 100% rename from GasolineTanker/GasolineTanker/Form1.resx rename to GasolineTanker/ProjectGasolineTanker/FormGasolineTanker.resx diff --git a/GasolineTanker/ProjectGasolineTanker/IMoveableObject.cs b/GasolineTanker/ProjectGasolineTanker/IMoveableObject.cs new file mode 100644 index 0000000..f28d991 --- /dev/null +++ b/GasolineTanker/ProjectGasolineTanker/IMoveableObject.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +using ProjectGasolineTanker.DrawingObjects; + +namespace ProjectGasolineTanker.MovementStrategy +{ + public interface IMoveableObject + { + ObjectParameters? GetObjectPosition { get; } + int GetStep { get; } + bool CheckCanMove(DirectionType direction); + void MoveObject(DirectionType direction); + } +} \ No newline at end of file diff --git a/GasolineTanker/ProjectGasolineTanker/MoveToBorder.cs b/GasolineTanker/ProjectGasolineTanker/MoveToBorder.cs new file mode 100644 index 0000000..0af485a --- /dev/null +++ b/GasolineTanker/ProjectGasolineTanker/MoveToBorder.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectGasolineTanker.MovementStrategy +{ + internal 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.ObjectMiddleHorizontal - FieldWidth; + if (Math.Abs(diffX) > GetStep()) + { + if (diffX > 0) + { + MoveLeft(); + } + else + { + MoveRight(); + } + + } + var diffY = objParams.ObjectMiddleVertical - FieldHeight; + if (Math.Abs(diffY) > GetStep()) + { + if (diffY > 0) + { + MoveUp(); + } + else + { + MoveDown(); + } + } + } + } +} \ No newline at end of file diff --git a/GasolineTanker/ProjectGasolineTanker/MoveToCenter.cs b/GasolineTanker/ProjectGasolineTanker/MoveToCenter.cs new file mode 100644 index 0000000..48605d6 --- /dev/null +++ b/GasolineTanker/ProjectGasolineTanker/MoveToCenter.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectGasolineTanker.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(); + } + } + } + } +} \ No newline at end of file diff --git a/GasolineTanker/ProjectGasolineTanker/ObjectParameters.cs b/GasolineTanker/ProjectGasolineTanker/ObjectParameters.cs new file mode 100644 index 0000000..f64e34d --- /dev/null +++ b/GasolineTanker/ProjectGasolineTanker/ObjectParameters.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectGasolineTanker.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; + } + } +} \ No newline at end of file diff --git a/GasolineTanker/GasolineTanker/Program.cs b/GasolineTanker/ProjectGasolineTanker/Program.cs similarity index 81% rename from GasolineTanker/GasolineTanker/Program.cs rename to GasolineTanker/ProjectGasolineTanker/Program.cs index 1d3c138..fa1a74f 100644 --- a/GasolineTanker/GasolineTanker/Program.cs +++ b/GasolineTanker/ProjectGasolineTanker/Program.cs @@ -1,4 +1,4 @@ -namespace GasolineTanker +namespace ProjectGasolineTanker { internal static class Program { @@ -7,11 +7,11 @@ namespace GasolineTanker /// [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 GasolineTanker()); + Application.Run(new FormGasolineTanker()); } } } \ No newline at end of file diff --git a/GasolineTanker/GasolineTanker/GasolineTanker.csproj b/GasolineTanker/ProjectGasolineTanker/ProjectGasolineTanker.csproj similarity index 100% rename from GasolineTanker/GasolineTanker/GasolineTanker.csproj rename to GasolineTanker/ProjectGasolineTanker/ProjectGasolineTanker.csproj diff --git a/GasolineTanker/GasolineTanker/Properties/Resources.Designer.cs b/GasolineTanker/ProjectGasolineTanker/Properties/Resources.Designer.cs similarity index 82% rename from GasolineTanker/GasolineTanker/Properties/Resources.Designer.cs rename to GasolineTanker/ProjectGasolineTanker/Properties/Resources.Designer.cs index 8d2c2a7..67e6e50 100644 --- a/GasolineTanker/GasolineTanker/Properties/Resources.Designer.cs +++ b/GasolineTanker/ProjectGasolineTanker/Properties/Resources.Designer.cs @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -namespace GasolineTanker.Properties { +namespace ProjectGasolineTanker.Properties { using System; @@ -39,7 +39,7 @@ namespace GasolineTanker.Properties { internal static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("GasolineTanker.Properties.Resources", typeof(Resources).Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ProjectGasolineTanker.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; @@ -63,9 +63,9 @@ namespace GasolineTanker.Properties { /// /// Поиск локализованного ресурса типа System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap down { + internal static System.Drawing.Bitmap стрелка_вверх { get { - object obj = ResourceManager.GetObject("down", resourceCulture); + object obj = ResourceManager.GetObject("стрелка вверх", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } @@ -73,9 +73,9 @@ namespace GasolineTanker.Properties { /// /// Поиск локализованного ресурса типа System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap left { + internal static System.Drawing.Bitmap стрелка_влево { get { - object obj = ResourceManager.GetObject("left", resourceCulture); + object obj = ResourceManager.GetObject("стрелка влево", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } @@ -83,9 +83,9 @@ namespace GasolineTanker.Properties { /// /// Поиск локализованного ресурса типа System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap right { + internal static System.Drawing.Bitmap стрелка_вниз { get { - object obj = ResourceManager.GetObject("right", resourceCulture); + object obj = ResourceManager.GetObject("стрелка вниз", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } @@ -93,9 +93,9 @@ namespace GasolineTanker.Properties { /// /// Поиск локализованного ресурса типа System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap up { + internal static System.Drawing.Bitmap стрелка_вправо { get { - object obj = ResourceManager.GetObject("up", resourceCulture); + object obj = ResourceManager.GetObject("стрелка вправо", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } diff --git a/GasolineTanker/GasolineTanker/Properties/Resources.resx b/GasolineTanker/ProjectGasolineTanker/Properties/Resources.resx similarity index 84% rename from GasolineTanker/GasolineTanker/Properties/Resources.resx rename to GasolineTanker/ProjectGasolineTanker/Properties/Resources.resx index 53ec0b4..39ee3cd 100644 --- a/GasolineTanker/GasolineTanker/Properties/Resources.resx +++ b/GasolineTanker/ProjectGasolineTanker/Properties/Resources.resx @@ -118,16 +118,16 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - ..\Resources\down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\стрелка вверх.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\left.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\стрелка влево.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\right.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\стрелка вниз.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\стрелка вправо.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a \ No newline at end of file diff --git a/GasolineTanker/ProjectGasolineTanker/Resources/стрелка вверх.png b/GasolineTanker/ProjectGasolineTanker/Resources/стрелка вверх.png new file mode 100644 index 0000000000000000000000000000000000000000..484c83abb0ca803fb7b68fd2ad8a0c5801365808 GIT binary patch literal 17708 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 PxYSj&j=wx=dE@^8kGTDG literal 0 HcmV?d00001 diff --git a/GasolineTanker/ProjectGasolineTanker/Resources/стрелка вниз.png b/GasolineTanker/ProjectGasolineTanker/Resources/стрелка вниз.png new file mode 100644 index 0000000000000000000000000000000000000000..b627f4bfe4dd53fe487ecb1452e35a1db4d41e4b GIT binary patch literal 17650 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 O4r%DBKR#d{^#1_pHPp=j literal 0 HcmV?d00001 diff --git a/GasolineTanker/ProjectGasolineTanker/Resources/стрелка вправо.png b/GasolineTanker/ProjectGasolineTanker/Resources/стрелка вправо.png new file mode 100644 index 0000000000000000000000000000000000000000..47c72dc3bee732067828a912127004ff38e67b65 GIT binary patch literal 16846 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

=ubhz=ouL7 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 RdDy6g%BgcFGme}1{y&kxPwD^w literal 0 HcmV?d00001 diff --git a/GasolineTanker/ProjectGasolineTanker/Status.cs b/GasolineTanker/ProjectGasolineTanker/Status.cs new file mode 100644 index 0000000..0fc547f --- /dev/null +++ b/GasolineTanker/ProjectGasolineTanker/Status.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectGasolineTanker.MovementStrategy +{ + public enum Status + { + NotInit, + InProgress, + Finish + } +} \ No newline at end of file