From e03720990d5f6a2ea450c2bfa571378b949df9df Mon Sep 17 00:00:00 2001 From: AparyanLuiza Date: Thu, 30 Nov 2023 03:15:19 +0400 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=D0=B5=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BE=D0=BA?= =?UTF-8?q?.=20=D0=A4=D0=BE=D1=80=D0=BC=D0=B0=D1=82=D0=B8=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=BA=D0=BE=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ProjectBulldozer/Drawning/DrawingBulldozer.cs | 15 ++--- ProjectBulldozer/Entities/EntityBulldozer.cs | 9 ++- ProjectBulldozer/FormBulldozer.Designer.cs | 62 ++++++++++--------- ProjectBulldozer/FormBulldozer.cs | 6 +- .../FormBulldozerCollections.Designer.cs | 16 ++++- ProjectBulldozer/FormBulldozerCollections.cs | 4 -- .../Generics/BulldozerGenericCollection.cs | 6 +- ProjectBulldozer/Generics/SetGeneric.cs | 2 +- ProjectBulldozer/Generics/Status.cs | 2 +- .../Generics/TractorGenericStorage.cs | 16 +++-- .../MovementStrategy/AbstractStrategy.cs | 6 +- .../MovementStrategy/DrawingObjectTractor.cs | 6 +- .../MovementStrategy/IMoveableObject.cs | 3 +- 13 files changed, 87 insertions(+), 66 deletions(-) diff --git a/ProjectBulldozer/Drawning/DrawingBulldozer.cs b/ProjectBulldozer/Drawning/DrawingBulldozer.cs index 7525965..0a71a4c 100644 --- a/ProjectBulldozer/Drawning/DrawingBulldozer.cs +++ b/ProjectBulldozer/Drawning/DrawingBulldozer.cs @@ -4,7 +4,7 @@ namespace ProjectBulldozer.Drawning public class DrawingBulldozer : DrawingTractor { public DrawingBulldozer(int speed, double weight, Color bodyColor, Color additionalColor, - bool horns, bool seifBatteries, int width, int height) : base(speed, weight, bodyColor, width, height, 140, 130) + bool horns, bool seifBatteries, int width, int height) : base(speed, weight, bodyColor, width, height, 120, 110) { if (EntityTractor != null) { @@ -18,22 +18,23 @@ namespace ProjectBulldozer.Drawning { return; } - Pen pen = new(Color.Black); Brush blackBrush = new SolidBrush(Color.Black); Brush windows = new SolidBrush(Color.LightBlue); Brush bodyColor = new SolidBrush(Bulldozer.BodyColor); Brush additionalColor = new SolidBrush(Bulldozer.AdditionalColor); Brush grayBrush = new SolidBrush(Color.Gray); - //otval - Point[] Otval = - { + //otval + Point[] Otval = + { new Point(_startPosX + 118, _startPosY + 50), new Point(_startPosX + 148, _startPosY + 111), new Point(_startPosX+ 118, _startPosY + 111), + + }; - g.FillPolygon(additionalColor, Otval); - g.DrawPolygon(pen, Otval); + g.FillPolygon(additionalColor, Otval); + g.DrawPolygon(pen, Otval); //гусеницы Brush gg = new SolidBrush(Color.LightGray); g.FillEllipse(gg, _startPosX + 16, _startPosY + 65, 101, 63); diff --git a/ProjectBulldozer/Entities/EntityBulldozer.cs b/ProjectBulldozer/Entities/EntityBulldozer.cs index 78c1da4..149ee6e 100644 --- a/ProjectBulldozer/Entities/EntityBulldozer.cs +++ b/ProjectBulldozer/Entities/EntityBulldozer.cs @@ -1,16 +1,15 @@ -using System; -namespace ProjectBulldozer.Entities +namespace ProjectBulldozer.Entities { public class EntityBulldozer : EntityTractor { public Color AdditionalColor { get; private set; } - public bool Otval { get; private set; } + public bool Horns { get; private set; } public bool SeifBatteries { get; private set; } - public EntityBulldozer(int speed, double weight, Color bodyColor, Color additionalColor, bool otval, + public EntityBulldozer(int speed, double weight, Color bodyColor, Color additionalColor, bool horns, bool seifBatteries) : base(speed, weight, bodyColor) { AdditionalColor = additionalColor; - Otval = otval; + Horns = horns; SeifBatteries = seifBatteries; } } diff --git a/ProjectBulldozer/FormBulldozer.Designer.cs b/ProjectBulldozer/FormBulldozer.Designer.cs index d314ac0..a543a34 100644 --- a/ProjectBulldozer/FormBulldozer.Designer.cs +++ b/ProjectBulldozer/FormBulldozer.Designer.cs @@ -4,6 +4,11 @@ namespace Bulldozer partial class FormBulldozer { 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)) @@ -13,8 +18,13 @@ namespace Bulldozer base.Dispose(disposing); } #region Windows Form Designer generated code + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// private void InitializeComponent() { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormBulldozer)); pictureBoxBulldozer = new PictureBox(); buttonCreateBulldozer = new Button(); buttonLeft = new Button(); @@ -34,7 +44,7 @@ namespace Bulldozer pictureBoxBulldozer.Location = new Point(0, 0); pictureBoxBulldozer.Margin = new Padding(2); pictureBoxBulldozer.Name = "pictureBoxBulldozer"; - pictureBoxBulldozer.Size = new Size(870, 390); + pictureBoxBulldozer.Size = new Size(870, 572); pictureBoxBulldozer.SizeMode = PictureBoxSizeMode.AutoSize; pictureBoxBulldozer.TabIndex = 0; pictureBoxBulldozer.TabStop = false; @@ -42,24 +52,24 @@ namespace Bulldozer // buttonCreateBulldozer // buttonCreateBulldozer.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; - buttonCreateBulldozer.Location = new Point(11, 332); + buttonCreateBulldozer.Location = new Point(20, 514); buttonCreateBulldozer.Margin = new Padding(2); buttonCreateBulldozer.Name = "buttonCreateBulldozer"; - buttonCreateBulldozer.Size = new Size(95, 48); + buttonCreateBulldozer.Size = new Size(88, 48); buttonCreateBulldozer.TabIndex = 1; - buttonCreateBulldozer.Text = "Создать булльдозер"; + buttonCreateBulldozer.Text = "Создать бульдозер"; buttonCreateBulldozer.UseVisualStyleBackColor = true; buttonCreateBulldozer.Click += buttonCreateBulldozer_Click; // // buttonLeft // buttonLeft.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; - buttonLeft.BackgroundImage = ProjectBulldozer.Properties.Resources.left1; + buttonLeft.BackgroundImage = (Image)resources.GetObject("buttonLeft.BackgroundImage"); buttonLeft.BackgroundImageLayout = ImageLayout.Zoom; - buttonLeft.Location = new Point(767, 353); + buttonLeft.Location = new Point(732, 522); buttonLeft.Margin = new Padding(2); buttonLeft.Name = "buttonLeft"; - buttonLeft.Size = new Size(30, 27); + buttonLeft.Size = new Size(40, 33); buttonLeft.TabIndex = 2; buttonLeft.UseVisualStyleBackColor = true; buttonLeft.Click += buttonMove_Click; @@ -67,12 +77,12 @@ namespace Bulldozer // buttonUp // buttonUp.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; - buttonUp.BackgroundImage = ProjectBulldozer.Properties.Resources.up1; + buttonUp.BackgroundImage = (Image)resources.GetObject("buttonUp.BackgroundImage"); buttonUp.BackgroundImageLayout = ImageLayout.Zoom; - buttonUp.Location = new Point(801, 320); + buttonUp.Location = new Point(776, 485); buttonUp.Margin = new Padding(2); buttonUp.Name = "buttonUp"; - buttonUp.Size = new Size(34, 28); + buttonUp.Size = new Size(40, 33); buttonUp.TabIndex = 3; buttonUp.UseVisualStyleBackColor = true; buttonUp.Click += buttonMove_Click; @@ -80,12 +90,12 @@ namespace Bulldozer // buttonRight // buttonRight.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; - buttonRight.BackgroundImage = ProjectBulldozer.Properties.Resources.right1; + buttonRight.BackgroundImage = (Image)resources.GetObject("buttonRight.BackgroundImage"); buttonRight.BackgroundImageLayout = ImageLayout.Zoom; - buttonRight.Location = new Point(837, 353); + buttonRight.Location = new Point(819, 522); buttonRight.Margin = new Padding(2); buttonRight.Name = "buttonRight"; - buttonRight.Size = new Size(28, 26); + buttonRight.Size = new Size(40, 33); buttonRight.TabIndex = 4; buttonRight.UseVisualStyleBackColor = true; buttonRight.Click += buttonMove_Click; @@ -93,12 +103,12 @@ namespace Bulldozer // buttonDown // buttonDown.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; - buttonDown.BackgroundImage = ProjectBulldozer.Properties.Resources.down1; + buttonDown.BackgroundImage = (Image)resources.GetObject("buttonDown.BackgroundImage"); buttonDown.BackgroundImageLayout = ImageLayout.Zoom; - buttonDown.Location = new Point(801, 353); + buttonDown.Location = new Point(776, 522); buttonDown.Margin = new Padding(2); buttonDown.Name = "buttonDown"; - buttonDown.Size = new Size(32, 27); + buttonDown.Size = new Size(40, 33); buttonDown.TabIndex = 5; buttonDown.UseVisualStyleBackColor = true; buttonDown.Click += buttonMove_Click; @@ -108,7 +118,7 @@ namespace Bulldozer comboBoxStrategy.Anchor = AnchorStyles.Top | AnchorStyles.Right; comboBoxStrategy.DropDownStyle = ComboBoxStyle.DropDownList; comboBoxStrategy.FormattingEnabled = true; - comboBoxStrategy.Items.AddRange(new object[] { "К центру", "В угол" }); + comboBoxStrategy.Items.AddRange(new object[] { "В центр", "В угол" }); comboBoxStrategy.Location = new Point(740, 8); comboBoxStrategy.Margin = new Padding(2); comboBoxStrategy.Name = "comboBoxStrategy"; @@ -119,10 +129,10 @@ namespace Bulldozer // buttonCreateTractor // buttonCreateTractor.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; - buttonCreateTractor.Location = new Point(122, 332); + buttonCreateTractor.Location = new Point(122, 514); buttonCreateTractor.Margin = new Padding(2); buttonCreateTractor.Name = "buttonCreateTractor"; - buttonCreateTractor.Size = new Size(81, 47); + buttonCreateTractor.Size = new Size(88, 48); buttonCreateTractor.TabIndex = 7; buttonCreateTractor.Text = "Создать трактор"; buttonCreateTractor.UseVisualStyleBackColor = true; @@ -134,7 +144,7 @@ namespace Bulldozer buttonStep.Location = new Point(755, 39); buttonStep.Margin = new Padding(2); buttonStep.Name = "buttonStep"; - buttonStep.Size = new Size(88, 20); + buttonStep.Size = new Size(88, 28); buttonStep.TabIndex = 8; buttonStep.Text = "Шаг"; buttonStep.UseVisualStyleBackColor = true; @@ -143,10 +153,10 @@ namespace Bulldozer // ButtonSelect_Tractor // ButtonSelect_Tractor.Anchor = AnchorStyles.Top | AnchorStyles.Right; - ButtonSelect_Tractor.Location = new Point(755, 63); + ButtonSelect_Tractor.Location = new Point(755, 71); ButtonSelect_Tractor.Margin = new Padding(2); ButtonSelect_Tractor.Name = "ButtonSelect_Tractor"; - ButtonSelect_Tractor.Size = new Size(88, 23); + ButtonSelect_Tractor.Size = new Size(88, 28); ButtonSelect_Tractor.TabIndex = 9; ButtonSelect_Tractor.Text = "Выбрать"; ButtonSelect_Tractor.UseVisualStyleBackColor = true; @@ -156,7 +166,7 @@ namespace Bulldozer // AutoScaleDimensions = new SizeF(7F, 15F); AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(870, 390); + ClientSize = new Size(870, 572); Controls.Add(ButtonSelect_Tractor); Controls.Add(buttonStep); Controls.Add(buttonCreateTractor); @@ -175,11 +185,6 @@ namespace Bulldozer ResumeLayout(false); PerformLayout(); } - private void comboBoxStrategy_SelectedIndexChanged(object sender, EventArgs e) - { - throw new NotImplementedException(); - } - #endregion private PictureBox pictureBoxBulldozer; private Button buttonCreateBulldozer; @@ -191,5 +196,6 @@ namespace Bulldozer private Button buttonCreateTractor; private Button buttonStep; private Button ButtonSelect_Tractor; + private EventHandler comboBoxStrategy_SelectedIndexChanged; } } \ No newline at end of file diff --git a/ProjectBulldozer/FormBulldozer.cs b/ProjectBulldozer/FormBulldozer.cs index c3156d6..ba2a569 100644 --- a/ProjectBulldozer/FormBulldozer.cs +++ b/ProjectBulldozer/FormBulldozer.cs @@ -1,7 +1,9 @@ using ProjectBulldozer; using ProjectBulldozer.Drawning; -using ProjectBulldozer.Generics; using ProjectBulldozer.MovementStrategy; +using System; +using System.Windows.Forms; + namespace Bulldozer { public partial class FormBulldozer : Form @@ -30,7 +32,9 @@ namespace Bulldozer { Random random = new Random(); Color color = Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)); + ColorDialog colorDialog = new ColorDialog(); + if (colorDialog.ShowDialog() == DialogResult.OK) { color = colorDialog.Color; diff --git a/ProjectBulldozer/FormBulldozerCollections.Designer.cs b/ProjectBulldozer/FormBulldozerCollections.Designer.cs index 2390fee..2c66f61 100644 --- a/ProjectBulldozer/FormBulldozerCollections.Designer.cs +++ b/ProjectBulldozer/FormBulldozerCollections.Designer.cs @@ -1,8 +1,16 @@ -namespace ProjectBulldozer + +namespace ProjectBulldozer { partial class FormTractorCollections { + /// + /// 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)) @@ -11,8 +19,11 @@ } 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() { components = new System.ComponentModel.Container(); @@ -194,5 +205,6 @@ private Button ButtonAddObject; private Button ButtonRemoveObject; private GroupBox Instruments; + private EventHandler textBoxStorageName_TextChanged; } } \ No newline at end of file diff --git a/ProjectBulldozer/FormBulldozerCollections.cs b/ProjectBulldozer/FormBulldozerCollections.cs index f82e027..00c2fd7 100644 --- a/ProjectBulldozer/FormBulldozerCollections.cs +++ b/ProjectBulldozer/FormBulldozerCollections.cs @@ -115,9 +115,5 @@ namespace ProjectBulldozer } pictureBoxCollections.Image = obj.ShowTractors(); } - private void textBoxStorageName_TextChanged(object sender, EventArgs e) - { - - } } } diff --git a/ProjectBulldozer/Generics/BulldozerGenericCollection.cs b/ProjectBulldozer/Generics/BulldozerGenericCollection.cs index 7756c53..1aa774d 100644 --- a/ProjectBulldozer/Generics/BulldozerGenericCollection.cs +++ b/ProjectBulldozer/Generics/BulldozerGenericCollection.cs @@ -1,5 +1,6 @@ using ProjectBulldozer.Drawning; using ProjectBulldozer.MovementStrategy; + namespace ProjectBulldozer.Generics { internal class TractorGenericCollection where T : DrawingTractor where U : IMoveableObject @@ -14,6 +15,7 @@ namespace ProjectBulldozer.Generics private readonly SetGeneric _collection; public TractorGenericCollection(int picWidth, int picHeight) { + // высчитываем размер массива для setgeneric int width = picWidth / _placeSizeWidth; int height = picHeight / _placeSizeHeight; @@ -67,6 +69,7 @@ namespace ProjectBulldozer.Generics g.DrawLine(pen, i * _placeSizeWidth, 0, i * _placeSizeWidth, _pictureHeight / _placeSizeHeight * _placeSizeHeight); } } + private void DrawObjects(Graphics g) { int width = _pictureWidth / _placeSizeWidth; @@ -85,7 +88,8 @@ namespace ProjectBulldozer.Generics } } } -} + } + diff --git a/ProjectBulldozer/Generics/SetGeneric.cs b/ProjectBulldozer/Generics/SetGeneric.cs index d8a115b..85feb5c 100644 --- a/ProjectBulldozer/Generics/SetGeneric.cs +++ b/ProjectBulldozer/Generics/SetGeneric.cs @@ -2,7 +2,6 @@ { internal class SetGeneric where T : class { - private readonly List _places; public int Count => _places.Count; /// Максимальное количество объектов в списке @@ -12,6 +11,7 @@ _maxCount = count; _places = new List(count); } + /// Добавление объекта в набор public int Insert(T tract) { return Insert(tract, 0); diff --git a/ProjectBulldozer/Generics/Status.cs b/ProjectBulldozer/Generics/Status.cs index 9bdd170..f7a5668 100644 --- a/ProjectBulldozer/Generics/Status.cs +++ b/ProjectBulldozer/Generics/Status.cs @@ -1,4 +1,4 @@ -namespace ProjectBulldozer.Generics +namespace ProjectBulldozer.MovementStrategy { public enum Status { diff --git a/ProjectBulldozer/Generics/TractorGenericStorage.cs b/ProjectBulldozer/Generics/TractorGenericStorage.cs index 1ad1526..873d9bf 100644 --- a/ProjectBulldozer/Generics/TractorGenericStorage.cs +++ b/ProjectBulldozer/Generics/TractorGenericStorage.cs @@ -1,14 +1,13 @@ using ProjectBulldozer.Drawning; +using ProjectBulldozer.MovementStrategy; namespace ProjectBulldozer.Generics { internal class TractorGenericStorage { readonly Dictionary> _TractorsStorage; public List Keys => _TractorsStorage.Keys.ToList(); - private readonly int _pictureWidth; + private readonly int _pictureWidth; private readonly int _pictureHeight; - /// - /// public TractorGenericStorage(int pictureWidth, int pictureHeight) { _TractorsStorage = new Dictionary>(); @@ -29,17 +28,16 @@ namespace ProjectBulldozer.Generics _TractorsStorage.Remove(name); } } - /// - /// Доступ к набору - /// - /// - /// public TractorGenericCollection? this[string ind] { get { - + if (_TractorsStorage.ContainsKey(ind)) + { + return _TractorsStorage[ind]; + } + return null; } } } diff --git a/ProjectBulldozer/MovementStrategy/AbstractStrategy.cs b/ProjectBulldozer/MovementStrategy/AbstractStrategy.cs index d965778..621fce6 100644 --- a/ProjectBulldozer/MovementStrategy/AbstractStrategy.cs +++ b/ProjectBulldozer/MovementStrategy/AbstractStrategy.cs @@ -1,6 +1,4 @@ -using ProjectBulldozer.Generics; - -namespace ProjectBulldozer.MovementStrategy +namespace ProjectBulldozer.MovementStrategy { public abstract class AbstractStrategy { @@ -10,6 +8,7 @@ namespace ProjectBulldozer.MovementStrategy 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) @@ -22,7 +21,6 @@ namespace ProjectBulldozer.MovementStrategy FieldWidth = width; FieldHeight = height; } - public void MakeStep() { if (_state != Status.InProgress) diff --git a/ProjectBulldozer/MovementStrategy/DrawingObjectTractor.cs b/ProjectBulldozer/MovementStrategy/DrawingObjectTractor.cs index 58193b2..f3eae94 100644 --- a/ProjectBulldozer/MovementStrategy/DrawingObjectTractor.cs +++ b/ProjectBulldozer/MovementStrategy/DrawingObjectTractor.cs @@ -1,9 +1,11 @@ -using ProjectBulldozer.Drawning; -namespace ProjectBulldozer.MovementStrategy +using Bulldozer; +using ProjectBulldozer.MovementStrategy; +namespace ProjectBulldozer.Drawning { public class DrawingObjectTractor : IMoveableObject { private readonly DrawingTractor? _drawningTractor = null; + public DrawingObjectTractor(DrawingTractor drawningTractor) { _drawningTractor = drawningTractor; diff --git a/ProjectBulldozer/MovementStrategy/IMoveableObject.cs b/ProjectBulldozer/MovementStrategy/IMoveableObject.cs index 139c7de..93b1c98 100644 --- a/ProjectBulldozer/MovementStrategy/IMoveableObject.cs +++ b/ProjectBulldozer/MovementStrategy/IMoveableObject.cs @@ -1,4 +1,5 @@ -namespace ProjectBulldozer.MovementStrategy +using Bulldozer; +namespace ProjectBulldozer.MovementStrategy { public interface IMoveableObject {