From 1b1e0713e3bf3862ac2baf5422ef58043dc15daf Mon Sep 17 00:00:00 2001 From: SooNooClose Date: Tue, 12 Sep 2023 16:24:59 +0400 Subject: [PATCH 01/14] Lab_1_Kryukov_AI_Excavator --- .../lab_1_pojectExcavator.sln | 25 +++ .../lab_1_pojectExcavator/DirectionType.cs | 29 +++ .../lab_1_pojectExcavator/DrawingExcavator.cs | 167 ++++++++++++++++++ .../lab_1_pojectExcavator/EntityExcavator.cs | 60 +++++++ .../Excavator.Designer.cs | 135 ++++++++++++++ .../lab_1_pojectExcavator/Excavator.cs | 86 +++++++++ .../lab_1_pojectExcavator/Excavator.resx | 120 +++++++++++++ .../lab_1_pojectExcavator/Program.cs | 17 ++ .../Properties/Resources.Designer.cs | 103 +++++++++++ .../Properties/Resources.resx | 133 ++++++++++++++ .../lab_1_pojectExcavator/Resources/down'.png | Bin 0 -> 1378 bytes .../lab_1_pojectExcavator/Resources/left.png | Bin 0 -> 1052 bytes .../lab_1_pojectExcavator/Resources/right.png | Bin 0 -> 1108 bytes .../lab_1_pojectExcavator/Resources/up.png | Bin 0 -> 1226 bytes .../lab_1_pojectExcavator.csproj | 26 +++ 15 files changed, 901 insertions(+) create mode 100644 lab_1_pojectExcavator/lab_1_pojectExcavator.sln create mode 100644 lab_1_pojectExcavator/lab_1_pojectExcavator/DirectionType.cs create mode 100644 lab_1_pojectExcavator/lab_1_pojectExcavator/DrawingExcavator.cs create mode 100644 lab_1_pojectExcavator/lab_1_pojectExcavator/EntityExcavator.cs create mode 100644 lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.Designer.cs create mode 100644 lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.cs create mode 100644 lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.resx create mode 100644 lab_1_pojectExcavator/lab_1_pojectExcavator/Program.cs create mode 100644 lab_1_pojectExcavator/lab_1_pojectExcavator/Properties/Resources.Designer.cs create mode 100644 lab_1_pojectExcavator/lab_1_pojectExcavator/Properties/Resources.resx create mode 100644 lab_1_pojectExcavator/lab_1_pojectExcavator/Resources/down'.png create mode 100644 lab_1_pojectExcavator/lab_1_pojectExcavator/Resources/left.png create mode 100644 lab_1_pojectExcavator/lab_1_pojectExcavator/Resources/right.png create mode 100644 lab_1_pojectExcavator/lab_1_pojectExcavator/Resources/up.png create mode 100644 lab_1_pojectExcavator/lab_1_pojectExcavator/lab_1_pojectExcavator.csproj diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator.sln b/lab_1_pojectExcavator/lab_1_pojectExcavator.sln new file mode 100644 index 0000000..ae29961 --- /dev/null +++ b/lab_1_pojectExcavator/lab_1_pojectExcavator.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.7.34024.191 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "lab_1_pojectExcavator", "lab_1_pojectExcavator\lab_1_pojectExcavator.csproj", "{5E25350C-F415-461C-9884-AA91AA76466E}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {5E25350C-F415-461C-9884-AA91AA76466E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5E25350C-F415-461C-9884-AA91AA76466E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5E25350C-F415-461C-9884-AA91AA76466E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5E25350C-F415-461C-9884-AA91AA76466E}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {CD009C15-4F47-4606-90A1-6B4251D3D6C4} + EndGlobalSection +EndGlobal diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/DirectionType.cs b/lab_1_pojectExcavator/lab_1_pojectExcavator/DirectionType.cs new file mode 100644 index 0000000..6ecda18 --- /dev/null +++ b/lab_1_pojectExcavator/lab_1_pojectExcavator/DirectionType.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace lab_1_pojectExcavator +{ + public enum DirectionType + { + /// + /// Вверх + /// + Up = 1, + /// + /// Вниз + /// + Down = 2, + /// + /// Влево + /// + Left = 3, + /// + /// Вправо + /// + Right = 4 + + } +} diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/DrawingExcavator.cs b/lab_1_pojectExcavator/lab_1_pojectExcavator/DrawingExcavator.cs new file mode 100644 index 0000000..631f5c8 --- /dev/null +++ b/lab_1_pojectExcavator/lab_1_pojectExcavator/DrawingExcavator.cs @@ -0,0 +1,167 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace lab_1_pojectExcavator +{ + internal class DrawingExcavator + { + /// + /// Класс-сущность + /// + public EntityExcavator? EntityExcavator { get; private set; } + /// + /// Ширина окна + /// + private int _pictureWidth; + /// + /// Высота окна + /// + private int _pictureHeight; + /// + /// Левая координата прорисовки автомобиля + /// + private int _startPosX; + /// + /// Верхняя кооридната прорисовки автомобиля + /// + private int _startPosY; + /// + /// Ширина прорисовки автомобиля + /// + private readonly int _excavatorWidth = 190; + /// + /// Высота прорисовки автомобиля + /// + private readonly int _excavatorHeight = 170; + /// + /// Инициализация свойств + /// + /// Скорость + /// Вес + /// Цвет кузова + /// Дополнительный цвет + /// Признак наличия вспомогательных опор + /// Признак наличия ковша + /// Ширина картинки + /// Высота картинки + /// true - объект создан, false - проверка не пройдена, нельзя создать объект в этих размерах + public bool Init(int speed, double weight, Color bodyColor, Color + additionalColor, bool bodyKit, bool backet,int width, int height) + { + // TODO: Продумать проверки + _pictureWidth = width; + _pictureHeight = height; + EntityExcavator = new EntityExcavator(); + EntityExcavator.Init(speed, weight, bodyColor, additionalColor,bodyKit, backet); + return true; + } + /// + /// Установка позиции + /// + /// Координата X + /// Координата Y + public void SetPosition(int x, int y) + { + // TODO: Изменение x, y + _startPosX = x; + _startPosY = y; + + + } + /// + /// Изменение направления перемещения + /// + /// Направление + public void MoveTransport(DirectionType direction) + { + if (EntityExcavator == null) + { + return; + } + switch (direction) + { + //влево + case DirectionType.Left: + if (_startPosX - EntityExcavator.Step > 0) + { + _startPosX -= (int)EntityExcavator.Step; + } + break; + //вверх + case DirectionType.Up: + if (_startPosY - EntityExcavator.Step > -60) + { + _startPosY -= (int)EntityExcavator.Step; + } + break; + // вправо + case DirectionType.Right: + if(_startPosX + EntityExcavator.Step < _pictureWidth - _excavatorWidth) + { + _startPosX += (int)EntityExcavator.Step; + } + break; + //вниз + case DirectionType.Down: + if (_startPosY + EntityExcavator.Step < _pictureHeight- _excavatorHeight) + { + _startPosY += (int)EntityExcavator.Step; + } + break; + } + } + /// + /// Прорисовка объекта + /// + /// + public void DrawTransport(Graphics g) + { + if(EntityExcavator == null) + { + return; + } + Pen pen = new(Color.Black); + + Brush additionalBrush = new SolidBrush(EntityExcavator.AdditionalColor); + if (EntityExcavator.BodyKit) + { + g.DrawLine(pen, _startPosX + 20, _startPosY + 120, _startPosX + 150, _startPosY + 120); + } + //корпус + Brush bodyBrush = new SolidBrush(Color.Red); + g.FillRectangle(bodyBrush, _startPosX + 20, _startPosY + 110, 130, 20); + g.FillRectangle(bodyBrush, _startPosX + 100, _startPosY + 70, 30, 40); + g.FillRectangle(bodyBrush, _startPosX + 30, _startPosY + 90, 10, 20); + g.DrawRectangle(pen, _startPosX + 20, _startPosY + 110, 130, 20); + g.DrawRectangle(pen, _startPosX + 100, _startPosY + 70, 30, 40); + g.DrawRectangle(pen, _startPosX + 30, _startPosY + 90, 10, 20); + //гусеница + Point[] points = { + new Point(_startPosX + 20, _startPosY + 130), + new Point(_startPosX + 15, _startPosY+ 135), + new Point(_startPosX + 15, _startPosY + 145), + new Point(_startPosX + 20, _startPosY + 150), + new Point(_startPosX + 145, _startPosY + 150), + new Point(_startPosX + 150, _startPosY + 145), + new Point(_startPosX + 150, _startPosY + 135), + new Point(_startPosX + 145, _startPosY + 130)}; + g.DrawPolygon(pen,points); + //ковш + if (EntityExcavator.Backet) + { + Point[] pointsBacket = { + new Point(_startPosX+150, _startPosY+ 75), + new Point(_startPosX + 150, _startPosY+ 135), + new Point(_startPosX + 195, _startPosY + 135), + }; + g.FillPolygon(additionalBrush, pointsBacket); + } + + } + + + } +} diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/EntityExcavator.cs b/lab_1_pojectExcavator/lab_1_pojectExcavator/EntityExcavator.cs new file mode 100644 index 0000000..3bfe4c1 --- /dev/null +++ b/lab_1_pojectExcavator/lab_1_pojectExcavator/EntityExcavator.cs @@ -0,0 +1,60 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace lab_1_pojectExcavator +{ + internal class EntityExcavator + { + // + /// Скорость + /// + public int Speed { get; private set; } + /// + /// Вес + /// + public double Weight { get; private set; } + /// + /// Основной цвет + /// + public Color BodyColor { get; private set; } + /// + /// Дополнительный цвет (для опциональных элементов) + /// + public Color AdditionalColor { get; private set; } + /// + /// Признак (опция) наличия вспомогательных опор + /// + public bool BodyKit { get; private set; } + /// + /// Признак (опция) наличия ковша + /// + public bool Backet { get; private set; } + + /// + /// Шаг перемещения автомобиля + /// + public double Step => (double)Speed * 100 / Weight; + /// + /// Инициализация полей объекта-класса спортивного автомобиля + /// + /// Скорость + /// Вес автомобиля + /// Основной цвет + /// Дополнительный цвет + /// Признак наличия обвеса + /// Признак наличия антикрыла + + public void Init(int speed, double weight, Color bodyColor, Color + additionalColor, bool bodyKit, bool backet) + { + Speed = speed; + Weight = weight; + BodyColor = bodyColor; + AdditionalColor = additionalColor; + Backet = backet; + } + } +} diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.Designer.cs b/lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.Designer.cs new file mode 100644 index 0000000..1f9b0ad --- /dev/null +++ b/lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.Designer.cs @@ -0,0 +1,135 @@ +namespace lab_1_pojectExcavator +{ + partial class Excavator + { + /// + /// 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() + { + pictureBoxExcavator = new PictureBox(); + buttonCreate = new Button(); + buttonDown = new Button(); + buttonRight = new Button(); + buttonUp = new Button(); + buttonLeft = new Button(); + ((System.ComponentModel.ISupportInitialize)pictureBoxExcavator).BeginInit(); + SuspendLayout(); + // + // pictureBoxExcavator + // + pictureBoxExcavator.Dock = DockStyle.Fill; + pictureBoxExcavator.Location = new Point(0, 0); + pictureBoxExcavator.Name = "pictureBoxExcavator"; + pictureBoxExcavator.Size = new Size(882, 453); + pictureBoxExcavator.SizeMode = PictureBoxSizeMode.AutoSize; + pictureBoxExcavator.TabIndex = 0; + pictureBoxExcavator.TabStop = false; + // + // buttonCreate + // + buttonCreate.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + buttonCreate.Location = new Point(12, 412); + buttonCreate.Name = "buttonCreate"; + buttonCreate.Size = new Size(94, 29); + buttonCreate.TabIndex = 1; + buttonCreate.Text = "Создать"; + buttonCreate.UseVisualStyleBackColor = true; + buttonCreate.Click += buttonCreate_Click; + // + // buttonDown + // + buttonDown.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonDown.BackgroundImage = Properties.Resources.down_; + buttonDown.BackgroundImageLayout = ImageLayout.Zoom; + buttonDown.Location = new Point(804, 412); + buttonDown.Name = "buttonDown"; + buttonDown.Size = new Size(30, 30); + buttonDown.TabIndex = 2; + buttonDown.UseVisualStyleBackColor = true; + buttonDown.Click += buttonMove_Click; + // + // buttonRight + // + buttonRight.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonRight.BackgroundImage = Properties.Resources.right; + buttonRight.BackgroundImageLayout = ImageLayout.Zoom; + buttonRight.Location = new Point(840, 412); + buttonRight.Name = "buttonRight"; + buttonRight.Size = new Size(30, 30); + buttonRight.TabIndex = 3; + buttonRight.UseVisualStyleBackColor = true; + buttonRight.Click += buttonMove_Click; + // + // buttonUp + // + buttonUp.BackgroundImage = Properties.Resources.up; + buttonUp.BackgroundImageLayout = ImageLayout.Zoom; + buttonUp.Location = new Point(804, 376); + buttonUp.Name = "buttonUp"; + buttonUp.Size = new Size(30, 30); + buttonUp.TabIndex = 4; + buttonUp.UseVisualStyleBackColor = true; + buttonUp.Click += buttonMove_Click; + // + // buttonLeft + // + buttonLeft.BackgroundImage = Properties.Resources.left; + buttonLeft.BackgroundImageLayout = ImageLayout.Zoom; + buttonLeft.Location = new Point(768, 412); + buttonLeft.Name = "buttonLeft"; + buttonLeft.Size = new Size(30, 30); + buttonLeft.TabIndex = 5; + buttonLeft.UseVisualStyleBackColor = true; + buttonLeft.Click += buttonMove_Click; + // + // Excavator + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(882, 453); + Controls.Add(buttonLeft); + Controls.Add(buttonUp); + Controls.Add(buttonRight); + Controls.Add(buttonDown); + Controls.Add(buttonCreate); + Controls.Add(pictureBoxExcavator); + Name = "Excavator"; + Text = "Excavator"; + + ((System.ComponentModel.ISupportInitialize)pictureBoxExcavator).EndInit(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private PictureBox pictureBoxExcavator; + private Button buttonCreate; + private Button buttonDown; + private Button buttonRight; + private Button buttonUp; + private Button buttonLeft; + } +} \ No newline at end of file diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.cs b/lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.cs new file mode 100644 index 0000000..fd0bfaf --- /dev/null +++ b/lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.cs @@ -0,0 +1,86 @@ +namespace lab_1_pojectExcavator +{ + public partial class Excavator : Form + { + /// + /// - + /// + private DrawingExcavator? _drawnigExcavator; + /// + /// + /// + public Excavator() + { + InitializeComponent(); + } + /// + /// + /// + private void Draw() + { + if (_drawnigExcavator == null) + { + return; + } + Bitmap bmp = new(pictureBoxExcavator.Width, + pictureBoxExcavator.Height); + Graphics gr = Graphics.FromImage(bmp); + _drawnigExcavator.DrawTransport(gr); + pictureBoxExcavator.Image = bmp; + } + /// + /// "" + /// + /// + /// + + /// + /// + /// + /// + /// + private void buttonCreate_Click(object sender, EventArgs e) + { + Random random = new(); + _drawnigExcavator = new DrawingExcavator(); + _drawnigExcavator.Init(random.Next(100, 300), + random.Next(1000, 3000), + Color.FromArgb(random.Next(0, 256), random.Next(0, 256), + random.Next(0, 256)), + Color.FromArgb(random.Next(0, 256), random.Next(0, 256), + random.Next(0, 256)), + Convert.ToBoolean(random.Next(0, 2)), + Convert.ToBoolean(random.Next(0, 2)), pictureBoxExcavator.Width, pictureBoxExcavator.Height); + _drawnigExcavator.SetPosition(random.Next(10, 100), + random.Next(10, 100)); + Draw(); + } + private void buttonMove_Click(object sender, EventArgs e) + { + if (_drawnigExcavator == null) + { + return; + } + string name = ((Button)sender)?.Name ?? string.Empty; + switch (name) + { + case "buttonUp": + _drawnigExcavator.MoveTransport(DirectionType.Up); + break; + case "buttonDown": + _drawnigExcavator.MoveTransport(DirectionType.Down); + break; + case "buttonLeft": + _drawnigExcavator.MoveTransport(DirectionType.Left); + break; + case "buttonRight": + _drawnigExcavator.MoveTransport(DirectionType.Right); + break; + } + Draw(); + } + + + } +} + diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.resx b/lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.resx new file mode 100644 index 0000000..af32865 --- /dev/null +++ b/lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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/lab_1_pojectExcavator/lab_1_pojectExcavator/Program.cs b/lab_1_pojectExcavator/lab_1_pojectExcavator/Program.cs new file mode 100644 index 0000000..8687c23 --- /dev/null +++ b/lab_1_pojectExcavator/lab_1_pojectExcavator/Program.cs @@ -0,0 +1,17 @@ +namespace lab_1_pojectExcavator +{ + 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 Excavator()); + } + } +} \ No newline at end of file diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/Properties/Resources.Designer.cs b/lab_1_pojectExcavator/lab_1_pojectExcavator/Properties/Resources.Designer.cs new file mode 100644 index 0000000..3207a6c --- /dev/null +++ b/lab_1_pojectExcavator/lab_1_pojectExcavator/Properties/Resources.Designer.cs @@ -0,0 +1,103 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +namespace lab_1_pojectExcavator.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("lab_1_pojectExcavator.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_ { + get { + object obj = ResourceManager.GetObject("down\'", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap left { + get { + object obj = ResourceManager.GetObject("left", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap right { + get { + object obj = ResourceManager.GetObject("right", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap up { + get { + object obj = ResourceManager.GetObject("up", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/Properties/Resources.resx b/lab_1_pojectExcavator/lab_1_pojectExcavator/Properties/Resources.resx new file mode 100644 index 0000000..e3c8366 --- /dev/null +++ b/lab_1_pojectExcavator/lab_1_pojectExcavator/Properties/Resources.resx @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\left.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\up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\down'.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/Resources/down'.png b/lab_1_pojectExcavator/lab_1_pojectExcavator/Resources/down'.png new file mode 100644 index 0000000000000000000000000000000000000000..1dca7cbe439a90332656fc0edf2e5d66811ef558 GIT binary patch literal 1378 zcmV-o1)chdP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGmbN~PnbOGLGA9w%&1oufqK~zXfomPEJ zRb?E0&beGZFH#t#I7ActSd^j5j~JM-SVm$49V@8*$Rq~;WI4A!HmlViE?u$ZW=mzT zNoMJAwrbOyuBCI%ndlZX0X3~O^TLJuaqcucnacwUL>kkO~WC z#6p<7R@4vMN*DwONd=U$5w$EZ8t{)WCsCW$Yn%rnCNLZX!d$aBXWN#0DjrD%G);qU z*%%1{0U?WsC_}_Gc@B|066HYY^gw14V+;?-#=nq3Yw1Cly-glz20aK;M0%xBK>ZI7 zq#|{S2yuX3h>(zrZkU#fK$HToMSzn@Fh-II9uzBwDG+3nNJzLN5+XKJ1a#(QtQ?r! zb?w?UcX&HARu11c=0IUMtivRa6imp_DWGB=jF$sRW_x=(T3cITS(3FFIL#2ntPVvq zCY4o1LTQF!GfYxFvQa`5FVNlH4Zq(H-Q)3~rltm6U0o=Ba3=P3edKIN@uoUGE7b|d z2&+cOO>#+I#4~y6B+8>hbnM7}JXT(cj*dcG(-a#6qfN#0M{lE;5BJr^pw zUMbJQJ|3N+wA>nXU#(J$UozD@J4|)D*H-5)+G@*gQ&lvZYRWT8WzO3vey~-jv`U^` za#F2tS>rM)W@r?)wrxh>%e9z1YbGYI?1yj8CRncJ5*Fzt(T3aG^g_RD5wgmAkym#V z=`>hBQH~97eBd%l07s#&VFT{Y-iyJ3i;OGtkW&gpCezYlap!g6B$+MBImHB}OnLxm zzS)isgWs*iC)?h{l>8!>@eTpO!2^2`Ik^G4muEzHe)bX|slcqcrC42+hnpu4LeF3>+EvC zZ{hu|dt++}kW@g>x$hh>u+pg@O-kh-FfV#0Z`p6|#i8$yyOW7Arhs6}=67-F*hY95 z4kxWNUQg3;`BW#KUa4=jFxUNx{G{d_z02ef!7m zuH+b3AS?SGyt=Le*DoB1<(4NdpZ^@2USEa$f;q8GV_;kXLBoqJSUCL`^k2Gx{wudI zf7$?^Ygp^9j*XPCIY4Y2B9D(BRE`75C8xG07*qoM6N<$f-^d9NB{r; literal 0 HcmV?d00001 diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/Resources/left.png b/lab_1_pojectExcavator/lab_1_pojectExcavator/Resources/left.png new file mode 100644 index 0000000000000000000000000000000000000000..2e6d550d8f6f31548e46424489d27c5ed102d23c GIT binary patch literal 1052 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 literal 0 HcmV?d00001 diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/lab_1_pojectExcavator.csproj b/lab_1_pojectExcavator/lab_1_pojectExcavator/lab_1_pojectExcavator.csproj new file mode 100644 index 0000000..13ee123 --- /dev/null +++ b/lab_1_pojectExcavator/lab_1_pojectExcavator/lab_1_pojectExcavator.csproj @@ -0,0 +1,26 @@ + + + + WinExe + net6.0-windows + enable + true + enable + + + + + True + True + Resources.resx + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + \ No newline at end of file -- 2.25.1 From 0339e5feca46f0ff2d59120178e27f64566b2235 Mon Sep 17 00:00:00 2001 From: 1SooNoo1 Date: Sat, 16 Sep 2023 14:03:09 +0400 Subject: [PATCH 02/14] Lab_1_Kryukov_AI_Excavator --- .../lab_1_pojectExcavator/DrawingExcavator.cs | 19 ++++++++----- .../lab_1_pojectExcavator/EntityExcavator.cs | 1 + .../Excavator.Designer.cs | 28 ++++++++++++------- .../lab_1_pojectExcavator/Excavator.cs | 21 +++++++------- 4 files changed, 41 insertions(+), 28 deletions(-) diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/DrawingExcavator.cs b/lab_1_pojectExcavator/lab_1_pojectExcavator/DrawingExcavator.cs index 631f5c8..5ce449c 100644 --- a/lab_1_pojectExcavator/lab_1_pojectExcavator/DrawingExcavator.cs +++ b/lab_1_pojectExcavator/lab_1_pojectExcavator/DrawingExcavator.cs @@ -92,7 +92,7 @@ namespace lab_1_pojectExcavator break; //вверх case DirectionType.Up: - if (_startPosY - EntityExcavator.Step > -60) + if (_startPosY - EntityExcavator.Step > -50) { _startPosY -= (int)EntityExcavator.Step; } @@ -106,7 +106,7 @@ namespace lab_1_pojectExcavator break; //вниз case DirectionType.Down: - if (_startPosY + EntityExcavator.Step < _pictureHeight- _excavatorHeight) + if (_startPosY + EntityExcavator.Step < _pictureHeight - _excavatorHeight) { _startPosY += (int)EntityExcavator.Step; } @@ -128,6 +128,7 @@ namespace lab_1_pojectExcavator Brush additionalBrush = new SolidBrush(EntityExcavator.AdditionalColor); if (EntityExcavator.BodyKit) { + g.FillRectangle(additionalBrush, _startPosX + 20, _startPosY + 120, 130, 10); g.DrawLine(pen, _startPosX + 20, _startPosY + 120, _startPosX + 150, _startPosY + 120); } //корпус @@ -149,19 +150,23 @@ namespace lab_1_pojectExcavator new Point(_startPosX + 150, _startPosY + 135), new Point(_startPosX + 145, _startPosY + 130)}; g.DrawPolygon(pen,points); + g.DrawEllipse(pen,_startPosX + 20,_startPosY + 130, 20,20); + g.DrawEllipse(pen, _startPosX + 40, _startPosY + 130, 20, 20); + g.DrawEllipse(pen, _startPosX + 60, _startPosY + 130, 20, 20); + g.DrawEllipse(pen, _startPosX + 80, _startPosY + 130, 20, 20); + g.DrawEllipse(pen, _startPosX + 100, _startPosY + 130, 20, 20); + g.DrawEllipse(pen, _startPosX + 120, _startPosY + 130, 20, 20); //ковш if (EntityExcavator.Backet) { Point[] pointsBacket = { - new Point(_startPosX+150, _startPosY+ 75), - new Point(_startPosX + 150, _startPosY+ 135), + new Point(_startPosX + 150, _startPosY + 75), + new Point(_startPosX + 150, _startPosY + 135), new Point(_startPosX + 195, _startPosY + 135), }; g.FillPolygon(additionalBrush, pointsBacket); + g.DrawPolygon(pen, pointsBacket); } - } - - } } diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/EntityExcavator.cs b/lab_1_pojectExcavator/lab_1_pojectExcavator/EntityExcavator.cs index 3bfe4c1..26fa54c 100644 --- a/lab_1_pojectExcavator/lab_1_pojectExcavator/EntityExcavator.cs +++ b/lab_1_pojectExcavator/lab_1_pojectExcavator/EntityExcavator.cs @@ -54,6 +54,7 @@ namespace lab_1_pojectExcavator Weight = weight; BodyColor = bodyColor; AdditionalColor = additionalColor; + BodyKit = bodyKit; Backet = backet; } } diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.Designer.cs b/lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.Designer.cs index 1f9b0ad..7030905 100644 --- a/lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.Designer.cs +++ b/lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.Designer.cs @@ -41,8 +41,9 @@ // pictureBoxExcavator.Dock = DockStyle.Fill; pictureBoxExcavator.Location = new Point(0, 0); + pictureBoxExcavator.Margin = new Padding(3, 2, 3, 2); pictureBoxExcavator.Name = "pictureBoxExcavator"; - pictureBoxExcavator.Size = new Size(882, 453); + pictureBoxExcavator.Size = new Size(884, 461); pictureBoxExcavator.SizeMode = PictureBoxSizeMode.AutoSize; pictureBoxExcavator.TabIndex = 0; pictureBoxExcavator.TabStop = false; @@ -50,9 +51,10 @@ // buttonCreate // buttonCreate.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; - buttonCreate.Location = new Point(12, 412); + buttonCreate.Location = new Point(10, 430); + buttonCreate.Margin = new Padding(3, 2, 3, 2); buttonCreate.Name = "buttonCreate"; - buttonCreate.Size = new Size(94, 29); + buttonCreate.Size = new Size(82, 22); buttonCreate.TabIndex = 1; buttonCreate.Text = "Создать"; buttonCreate.UseVisualStyleBackColor = true; @@ -63,7 +65,8 @@ buttonDown.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; buttonDown.BackgroundImage = Properties.Resources.down_; buttonDown.BackgroundImageLayout = ImageLayout.Zoom; - buttonDown.Location = new Point(804, 412); + buttonDown.Location = new Point(816, 430); + buttonDown.Margin = new Padding(3, 2, 3, 2); buttonDown.Name = "buttonDown"; buttonDown.Size = new Size(30, 30); buttonDown.TabIndex = 2; @@ -75,7 +78,8 @@ buttonRight.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; buttonRight.BackgroundImage = Properties.Resources.right; buttonRight.BackgroundImageLayout = ImageLayout.Zoom; - buttonRight.Location = new Point(840, 412); + buttonRight.Location = new Point(847, 430); + buttonRight.Margin = new Padding(3, 2, 3, 2); buttonRight.Name = "buttonRight"; buttonRight.Size = new Size(30, 30); buttonRight.TabIndex = 3; @@ -84,9 +88,11 @@ // // buttonUp // + buttonUp.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; buttonUp.BackgroundImage = Properties.Resources.up; buttonUp.BackgroundImageLayout = ImageLayout.Zoom; - buttonUp.Location = new Point(804, 376); + buttonUp.Location = new Point(816, 396); + buttonUp.Margin = new Padding(3, 2, 3, 2); buttonUp.Name = "buttonUp"; buttonUp.Size = new Size(30, 30); buttonUp.TabIndex = 4; @@ -95,9 +101,11 @@ // // buttonLeft // + buttonLeft.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; buttonLeft.BackgroundImage = Properties.Resources.left; buttonLeft.BackgroundImageLayout = ImageLayout.Zoom; - buttonLeft.Location = new Point(768, 412); + buttonLeft.Location = new Point(784, 430); + buttonLeft.Margin = new Padding(3, 2, 3, 2); buttonLeft.Name = "buttonLeft"; buttonLeft.Size = new Size(30, 30); buttonLeft.TabIndex = 5; @@ -106,18 +114,18 @@ // // Excavator // - AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleDimensions = new SizeF(7F, 15F); AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(882, 453); + ClientSize = new Size(884, 461); Controls.Add(buttonLeft); Controls.Add(buttonUp); Controls.Add(buttonRight); Controls.Add(buttonDown); Controls.Add(buttonCreate); Controls.Add(pictureBoxExcavator); + Margin = new Padding(3, 2, 3, 2); Name = "Excavator"; Text = "Excavator"; - ((System.ComponentModel.ISupportInitialize)pictureBoxExcavator).EndInit(); ResumeLayout(false); PerformLayout(); diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.cs b/lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.cs index fd0bfaf..ba59694 100644 --- a/lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.cs +++ b/lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.cs @@ -33,7 +33,6 @@ namespace lab_1_pojectExcavator /// /// /// - /// /// /// @@ -44,15 +43,15 @@ namespace lab_1_pojectExcavator Random random = new(); _drawnigExcavator = new DrawingExcavator(); _drawnigExcavator.Init(random.Next(100, 300), - random.Next(1000, 3000), - Color.FromArgb(random.Next(0, 256), random.Next(0, 256), - random.Next(0, 256)), - Color.FromArgb(random.Next(0, 256), random.Next(0, 256), - random.Next(0, 256)), - Convert.ToBoolean(random.Next(0, 2)), - Convert.ToBoolean(random.Next(0, 2)), pictureBoxExcavator.Width, pictureBoxExcavator.Height); - _drawnigExcavator.SetPosition(random.Next(10, 100), - random.Next(10, 100)); + 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)), + pictureBoxExcavator.Width, + pictureBoxExcavator.Height); + _drawnigExcavator.SetPosition(random.Next(10, 100), + random.Next(10, 100)); Draw(); } private void buttonMove_Click(object sender, EventArgs e) @@ -80,7 +79,7 @@ namespace lab_1_pojectExcavator Draw(); } - + } } -- 2.25.1 From bd906920482dbfa3701d8158b6004ae734a758da Mon Sep 17 00:00:00 2001 From: 1SooNoo1 Date: Sat, 16 Sep 2023 14:23:03 +0400 Subject: [PATCH 03/14] Lab_1_Kryukov_AI_Excavator --- .../lab_1_pojectExcavator/DirectionType.cs | 8 +---- .../lab_1_pojectExcavator/DrawingExcavator.cs | 34 ++++++++----------- .../lab_1_pojectExcavator/EntityExcavator.cs | 12 ++----- .../lab_1_pojectExcavator/Excavator.cs | 8 ++--- 4 files changed, 22 insertions(+), 40 deletions(-) diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/DirectionType.cs b/lab_1_pojectExcavator/lab_1_pojectExcavator/DirectionType.cs index 6ecda18..756e729 100644 --- a/lab_1_pojectExcavator/lab_1_pojectExcavator/DirectionType.cs +++ b/lab_1_pojectExcavator/lab_1_pojectExcavator/DirectionType.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace lab_1_pojectExcavator +namespace lab_1_pojectExcavator { public enum DirectionType { diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/DrawingExcavator.cs b/lab_1_pojectExcavator/lab_1_pojectExcavator/DrawingExcavator.cs index 5ce449c..92ee5fe 100644 --- a/lab_1_pojectExcavator/lab_1_pojectExcavator/DrawingExcavator.cs +++ b/lab_1_pojectExcavator/lab_1_pojectExcavator/DrawingExcavator.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace lab_1_pojectExcavator +namespace lab_1_pojectExcavator { internal class DrawingExcavator { @@ -49,13 +43,13 @@ namespace lab_1_pojectExcavator /// Высота картинки /// true - объект создан, false - проверка не пройдена, нельзя создать объект в этих размерах public bool Init(int speed, double weight, Color bodyColor, Color - additionalColor, bool bodyKit, bool backet,int width, int height) + additionalColor, bool bodyKit, bool backet, int width, int height) { // TODO: Продумать проверки _pictureWidth = width; _pictureHeight = height; EntityExcavator = new EntityExcavator(); - EntityExcavator.Init(speed, weight, bodyColor, additionalColor,bodyKit, backet); + EntityExcavator.Init(speed, weight, bodyColor, additionalColor, bodyKit, backet); return true; } /// @@ -68,7 +62,7 @@ namespace lab_1_pojectExcavator // TODO: Изменение x, y _startPosX = x; _startPosY = y; - + } /// @@ -99,14 +93,14 @@ namespace lab_1_pojectExcavator break; // вправо case DirectionType.Right: - if(_startPosX + EntityExcavator.Step < _pictureWidth - _excavatorWidth) + if (_startPosX + EntityExcavator.Step < _pictureWidth - _excavatorWidth) { _startPosX += (int)EntityExcavator.Step; } break; //вниз case DirectionType.Down: - if (_startPosY + EntityExcavator.Step < _pictureHeight - _excavatorHeight) + if (_startPosY + EntityExcavator.Step < _pictureHeight - _excavatorHeight) { _startPosY += (int)EntityExcavator.Step; } @@ -119,12 +113,12 @@ namespace lab_1_pojectExcavator /// public void DrawTransport(Graphics g) { - if(EntityExcavator == null) + if (EntityExcavator == null) { return; } Pen pen = new(Color.Black); - + Brush additionalBrush = new SolidBrush(EntityExcavator.AdditionalColor); if (EntityExcavator.BodyKit) { @@ -140,17 +134,17 @@ namespace lab_1_pojectExcavator g.DrawRectangle(pen, _startPosX + 100, _startPosY + 70, 30, 40); g.DrawRectangle(pen, _startPosX + 30, _startPosY + 90, 10, 20); //гусеница - Point[] points = { + Point[] points = { new Point(_startPosX + 20, _startPosY + 130), - new Point(_startPosX + 15, _startPosY+ 135), + new Point(_startPosX + 15, _startPosY+ 135), new Point(_startPosX + 15, _startPosY + 145), new Point(_startPosX + 20, _startPosY + 150), new Point(_startPosX + 145, _startPosY + 150), new Point(_startPosX + 150, _startPosY + 145), new Point(_startPosX + 150, _startPosY + 135), new Point(_startPosX + 145, _startPosY + 130)}; - g.DrawPolygon(pen,points); - g.DrawEllipse(pen,_startPosX + 20,_startPosY + 130, 20,20); + g.DrawPolygon(pen, points); + g.DrawEllipse(pen, _startPosX + 20, _startPosY + 130, 20, 20); g.DrawEllipse(pen, _startPosX + 40, _startPosY + 130, 20, 20); g.DrawEllipse(pen, _startPosX + 60, _startPosY + 130, 20, 20); g.DrawEllipse(pen, _startPosX + 80, _startPosY + 130, 20, 20); @@ -159,8 +153,8 @@ namespace lab_1_pojectExcavator //ковш if (EntityExcavator.Backet) { - Point[] pointsBacket = { - new Point(_startPosX + 150, _startPosY + 75), + Point[] pointsBacket = { + new Point(_startPosX + 150, _startPosY + 75), new Point(_startPosX + 150, _startPosY + 135), new Point(_startPosX + 195, _startPosY + 135), }; diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/EntityExcavator.cs b/lab_1_pojectExcavator/lab_1_pojectExcavator/EntityExcavator.cs index 26fa54c..7c7b54c 100644 --- a/lab_1_pojectExcavator/lab_1_pojectExcavator/EntityExcavator.cs +++ b/lab_1_pojectExcavator/lab_1_pojectExcavator/EntityExcavator.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace lab_1_pojectExcavator +namespace lab_1_pojectExcavator { internal class EntityExcavator { @@ -32,7 +26,7 @@ namespace lab_1_pojectExcavator /// Признак (опция) наличия ковша /// public bool Backet { get; private set; } - + /// /// Шаг перемещения автомобиля /// @@ -46,7 +40,7 @@ namespace lab_1_pojectExcavator /// Дополнительный цвет /// Признак наличия обвеса /// Признак наличия антикрыла - + public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool bodyKit, bool backet) { diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.cs b/lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.cs index ba59694..7d23c9c 100644 --- a/lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.cs +++ b/lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.cs @@ -47,11 +47,11 @@ namespace lab_1_pojectExcavator 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)), - pictureBoxExcavator.Width, + Convert.ToBoolean(random.Next(0, 2)), + pictureBoxExcavator.Width, pictureBoxExcavator.Height); - _drawnigExcavator.SetPosition(random.Next(10, 100), - random.Next(10, 100)); + _drawnigExcavator.SetPosition(random.Next(10, 100), + random.Next(10, 100)); Draw(); } private void buttonMove_Click(object sender, EventArgs e) -- 2.25.1 From 2852c96445d277e2f7c1bfb40bcd3edb1ca58819 Mon Sep 17 00:00:00 2001 From: 1SooNoo1 Date: Sat, 16 Sep 2023 14:44:49 +0400 Subject: [PATCH 04/14] Lab_1_Kryukov_AI_Excavator --- .../ProjectExcavator/DirectionType.cs | 28 +++ .../ProjectExcavator/DrawningExcavator.cs | 172 ++++++++++++++++++ .../ProjectExcavator/EntityExcavator.cs | 61 +++++++ ....Designer.cs => ExcavatorForm.Designer.cs} | 16 +- .../{Form1.cs => ExcavatorForm.cs} | 4 +- .../{Form1.resx => ExcavatorForm.resx} | 50 ++--- ProjectExcavator/ProjectExcavator/Program.cs | 2 +- .../lab_1_pojectExcavator/DirectionType.cs | 1 - 8 files changed, 300 insertions(+), 34 deletions(-) create mode 100644 ProjectExcavator/ProjectExcavator/DirectionType.cs create mode 100644 ProjectExcavator/ProjectExcavator/DrawningExcavator.cs create mode 100644 ProjectExcavator/ProjectExcavator/EntityExcavator.cs rename ProjectExcavator/ProjectExcavator/{Form1.Designer.cs => ExcavatorForm.Designer.cs} (72%) rename ProjectExcavator/ProjectExcavator/{Form1.cs => ExcavatorForm.cs} (55%) rename ProjectExcavator/ProjectExcavator/{Form1.resx => ExcavatorForm.resx} (93%) diff --git a/ProjectExcavator/ProjectExcavator/DirectionType.cs b/ProjectExcavator/ProjectExcavator/DirectionType.cs new file mode 100644 index 0000000..3495f44 --- /dev/null +++ b/ProjectExcavator/ProjectExcavator/DirectionType.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectExcavator +{ + public enum DirectionType + { + /// + /// Вверх + /// + Up = 1, + /// + /// Вниз + /// + Down = 2, + /// + /// Влево + /// + Left = 3, + /// + /// Вправо + /// + Right = 4 + } +} diff --git a/ProjectExcavator/ProjectExcavator/DrawningExcavator.cs b/ProjectExcavator/ProjectExcavator/DrawningExcavator.cs new file mode 100644 index 0000000..6a25801 --- /dev/null +++ b/ProjectExcavator/ProjectExcavator/DrawningExcavator.cs @@ -0,0 +1,172 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectExcavator +{ + internal class DrawningExcavator + { + /// + /// Класс-сущность + /// + public EntityExcavator? EntityExcavator { get; private set; } + /// + /// Ширина окна + /// + private int _pictureWidth; + /// + /// Высота окна + /// + private int _pictureHeight; + /// + /// Левая координата прорисовки автомобиля + /// + private int _startPosX; + /// + /// Верхняя кооридната прорисовки автомобиля + /// + private int _startPosY; + /// + /// Ширина прорисовки автомобиля + /// + private readonly int _excavatorWidth = 190; + /// + /// Высота прорисовки автомобиля + /// + private readonly int _excavatorHeight = 170; + /// + /// Инициализация свойств + /// + /// Скорость + /// Вес + /// Цвет кузова + /// Дополнительный цвет + /// Признак наличия вспомогательных опор + /// Признак наличия ковша + /// Ширина картинки + /// Высота картинки + /// true - объект создан, false - проверка не пройдена, нельзя создать объект в этих размерах + public bool Init(int speed, double weight, Color bodyColor, Color + additionalColor, bool bodyKit, bool backet, int width, int height) + { + // TODO: Продумать проверки + _pictureWidth = width; + _pictureHeight = height; + EntityExcavator = new EntityExcavator(); + EntityExcavator.Init(speed, weight, bodyColor, additionalColor, bodyKit, backet); + return true; + } + /// + /// Установка позиции + /// + /// Координата X + /// Координата Y + public void SetPosition(int x, int y) + { + // TODO: Изменение x, y + _startPosX = x; + _startPosY = y; + + + } + /// + /// Изменение направления перемещения + /// + /// Направление + public void MoveTransport(DirectionType direction) + { + if (EntityExcavator == null) + { + return; + } + switch (direction) + { + //влево + case DirectionType.Left: + if (_startPosX - EntityExcavator.Step > 0) + { + _startPosX -= (int)EntityExcavator.Step; + } + break; + //вверх + case DirectionType.Up: + if (_startPosY - EntityExcavator.Step > -50) + { + _startPosY -= (int)EntityExcavator.Step; + } + break; + // вправо + case DirectionType.Right: + if (_startPosX + EntityExcavator.Step < _pictureWidth - _excavatorWidth) + { + _startPosX += (int)EntityExcavator.Step; + } + break; + //вниз + case DirectionType.Down: + if (_startPosY + EntityExcavator.Step < _pictureHeight - _excavatorHeight) + { + _startPosY += (int)EntityExcavator.Step; + } + break; + } + } + /// + /// Прорисовка объекта + /// + /// + public void DrawTransport(Graphics g) + { + if (EntityExcavator == null) + { + return; + } + Pen pen = new(Color.Black); + + Brush additionalBrush = new SolidBrush(EntityExcavator.AdditionalColor); + if (EntityExcavator.BodyKit) + { + g.FillRectangle(additionalBrush, _startPosX + 20, _startPosY + 120, 130, 10); + g.DrawLine(pen, _startPosX + 20, _startPosY + 120, _startPosX + 150, _startPosY + 120); + } + //корпус + Brush bodyBrush = new SolidBrush(Color.Red); + g.FillRectangle(bodyBrush, _startPosX + 20, _startPosY + 110, 130, 20); + g.FillRectangle(bodyBrush, _startPosX + 100, _startPosY + 70, 30, 40); + g.FillRectangle(bodyBrush, _startPosX + 30, _startPosY + 90, 10, 20); + g.DrawRectangle(pen, _startPosX + 20, _startPosY + 110, 130, 20); + g.DrawRectangle(pen, _startPosX + 100, _startPosY + 70, 30, 40); + g.DrawRectangle(pen, _startPosX + 30, _startPosY + 90, 10, 20); + //гусеница + Point[] points = { + new Point(_startPosX + 20, _startPosY + 130), + new Point(_startPosX + 15, _startPosY+ 135), + new Point(_startPosX + 15, _startPosY + 145), + new Point(_startPosX + 20, _startPosY + 150), + new Point(_startPosX + 145, _startPosY + 150), + new Point(_startPosX + 150, _startPosY + 145), + new Point(_startPosX + 150, _startPosY + 135), + new Point(_startPosX + 145, _startPosY + 130)}; + g.DrawPolygon(pen, points); + g.DrawEllipse(pen, _startPosX + 20, _startPosY + 130, 20, 20); + g.DrawEllipse(pen, _startPosX + 40, _startPosY + 130, 20, 20); + g.DrawEllipse(pen, _startPosX + 60, _startPosY + 130, 20, 20); + g.DrawEllipse(pen, _startPosX + 80, _startPosY + 130, 20, 20); + g.DrawEllipse(pen, _startPosX + 100, _startPosY + 130, 20, 20); + g.DrawEllipse(pen, _startPosX + 120, _startPosY + 130, 20, 20); + //ковш + if (EntityExcavator.Backet) + { + Point[] pointsBacket = { + new Point(_startPosX + 150, _startPosY + 75), + new Point(_startPosX + 150, _startPosY + 135), + new Point(_startPosX + 195, _startPosY + 135), + }; + g.FillPolygon(additionalBrush, pointsBacket); + g.DrawPolygon(pen, pointsBacket); + } + } + } +} diff --git a/ProjectExcavator/ProjectExcavator/EntityExcavator.cs b/ProjectExcavator/ProjectExcavator/EntityExcavator.cs new file mode 100644 index 0000000..6189140 --- /dev/null +++ b/ProjectExcavator/ProjectExcavator/EntityExcavator.cs @@ -0,0 +1,61 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectExcavator +{ + internal class EntityExcavator + { + // + /// Скорость + /// + public int Speed { get; private set; } + /// + /// Вес + /// + public double Weight { get; private set; } + /// + /// Основной цвет + /// + public Color BodyColor { get; private set; } + /// + /// Дополнительный цвет (для опциональных элементов) + /// + public Color AdditionalColor { get; private set; } + /// + /// Признак (опция) наличия вспомогательных опор + /// + public bool BodyKit { get; private set; } + /// + /// Признак (опция) наличия ковша + /// + public bool Backet { get; private set; } + + /// + /// Шаг перемещения автомобиля + /// + public double Step => (double)Speed * 100 / Weight; + /// + /// Инициализация полей объекта-класса спортивного автомобиля + /// + /// Скорость + /// Вес автомобиля + /// Основной цвет + /// Дополнительный цвет + /// Признак наличия обвеса + /// Признак наличия антикрыла + + public void Init(int speed, double weight, Color bodyColor, Color + additionalColor, bool bodyKit, bool backet) + { + Speed = speed; + Weight = weight; + BodyColor = bodyColor; + AdditionalColor = additionalColor; + BodyKit = bodyKit; + Backet = backet; + } + } +} diff --git a/ProjectExcavator/ProjectExcavator/Form1.Designer.cs b/ProjectExcavator/ProjectExcavator/ExcavatorForm.Designer.cs similarity index 72% rename from ProjectExcavator/ProjectExcavator/Form1.Designer.cs rename to ProjectExcavator/ProjectExcavator/ExcavatorForm.Designer.cs index 451fd85..81929e4 100644 --- a/ProjectExcavator/ProjectExcavator/Form1.Designer.cs +++ b/ProjectExcavator/ProjectExcavator/ExcavatorForm.Designer.cs @@ -1,6 +1,6 @@ namespace ProjectExcavator { - partial class Form1 + partial class ExcavatorForm { /// /// Required designer variable. @@ -28,10 +28,16 @@ /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 450); - this.Text = "Form1"; + SuspendLayout(); + // + // Form1 + // + AutoScaleDimensions = new SizeF(7F, 15F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(800, 450); + Name = "Form1"; + Text = "Excavator"; + ResumeLayout(false); } #endregion diff --git a/ProjectExcavator/ProjectExcavator/Form1.cs b/ProjectExcavator/ProjectExcavator/ExcavatorForm.cs similarity index 55% rename from ProjectExcavator/ProjectExcavator/Form1.cs rename to ProjectExcavator/ProjectExcavator/ExcavatorForm.cs index 1eb2162..84a8ad1 100644 --- a/ProjectExcavator/ProjectExcavator/Form1.cs +++ b/ProjectExcavator/ProjectExcavator/ExcavatorForm.cs @@ -1,8 +1,8 @@ namespace ProjectExcavator { - public partial class Form1 : Form + public partial class ExcavatorForm : Form { - public Form1() + public ExcavatorForm() { InitializeComponent(); } diff --git a/ProjectExcavator/ProjectExcavator/Form1.resx b/ProjectExcavator/ProjectExcavator/ExcavatorForm.resx similarity index 93% rename from ProjectExcavator/ProjectExcavator/Form1.resx rename to ProjectExcavator/ProjectExcavator/ExcavatorForm.resx index 1af7de1..af32865 100644 --- a/ProjectExcavator/ProjectExcavator/Form1.resx +++ b/ProjectExcavator/ProjectExcavator/ExcavatorForm.resx @@ -1,17 +1,17 @@  - diff --git a/ProjectExcavator/ProjectExcavator/Program.cs b/ProjectExcavator/ProjectExcavator/Program.cs index c5b8144..dc8b98b 100644 --- a/ProjectExcavator/ProjectExcavator/Program.cs +++ b/ProjectExcavator/ProjectExcavator/Program.cs @@ -11,7 +11,7 @@ namespace ProjectExcavator // To customize application configuration such as set high DPI settings or default font, // see https://aka.ms/applicationconfiguration. ApplicationConfiguration.Initialize(); - Application.Run(new Form1()); + Application.Run(new ExcavatorForm()); } } } \ No newline at end of file diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/DirectionType.cs b/lab_1_pojectExcavator/lab_1_pojectExcavator/DirectionType.cs index 756e729..ed5781a 100644 --- a/lab_1_pojectExcavator/lab_1_pojectExcavator/DirectionType.cs +++ b/lab_1_pojectExcavator/lab_1_pojectExcavator/DirectionType.cs @@ -18,6 +18,5 @@ /// Вправо /// Right = 4 - } } -- 2.25.1 From 83514622886c09abbc587dda8073144cf8bbf75b Mon Sep 17 00:00:00 2001 From: 1SooNoo1 Date: Sat, 16 Sep 2023 16:05:15 +0400 Subject: [PATCH 05/14] Lab_1_Kryukov_AI_Excavator --- .../ExcavatorForm.Designer.cs | 96 ++++++++++++- .../ProjectExcavator/ExcavatorForm.cs | 72 ++++++++++ .../ProjectExcavator/ProjectExcavator.csproj | 15 ++ .../Properties/Resources.Designer.cs | 103 ++++++++++++++ .../Properties/Resources.resx | 133 ++++++++++++++++++ .../ProjectExcavator/Resources/down.jpg | Bin 0 -> 735 bytes .../ProjectExcavator/Resources/left.jpg | Bin 0 -> 748 bytes .../ProjectExcavator/Resources/right.jpg | Bin 0 -> 741 bytes .../ProjectExcavator/Resources/up.jpg | Bin 0 -> 739 bytes .../lab_1_pojectExcavator.sln | 12 -- 10 files changed, 417 insertions(+), 14 deletions(-) create mode 100644 ProjectExcavator/ProjectExcavator/Properties/Resources.Designer.cs create mode 100644 ProjectExcavator/ProjectExcavator/Properties/Resources.resx create mode 100644 ProjectExcavator/ProjectExcavator/Resources/down.jpg create mode 100644 ProjectExcavator/ProjectExcavator/Resources/left.jpg create mode 100644 ProjectExcavator/ProjectExcavator/Resources/right.jpg create mode 100644 ProjectExcavator/ProjectExcavator/Resources/up.jpg diff --git a/ProjectExcavator/ProjectExcavator/ExcavatorForm.Designer.cs b/ProjectExcavator/ProjectExcavator/ExcavatorForm.Designer.cs index 81929e4..e7b1f13 100644 --- a/ProjectExcavator/ProjectExcavator/ExcavatorForm.Designer.cs +++ b/ProjectExcavator/ProjectExcavator/ExcavatorForm.Designer.cs @@ -28,18 +28,110 @@ /// private void InitializeComponent() { + pictureBoxExcavator = new PictureBox(); + buttonCreate = new Button(); + buttonDown = new Button(); + buttonUp = new Button(); + buttonLeft = new Button(); + buttonRight = new Button(); + ((System.ComponentModel.ISupportInitialize)pictureBoxExcavator).BeginInit(); SuspendLayout(); // - // Form1 + // pictureBoxExcavator + // + pictureBoxExcavator.Dock = DockStyle.Fill; + pictureBoxExcavator.Location = new Point(0, 0); + pictureBoxExcavator.Name = "pictureBoxExcavator"; + pictureBoxExcavator.Size = new Size(800, 450); + pictureBoxExcavator.SizeMode = PictureBoxSizeMode.AutoSize; + pictureBoxExcavator.TabIndex = 0; + pictureBoxExcavator.TabStop = false; + // + // buttonCreate + // + buttonCreate.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + buttonCreate.Location = new Point(12, 415); + buttonCreate.Name = "buttonCreate"; + buttonCreate.Size = new Size(75, 23); + buttonCreate.TabIndex = 1; + buttonCreate.Text = "Создать"; + buttonCreate.UseVisualStyleBackColor = true; + buttonCreate.Click += buttonCreate_Click; + // + // buttonDown + // + buttonDown.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonDown.BackgroundImage = Properties.Resources.down; + buttonDown.BackgroundImageLayout = ImageLayout.Zoom; + buttonDown.Location = new Point(722, 415); + buttonDown.Name = "buttonDown"; + buttonDown.Size = new Size(30, 30); + buttonDown.TabIndex = 2; + buttonDown.UseVisualStyleBackColor = true; + buttonDown.Click += buttonMove_Click; + // + // buttonUp + // + buttonUp.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonUp.BackgroundImage = Properties.Resources.up; + buttonUp.BackgroundImageLayout = ImageLayout.Zoom; + buttonUp.Location = new Point(722, 379); + buttonUp.Name = "buttonUp"; + buttonUp.Size = new Size(30, 30); + buttonUp.TabIndex = 3; + buttonUp.UseVisualStyleBackColor = true; + buttonUp.Click += buttonMove_Click; + // + // buttonLeft + // + buttonLeft.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonLeft.BackgroundImage = Properties.Resources.left; + buttonLeft.BackgroundImageLayout = ImageLayout.Zoom; + buttonLeft.Location = new Point(686, 415); + buttonLeft.Name = "buttonLeft"; + buttonLeft.Size = new Size(30, 30); + buttonLeft.TabIndex = 4; + buttonLeft.UseVisualStyleBackColor = true; + buttonLeft.Click += buttonMove_Click; + // + // buttonRight + // + buttonRight.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonRight.BackgroundImage = Properties.Resources.right; + buttonRight.BackgroundImageLayout = ImageLayout.Zoom; + buttonRight.Location = new Point(758, 415); + buttonRight.Name = "buttonRight"; + buttonRight.Size = new Size(30, 30); + buttonRight.TabIndex = 5; + buttonRight.UseVisualStyleBackColor = true; + buttonRight.Click += buttonMove_Click; + // + // ExcavatorForm // AutoScaleDimensions = new SizeF(7F, 15F); AutoScaleMode = AutoScaleMode.Font; ClientSize = new Size(800, 450); - Name = "Form1"; + Controls.Add(buttonRight); + Controls.Add(buttonLeft); + Controls.Add(buttonUp); + Controls.Add(buttonDown); + Controls.Add(buttonCreate); + Controls.Add(pictureBoxExcavator); + Name = "ExcavatorForm"; Text = "Excavator"; + Click += buttonMove_Click; + ((System.ComponentModel.ISupportInitialize)pictureBoxExcavator).EndInit(); ResumeLayout(false); + PerformLayout(); } #endregion + + private PictureBox pictureBoxExcavator; + private Button buttonCreate; + private Button buttonDown; + private Button buttonUp; + private Button buttonLeft; + private Button buttonRight; } } \ No newline at end of file diff --git a/ProjectExcavator/ProjectExcavator/ExcavatorForm.cs b/ProjectExcavator/ProjectExcavator/ExcavatorForm.cs index 84a8ad1..6b7455f 100644 --- a/ProjectExcavator/ProjectExcavator/ExcavatorForm.cs +++ b/ProjectExcavator/ProjectExcavator/ExcavatorForm.cs @@ -2,9 +2,81 @@ namespace ProjectExcavator { public partial class ExcavatorForm : Form { + /// + /// - + /// + private DrawningExcavator? _drawnigExcavator; + /// + /// + /// public ExcavatorForm() { InitializeComponent(); } + /// + /// + /// + private void Draw() + { + if (_drawnigExcavator == null) + { + return; + } + Bitmap bmp = new(pictureBoxExcavator.Width, + pictureBoxExcavator.Height); + Graphics gr = Graphics.FromImage(bmp); + _drawnigExcavator.DrawTransport(gr); + pictureBoxExcavator.Image = bmp; + } + /// + /// "" + /// + /// + /// + /// + /// + /// + /// + /// + private void buttonCreate_Click(object sender, EventArgs e) + { + Random random = new(); + _drawnigExcavator = new DrawningExcavator(); + _drawnigExcavator.Init(random.Next(100, 300), + random.Next(1000, 3000), + Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)), + Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)), + Convert.ToBoolean(random.Next(0, 2)), + Convert.ToBoolean(random.Next(0, 2)), + pictureBoxExcavator.Width, + pictureBoxExcavator.Height); + _drawnigExcavator.SetPosition(random.Next(10, 100), + random.Next(10, 100)); + Draw(); + } + private void buttonMove_Click(object sender, EventArgs e) + { + if (_drawnigExcavator == null) + { + return; + } + string name = ((Button)sender)?.Name ?? string.Empty; + switch (name) + { + case "buttonUp": + _drawnigExcavator.MoveTransport(DirectionType.Up); + break; + case "buttonDown": + _drawnigExcavator.MoveTransport(DirectionType.Down); + break; + case "buttonLeft": + _drawnigExcavator.MoveTransport(DirectionType.Left); + break; + case "buttonRight": + _drawnigExcavator.MoveTransport(DirectionType.Right); + break; + } + Draw(); + } } } \ No newline at end of file diff --git a/ProjectExcavator/ProjectExcavator/ProjectExcavator.csproj b/ProjectExcavator/ProjectExcavator/ProjectExcavator.csproj index b57c89e..13ee123 100644 --- a/ProjectExcavator/ProjectExcavator/ProjectExcavator.csproj +++ b/ProjectExcavator/ProjectExcavator/ProjectExcavator.csproj @@ -8,4 +8,19 @@ enable + + + True + True + Resources.resx + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + \ No newline at end of file diff --git a/ProjectExcavator/ProjectExcavator/Properties/Resources.Designer.cs b/ProjectExcavator/ProjectExcavator/Properties/Resources.Designer.cs new file mode 100644 index 0000000..4daa007 --- /dev/null +++ b/ProjectExcavator/ProjectExcavator/Properties/Resources.Designer.cs @@ -0,0 +1,103 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +namespace ProjectExcavator.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("ProjectExcavator.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 { + get { + object obj = ResourceManager.GetObject("down", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap left { + get { + object obj = ResourceManager.GetObject("left", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap right { + get { + object obj = ResourceManager.GetObject("right", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap up { + get { + object obj = ResourceManager.GetObject("up", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/ProjectExcavator/ProjectExcavator/Properties/Resources.resx b/ProjectExcavator/ProjectExcavator/Properties/Resources.resx new file mode 100644 index 0000000..3d5a144 --- /dev/null +++ b/ProjectExcavator/ProjectExcavator/Properties/Resources.resx @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\down.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\left.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\right.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\up.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/ProjectExcavator/ProjectExcavator/Resources/down.jpg b/ProjectExcavator/ProjectExcavator/Resources/down.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9647e473492c9de4bee14ceacf2c96a064d74899 GIT binary patch literal 735 zcmex=u@XMpRrH(`WVJuF8bh%Gw1Ge zvPY*?#vM29m6|9sb?>s1ufOeRNa_B2>rr+@!@hE>e6#OA>bHmOkr%ssXwt5-Eh`ug z9F#rKf8xf+wOvY|9w>_jZ&-d=G|7mmWcD+?dor$%Y= zUcOh5r2Sb!U9X_FBkA}SC+B^!da64eC))FDlUkJjK_&ZNV9@k!pQ7&A6zO}OynaBa zaDCavZ^u?@%uR7PRit@;{?4?W3#V^Rh`!Cb?|{neOr;S2a~%8ARzKtkX{-wko;gSP z@}B8)-y)vC(A_fSJ_W|kH*-nYyEvmOYA>G;hmN1=9%UB zz5l-R+?3~n=RA+OU6frPP++(8{EH{)M^kofiEiV4W1;ZF{(MyXa+?(~n+_}}?|5)e zbu@XMpRr~NWsIrlfPD9au(IXdiU+x+$Fy;p8WKb@v~@wn}_ zpvLq2Uo91#s((i1@2rA|?Pjc#eGJ}2`tB;3vL#M;;o%bwnk+y2&u0F6Rk-Q7l#`)s z*|}T$r|n+tmb-3!_=}u}r&`(rnVjZuc*s33oM3;;O|yy1q;gTr0k&PMTBSaz+~S+J zKFjG@@B>e~Lz-M}x%NC3+YU`sdY$%I{6w7Uan&Oknltr;PwH=cBIbWIVQKxYE^T9_ zMWrei&77wu9+8&cw|GiGNn}^((IYvRrRL6-6BawTal@I+@@ng@wky{b8T?W^=E1t$ zsf+0+XHax_1efZj^&QKm$f!$h-LYJE$J<5HUH)EEju@XMpRrAi8#x6ACncv80ToLyGB5-Ej0AulWn==%Xb3Ve0YiYD6)wlf z#K0`5$igb5Wat=}Sh!Hxsd3`N|F;-;fDU02WENzwXSh1K*0pfzzL<{5Ml0T)==-?o zLv?wl!_gAY8#Y=&*3C-EWd51 zReI-fyMo)aV@^+Zp6)JQx}@dp)ocCpUiFrqw{UXqGFTh;RU(lk|wKcRUMwCf;RmnDI!%Q~&ke z8?pZxZ2P}m-nR2wCA;XIl&$&w9sWB`&RBI@U?%H?C;eIq7Z$C&w(@bbSTU23%JfU8 z(|>79%)Q>MJ!PABT`W8MlG62Ev*+2JEm^hZx8~$&eqXv7YS;TZznIncK<mp~~*eo@9&+N%k3m6^c|K9`v D2!!_| literal 0 HcmV?d00001 diff --git a/ProjectExcavator/ProjectExcavator/Resources/up.jpg b/ProjectExcavator/ProjectExcavator/Resources/up.jpg new file mode 100644 index 0000000000000000000000000000000000000000..041c169f7fc73027ba6455975f56ef0fde375d97 GIT binary patch literal 739 zcmex=u@XMpRr`iu~T4?h_PehM4)0(kdILSD;rQ)O%P}X3(ypp5ez^x7+3@q zC$b6|vI#pS7B)^g`2Q9I56}%vg3N*p_6+yFmKFpA`vylE1z&dR`E**jH6*}ln#ym+ zHE$E{g-qAn{Pb(7s9sD=EKXL?R)(8s&TBkaEe%&h`7`7J?j=J5|q_xH{^w${S#LE6@m_Z6qI=V>0TJ=n5; znOup+N|yAC5+RJCyNdsvTlu>=S^HsEo2%T4B%^HC_q|Q4)o-ntb~P_UXxTEB2bVX7 zu%@`Zb5MWzJ2QP+#C!4FS<@x@x^BuGYi>G~9p7MU`>WDw<%_?8x=OAS|9C8~ywsxH zIG?%8>eZbSM;bpWf1Xf3HRCq#oXroue*3eYb5^uXc(jXPY;G3Ml+AKBmm)52?7cdp zulvQLw=dcE^_qNK6}I@;n=h9{)7!cvZmi#^$nf@G#+7FA;%Sy9)7o0=|K9`vXU+hK literal 0 HcmV?d00001 diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator.sln b/lab_1_pojectExcavator/lab_1_pojectExcavator.sln index ae29961..74b4f55 100644 --- a/lab_1_pojectExcavator/lab_1_pojectExcavator.sln +++ b/lab_1_pojectExcavator/lab_1_pojectExcavator.sln @@ -3,19 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.7.34024.191 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "lab_1_pojectExcavator", "lab_1_pojectExcavator\lab_1_pojectExcavator.csproj", "{5E25350C-F415-461C-9884-AA91AA76466E}" -EndProject Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {5E25350C-F415-461C-9884-AA91AA76466E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5E25350C-F415-461C-9884-AA91AA76466E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5E25350C-F415-461C-9884-AA91AA76466E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5E25350C-F415-461C-9884-AA91AA76466E}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection -- 2.25.1 From bb6ec2791895236589bdfb4c517fc790111555b5 Mon Sep 17 00:00:00 2001 From: 1SooNoo1 Date: Sat, 16 Sep 2023 16:14:34 +0400 Subject: [PATCH 06/14] Lab_1_Kryukov_AI_Excavator --- .../lab_1_pojectExcavator.sln | 13 -- .../lab_1_pojectExcavator/DirectionType.cs | 22 --- .../lab_1_pojectExcavator/DrawingExcavator.cs | 166 ------------------ .../lab_1_pojectExcavator/EntityExcavator.cs | 55 ------ .../Excavator.Designer.cs | 143 --------------- .../lab_1_pojectExcavator/Excavator.cs | 85 --------- .../lab_1_pojectExcavator/Excavator.resx | 120 ------------- .../lab_1_pojectExcavator/Program.cs | 17 -- .../Properties/Resources.Designer.cs | 103 ----------- .../Properties/Resources.resx | 133 -------------- .../lab_1_pojectExcavator/Resources/down'.png | Bin 1378 -> 0 bytes .../lab_1_pojectExcavator/Resources/left.png | Bin 1052 -> 0 bytes .../lab_1_pojectExcavator/Resources/right.png | Bin 1108 -> 0 bytes .../lab_1_pojectExcavator/Resources/up.png | Bin 1226 -> 0 bytes .../lab_1_pojectExcavator.csproj | 26 --- 15 files changed, 883 deletions(-) delete mode 100644 lab_1_pojectExcavator/lab_1_pojectExcavator.sln delete mode 100644 lab_1_pojectExcavator/lab_1_pojectExcavator/DirectionType.cs delete mode 100644 lab_1_pojectExcavator/lab_1_pojectExcavator/DrawingExcavator.cs delete mode 100644 lab_1_pojectExcavator/lab_1_pojectExcavator/EntityExcavator.cs delete mode 100644 lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.Designer.cs delete mode 100644 lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.cs delete mode 100644 lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.resx delete mode 100644 lab_1_pojectExcavator/lab_1_pojectExcavator/Program.cs delete mode 100644 lab_1_pojectExcavator/lab_1_pojectExcavator/Properties/Resources.Designer.cs delete mode 100644 lab_1_pojectExcavator/lab_1_pojectExcavator/Properties/Resources.resx delete mode 100644 lab_1_pojectExcavator/lab_1_pojectExcavator/Resources/down'.png delete mode 100644 lab_1_pojectExcavator/lab_1_pojectExcavator/Resources/left.png delete mode 100644 lab_1_pojectExcavator/lab_1_pojectExcavator/Resources/right.png delete mode 100644 lab_1_pojectExcavator/lab_1_pojectExcavator/Resources/up.png delete mode 100644 lab_1_pojectExcavator/lab_1_pojectExcavator/lab_1_pojectExcavator.csproj diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator.sln b/lab_1_pojectExcavator/lab_1_pojectExcavator.sln deleted file mode 100644 index 74b4f55..0000000 --- a/lab_1_pojectExcavator/lab_1_pojectExcavator.sln +++ /dev/null @@ -1,13 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.7.34024.191 -MinimumVisualStudioVersion = 10.0.40219.1 -Global - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {CD009C15-4F47-4606-90A1-6B4251D3D6C4} - EndGlobalSection -EndGlobal diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/DirectionType.cs b/lab_1_pojectExcavator/lab_1_pojectExcavator/DirectionType.cs deleted file mode 100644 index ed5781a..0000000 --- a/lab_1_pojectExcavator/lab_1_pojectExcavator/DirectionType.cs +++ /dev/null @@ -1,22 +0,0 @@ -namespace lab_1_pojectExcavator -{ - public enum DirectionType - { - /// - /// Вверх - /// - Up = 1, - /// - /// Вниз - /// - Down = 2, - /// - /// Влево - /// - Left = 3, - /// - /// Вправо - /// - Right = 4 - } -} diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/DrawingExcavator.cs b/lab_1_pojectExcavator/lab_1_pojectExcavator/DrawingExcavator.cs deleted file mode 100644 index 92ee5fe..0000000 --- a/lab_1_pojectExcavator/lab_1_pojectExcavator/DrawingExcavator.cs +++ /dev/null @@ -1,166 +0,0 @@ -namespace lab_1_pojectExcavator -{ - internal class DrawingExcavator - { - /// - /// Класс-сущность - /// - public EntityExcavator? EntityExcavator { get; private set; } - /// - /// Ширина окна - /// - private int _pictureWidth; - /// - /// Высота окна - /// - private int _pictureHeight; - /// - /// Левая координата прорисовки автомобиля - /// - private int _startPosX; - /// - /// Верхняя кооридната прорисовки автомобиля - /// - private int _startPosY; - /// - /// Ширина прорисовки автомобиля - /// - private readonly int _excavatorWidth = 190; - /// - /// Высота прорисовки автомобиля - /// - private readonly int _excavatorHeight = 170; - /// - /// Инициализация свойств - /// - /// Скорость - /// Вес - /// Цвет кузова - /// Дополнительный цвет - /// Признак наличия вспомогательных опор - /// Признак наличия ковша - /// Ширина картинки - /// Высота картинки - /// true - объект создан, false - проверка не пройдена, нельзя создать объект в этих размерах - public bool Init(int speed, double weight, Color bodyColor, Color - additionalColor, bool bodyKit, bool backet, int width, int height) - { - // TODO: Продумать проверки - _pictureWidth = width; - _pictureHeight = height; - EntityExcavator = new EntityExcavator(); - EntityExcavator.Init(speed, weight, bodyColor, additionalColor, bodyKit, backet); - return true; - } - /// - /// Установка позиции - /// - /// Координата X - /// Координата Y - public void SetPosition(int x, int y) - { - // TODO: Изменение x, y - _startPosX = x; - _startPosY = y; - - - } - /// - /// Изменение направления перемещения - /// - /// Направление - public void MoveTransport(DirectionType direction) - { - if (EntityExcavator == null) - { - return; - } - switch (direction) - { - //влево - case DirectionType.Left: - if (_startPosX - EntityExcavator.Step > 0) - { - _startPosX -= (int)EntityExcavator.Step; - } - break; - //вверх - case DirectionType.Up: - if (_startPosY - EntityExcavator.Step > -50) - { - _startPosY -= (int)EntityExcavator.Step; - } - break; - // вправо - case DirectionType.Right: - if (_startPosX + EntityExcavator.Step < _pictureWidth - _excavatorWidth) - { - _startPosX += (int)EntityExcavator.Step; - } - break; - //вниз - case DirectionType.Down: - if (_startPosY + EntityExcavator.Step < _pictureHeight - _excavatorHeight) - { - _startPosY += (int)EntityExcavator.Step; - } - break; - } - } - /// - /// Прорисовка объекта - /// - /// - public void DrawTransport(Graphics g) - { - if (EntityExcavator == null) - { - return; - } - Pen pen = new(Color.Black); - - Brush additionalBrush = new SolidBrush(EntityExcavator.AdditionalColor); - if (EntityExcavator.BodyKit) - { - g.FillRectangle(additionalBrush, _startPosX + 20, _startPosY + 120, 130, 10); - g.DrawLine(pen, _startPosX + 20, _startPosY + 120, _startPosX + 150, _startPosY + 120); - } - //корпус - Brush bodyBrush = new SolidBrush(Color.Red); - g.FillRectangle(bodyBrush, _startPosX + 20, _startPosY + 110, 130, 20); - g.FillRectangle(bodyBrush, _startPosX + 100, _startPosY + 70, 30, 40); - g.FillRectangle(bodyBrush, _startPosX + 30, _startPosY + 90, 10, 20); - g.DrawRectangle(pen, _startPosX + 20, _startPosY + 110, 130, 20); - g.DrawRectangle(pen, _startPosX + 100, _startPosY + 70, 30, 40); - g.DrawRectangle(pen, _startPosX + 30, _startPosY + 90, 10, 20); - //гусеница - Point[] points = { - new Point(_startPosX + 20, _startPosY + 130), - new Point(_startPosX + 15, _startPosY+ 135), - new Point(_startPosX + 15, _startPosY + 145), - new Point(_startPosX + 20, _startPosY + 150), - new Point(_startPosX + 145, _startPosY + 150), - new Point(_startPosX + 150, _startPosY + 145), - new Point(_startPosX + 150, _startPosY + 135), - new Point(_startPosX + 145, _startPosY + 130)}; - g.DrawPolygon(pen, points); - g.DrawEllipse(pen, _startPosX + 20, _startPosY + 130, 20, 20); - g.DrawEllipse(pen, _startPosX + 40, _startPosY + 130, 20, 20); - g.DrawEllipse(pen, _startPosX + 60, _startPosY + 130, 20, 20); - g.DrawEllipse(pen, _startPosX + 80, _startPosY + 130, 20, 20); - g.DrawEllipse(pen, _startPosX + 100, _startPosY + 130, 20, 20); - g.DrawEllipse(pen, _startPosX + 120, _startPosY + 130, 20, 20); - //ковш - if (EntityExcavator.Backet) - { - Point[] pointsBacket = { - new Point(_startPosX + 150, _startPosY + 75), - new Point(_startPosX + 150, _startPosY + 135), - new Point(_startPosX + 195, _startPosY + 135), - }; - g.FillPolygon(additionalBrush, pointsBacket); - g.DrawPolygon(pen, pointsBacket); - } - } - } -} diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/EntityExcavator.cs b/lab_1_pojectExcavator/lab_1_pojectExcavator/EntityExcavator.cs deleted file mode 100644 index 7c7b54c..0000000 --- a/lab_1_pojectExcavator/lab_1_pojectExcavator/EntityExcavator.cs +++ /dev/null @@ -1,55 +0,0 @@ -namespace lab_1_pojectExcavator -{ - internal class EntityExcavator - { - // - /// Скорость - /// - public int Speed { get; private set; } - /// - /// Вес - /// - public double Weight { get; private set; } - /// - /// Основной цвет - /// - public Color BodyColor { get; private set; } - /// - /// Дополнительный цвет (для опциональных элементов) - /// - public Color AdditionalColor { get; private set; } - /// - /// Признак (опция) наличия вспомогательных опор - /// - public bool BodyKit { get; private set; } - /// - /// Признак (опция) наличия ковша - /// - public bool Backet { get; private set; } - - /// - /// Шаг перемещения автомобиля - /// - public double Step => (double)Speed * 100 / Weight; - /// - /// Инициализация полей объекта-класса спортивного автомобиля - /// - /// Скорость - /// Вес автомобиля - /// Основной цвет - /// Дополнительный цвет - /// Признак наличия обвеса - /// Признак наличия антикрыла - - public void Init(int speed, double weight, Color bodyColor, Color - additionalColor, bool bodyKit, bool backet) - { - Speed = speed; - Weight = weight; - BodyColor = bodyColor; - AdditionalColor = additionalColor; - BodyKit = bodyKit; - Backet = backet; - } - } -} diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.Designer.cs b/lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.Designer.cs deleted file mode 100644 index 7030905..0000000 --- a/lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.Designer.cs +++ /dev/null @@ -1,143 +0,0 @@ -namespace lab_1_pojectExcavator -{ - partial class Excavator - { - /// - /// 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() - { - pictureBoxExcavator = new PictureBox(); - buttonCreate = new Button(); - buttonDown = new Button(); - buttonRight = new Button(); - buttonUp = new Button(); - buttonLeft = new Button(); - ((System.ComponentModel.ISupportInitialize)pictureBoxExcavator).BeginInit(); - SuspendLayout(); - // - // pictureBoxExcavator - // - pictureBoxExcavator.Dock = DockStyle.Fill; - pictureBoxExcavator.Location = new Point(0, 0); - pictureBoxExcavator.Margin = new Padding(3, 2, 3, 2); - pictureBoxExcavator.Name = "pictureBoxExcavator"; - pictureBoxExcavator.Size = new Size(884, 461); - pictureBoxExcavator.SizeMode = PictureBoxSizeMode.AutoSize; - pictureBoxExcavator.TabIndex = 0; - pictureBoxExcavator.TabStop = false; - // - // buttonCreate - // - buttonCreate.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; - buttonCreate.Location = new Point(10, 430); - buttonCreate.Margin = new Padding(3, 2, 3, 2); - buttonCreate.Name = "buttonCreate"; - buttonCreate.Size = new Size(82, 22); - buttonCreate.TabIndex = 1; - buttonCreate.Text = "Создать"; - buttonCreate.UseVisualStyleBackColor = true; - buttonCreate.Click += buttonCreate_Click; - // - // buttonDown - // - buttonDown.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; - buttonDown.BackgroundImage = Properties.Resources.down_; - buttonDown.BackgroundImageLayout = ImageLayout.Zoom; - buttonDown.Location = new Point(816, 430); - buttonDown.Margin = new Padding(3, 2, 3, 2); - buttonDown.Name = "buttonDown"; - buttonDown.Size = new Size(30, 30); - buttonDown.TabIndex = 2; - buttonDown.UseVisualStyleBackColor = true; - buttonDown.Click += buttonMove_Click; - // - // buttonRight - // - buttonRight.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; - buttonRight.BackgroundImage = Properties.Resources.right; - buttonRight.BackgroundImageLayout = ImageLayout.Zoom; - buttonRight.Location = new Point(847, 430); - buttonRight.Margin = new Padding(3, 2, 3, 2); - buttonRight.Name = "buttonRight"; - buttonRight.Size = new Size(30, 30); - buttonRight.TabIndex = 3; - buttonRight.UseVisualStyleBackColor = true; - buttonRight.Click += buttonMove_Click; - // - // buttonUp - // - buttonUp.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; - buttonUp.BackgroundImage = Properties.Resources.up; - buttonUp.BackgroundImageLayout = ImageLayout.Zoom; - buttonUp.Location = new Point(816, 396); - buttonUp.Margin = new Padding(3, 2, 3, 2); - buttonUp.Name = "buttonUp"; - buttonUp.Size = new Size(30, 30); - buttonUp.TabIndex = 4; - buttonUp.UseVisualStyleBackColor = true; - buttonUp.Click += buttonMove_Click; - // - // buttonLeft - // - buttonLeft.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; - buttonLeft.BackgroundImage = Properties.Resources.left; - buttonLeft.BackgroundImageLayout = ImageLayout.Zoom; - buttonLeft.Location = new Point(784, 430); - buttonLeft.Margin = new Padding(3, 2, 3, 2); - buttonLeft.Name = "buttonLeft"; - buttonLeft.Size = new Size(30, 30); - buttonLeft.TabIndex = 5; - buttonLeft.UseVisualStyleBackColor = true; - buttonLeft.Click += buttonMove_Click; - // - // Excavator - // - AutoScaleDimensions = new SizeF(7F, 15F); - AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(884, 461); - Controls.Add(buttonLeft); - Controls.Add(buttonUp); - Controls.Add(buttonRight); - Controls.Add(buttonDown); - Controls.Add(buttonCreate); - Controls.Add(pictureBoxExcavator); - Margin = new Padding(3, 2, 3, 2); - Name = "Excavator"; - Text = "Excavator"; - ((System.ComponentModel.ISupportInitialize)pictureBoxExcavator).EndInit(); - ResumeLayout(false); - PerformLayout(); - } - - #endregion - - private PictureBox pictureBoxExcavator; - private Button buttonCreate; - private Button buttonDown; - private Button buttonRight; - private Button buttonUp; - private Button buttonLeft; - } -} \ No newline at end of file diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.cs b/lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.cs deleted file mode 100644 index 7d23c9c..0000000 --- a/lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.cs +++ /dev/null @@ -1,85 +0,0 @@ -namespace lab_1_pojectExcavator -{ - public partial class Excavator : Form - { - /// - /// - - /// - private DrawingExcavator? _drawnigExcavator; - /// - /// - /// - public Excavator() - { - InitializeComponent(); - } - /// - /// - /// - private void Draw() - { - if (_drawnigExcavator == null) - { - return; - } - Bitmap bmp = new(pictureBoxExcavator.Width, - pictureBoxExcavator.Height); - Graphics gr = Graphics.FromImage(bmp); - _drawnigExcavator.DrawTransport(gr); - pictureBoxExcavator.Image = bmp; - } - /// - /// "" - /// - /// - /// - /// - /// - /// - /// - /// - private void buttonCreate_Click(object sender, EventArgs e) - { - Random random = new(); - _drawnigExcavator = new DrawingExcavator(); - _drawnigExcavator.Init(random.Next(100, 300), - random.Next(1000, 3000), - Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)), - Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)), - Convert.ToBoolean(random.Next(0, 2)), - Convert.ToBoolean(random.Next(0, 2)), - pictureBoxExcavator.Width, - pictureBoxExcavator.Height); - _drawnigExcavator.SetPosition(random.Next(10, 100), - random.Next(10, 100)); - Draw(); - } - private void buttonMove_Click(object sender, EventArgs e) - { - if (_drawnigExcavator == null) - { - return; - } - string name = ((Button)sender)?.Name ?? string.Empty; - switch (name) - { - case "buttonUp": - _drawnigExcavator.MoveTransport(DirectionType.Up); - break; - case "buttonDown": - _drawnigExcavator.MoveTransport(DirectionType.Down); - break; - case "buttonLeft": - _drawnigExcavator.MoveTransport(DirectionType.Left); - break; - case "buttonRight": - _drawnigExcavator.MoveTransport(DirectionType.Right); - break; - } - Draw(); - } - - - } -} - diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.resx b/lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.resx deleted file mode 100644 index af32865..0000000 --- a/lab_1_pojectExcavator/lab_1_pojectExcavator/Excavator.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/lab_1_pojectExcavator/lab_1_pojectExcavator/Program.cs b/lab_1_pojectExcavator/lab_1_pojectExcavator/Program.cs deleted file mode 100644 index 8687c23..0000000 --- a/lab_1_pojectExcavator/lab_1_pojectExcavator/Program.cs +++ /dev/null @@ -1,17 +0,0 @@ -namespace lab_1_pojectExcavator -{ - 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 Excavator()); - } - } -} \ No newline at end of file diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/Properties/Resources.Designer.cs b/lab_1_pojectExcavator/lab_1_pojectExcavator/Properties/Resources.Designer.cs deleted file mode 100644 index 3207a6c..0000000 --- a/lab_1_pojectExcavator/lab_1_pojectExcavator/Properties/Resources.Designer.cs +++ /dev/null @@ -1,103 +0,0 @@ -//------------------------------------------------------------------------------ -// -// Этот код создан программой. -// Исполняемая версия:4.0.30319.42000 -// -// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае -// повторной генерации кода. -// -//------------------------------------------------------------------------------ - -namespace lab_1_pojectExcavator.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("lab_1_pojectExcavator.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_ { - get { - object obj = ResourceManager.GetObject("down\'", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Поиск локализованного ресурса типа System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap left { - get { - object obj = ResourceManager.GetObject("left", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Поиск локализованного ресурса типа System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap right { - get { - object obj = ResourceManager.GetObject("right", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Поиск локализованного ресурса типа System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap up { - get { - object obj = ResourceManager.GetObject("up", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - } -} diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/Properties/Resources.resx b/lab_1_pojectExcavator/lab_1_pojectExcavator/Properties/Resources.resx deleted file mode 100644 index e3c8366..0000000 --- a/lab_1_pojectExcavator/lab_1_pojectExcavator/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\left.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\up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\down'.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - \ No newline at end of file diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/Resources/down'.png b/lab_1_pojectExcavator/lab_1_pojectExcavator/Resources/down'.png deleted file mode 100644 index 1dca7cbe439a90332656fc0edf2e5d66811ef558..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1378 zcmV-o1)chdP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGmbN~PnbOGLGA9w%&1oufqK~zXfomPEJ zRb?E0&beGZFH#t#I7ActSd^j5j~JM-SVm$49V@8*$Rq~;WI4A!HmlViE?u$ZW=mzT zNoMJAwrbOyuBCI%ndlZX0X3~O^TLJuaqcucnacwUL>kkO~WC z#6p<7R@4vMN*DwONd=U$5w$EZ8t{)WCsCW$Yn%rnCNLZX!d$aBXWN#0DjrD%G);qU z*%%1{0U?WsC_}_Gc@B|066HYY^gw14V+;?-#=nq3Yw1Cly-glz20aK;M0%xBK>ZI7 zq#|{S2yuX3h>(zrZkU#fK$HToMSzn@Fh-II9uzBwDG+3nNJzLN5+XKJ1a#(QtQ?r! zb?w?UcX&HARu11c=0IUMtivRa6imp_DWGB=jF$sRW_x=(T3cITS(3FFIL#2ntPVvq zCY4o1LTQF!GfYxFvQa`5FVNlH4Zq(H-Q)3~rltm6U0o=Ba3=P3edKIN@uoUGE7b|d z2&+cOO>#+I#4~y6B+8>hbnM7}JXT(cj*dcG(-a#6qfN#0M{lE;5BJr^pw zUMbJQJ|3N+wA>nXU#(J$UozD@J4|)D*H-5)+G@*gQ&lvZYRWT8WzO3vey~-jv`U^` za#F2tS>rM)W@r?)wrxh>%e9z1YbGYI?1yj8CRncJ5*Fzt(T3aG^g_RD5wgmAkym#V z=`>hBQH~97eBd%l07s#&VFT{Y-iyJ3i;OGtkW&gpCezYlap!g6B$+MBImHB}OnLxm zzS)isgWs*iC)?h{l>8!>@eTpO!2^2`Ik^G4muEzHe)bX|slcqcrC42+hnpu4LeF3>+EvC zZ{hu|dt++}kW@g>x$hh>u+pg@O-kh-FfV#0Z`p6|#i8$yyOW7Arhs6}=67-F*hY95 z4kxWNUQg3;`BW#KUa4=jFxUNx{G{d_z02ef!7m zuH+b3AS?SGyt=Le*DoB1<(4NdpZ^@2USEa$f;q8GV_;kXLBoqJSUCL`^k2Gx{wudI zf7$?^Ygp^9j*XPCIY4Y2B9D(BRE`75C8xG07*qoM6N<$f-^d9NB{r; diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/Resources/left.png b/lab_1_pojectExcavator/lab_1_pojectExcavator/Resources/left.png deleted file mode 100644 index 2e6d550d8f6f31548e46424489d27c5ed102d23c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1052 zcmV+%1mpXOP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGmbN~PnbOGLGA9w%&1F=a&K~zXf#Z_&H zOi>tq&b@PIc6OJwOFm;Mk*`e%Sszo1#V%SUY-wbCh0PC%QY*6m2wPI3kdGfqiY&Iw zDEnba5fXlEi45y&+Zi)^_a5(i@42kn)}5t1&3n(i?>X;z-uF50y(1(6{{fmB{|QP; zO5nAQe?q)rT{(mhsHj+DkDkC%_ZB-VS5bL65@Va>h~Yz&*Bg38e6VU8>q&&Qa==Q~ zcC`HT@r|1GhKz`hAFXl-N1m4jOQq~zDy5hhla-s6s}xR;~)8N8;LR7f`mW0%l$n@@DOW zPAjFUHWwPKR2=4)2DGYxkl2~F2QKihm{h7a%?AQB)L0J5{F^~m~UljQ(em z`knaot7q643FFbb85lLE#@@s-xlD(Ui_xeOCh;qhEPof0pksZ=a+yqxxymm|hP$yl zSQg52h~x41*k82^?~~&&ao%oZ(_%^L5iMURK&hulxiYsZm)O2n&ulzzkW{>uV_20$ zO5nz=MifuZhKNR^G8777$DuC>73U$Jf_3ViuKF{nE3Zx$-o($F+MAQnv(FvLI6?cU zm2n)W-}YU@jhpu|V^Wq=v1xYTz`kAhm>Po#v$xpUx=qA^F8E%jO>HutRC06UII{mV zd!CbUDz-*FjxlXbJaxLnNTy{ z&}(8wD)CuPEgD9|qh-bF70T-ke?{!#VROALe=?a=oPx#1ZP1_K>z@;j|==^1poj532;bRa{vGmbN~PnbOGLGA9w%&1L;XbK~zXftyWuX zltmQ&=I`#dOM{iR)FlMc2M`2lNC;t-C~=5ze>i7$w!4ieyOb|E{b%RQ%y+(X z&P=L^feg^w+l$iDQuAx%u*~!8mYi2exCw5#zDrI1(fZ z3SL0%{$udWyA79joL+0WEW~*0gVS$gc3B6`wOxZdw?OyMe?bL)Yoht@{feSlpTdrZ z5w|TklrR!Q4x3)8$8r%y<&T1;2+H#E?}S(U%A+t4>__z66m0l-HunDbi}C#%s_p#m zwCT&6c*VaKu_zFZunhu(JdVVGs8}3`i?J#(P5@_sOcvy3BuvA~;Q)YtZUhkTT8R4E zZ&0~zvvH=Nx;oqF$f+P+f3uvm*a$IcNXR2fk98nvCc#8ZP_bk{I*>GSK@Mk&6LhO% zFUCgeQCD{mFHfCeoJ`z(wUf?X3Ssf0*Wk_Ny4q?;Su9Taa4}IW>W8urqf|B|3v8T( zG^oU14nX#F|51ZN&vk6y@fF-|57eLCm+8WlFy1PkgVA~1SiD%Lj=yq{j73c{7*UuW zj06|AxiO9EC&6av{hYl(Yd^l-ItImDEsnzRo_ zmG&i753996S={klx-f9H`wP`OzeY*POHfz3I;b(wk2mHm;2Jv^;6(%cKqbBk z4@3NwG20`lzp4AMIy0##PLXnlyOb_P@7ax*Iqo73)cu4>lcyU$uV`;OL)&Zq#&rKm zMEKALk5WX*h7z@Mh)%O1v3V?aJgHK1k`P+p>?3%l3dOE{XlgnE|J+5IEFFB0PtyG5 z^(dL~38IlOr%f7)>&8a9$h<0P0#0B4Xg6Fh`eEgk@O+}MLdaFZ{nl!@@9#k4@xxfW z^aJgC5>#JbA07Sq5c2r)%jxnuX~zYNu>2fvML)^0)3QeGQlQgdyB?LPo_s&J&? zd#wIwliBe<&<|%8s9OInsaIQwiK$TD>C(eGA2r{7ZdPQ5tcdU3y~QMxsCX4`oN`(d z?ylZwyxAcu;)xS{gsB&qFrT(ntv0jIhKz|D8V+fN>nc~6nUNu5;);q2GkQMA_`l5O a3*a#|t-Q}Lv1AAU0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGmbN~PnbOGLGA9w%&1Yb!+K~zXfl~!wP zR7Dj2=I*`wUTVQu9|`q`QYFSldFfW6(HPc5BjJY$5QrEhNK)}nO$iF^DN7XtpMTro1dZf)UeIW9{0lNXuULb;on&P8-|ayIa3xcIKWt^PO+bIWu=5 z{|7Rej2_JnvnDT>OA>$_9v;?~`Y>q0tnf_wNj&k~1w6gIQ(Nj|R^&gPJByLx0<^a^ zVA#G9=YRTMzo`SggPK@=$1?fK$5Qs4mNNaOly|LIqTkd;UFAJ*yoj9j5P}vE5DubI z;PlWke0}Vwp5YI{9`x7~LYTOxvw{cjba2Cb;MiG#4>AJ3eiTA(w5Vr!qo(r59=;D| z>rsdbIng$%F9c2C&&p;TKD19;z2Qq)L^;qpdDvMPlxXow)yjb=u+$ zU-Gu4EeN)qgQT5L#%)4ASxg#N8n)y8w_nn>neZe(bFvTp1B;Moyo_i_wVuV?+$8u_(aNx~dzyy3?*<8fK8czN-s% zLl;a+8lzTX(3n(=mhm(JkB1n0yMd?1n=yF)>@F z?k#c<(BYvbs`PX1yXe}{!ON#$3i;-Z_W}$1Aj-6e$R83I z9sB~9x30vq-3K+B3q^kF#BrP)h`|1=6{$HXBJIZ`n^xmep+IqVL*a(QRnCp=Y&Hwqw(-us59ukQ%`_D3*HI-oLC%Q{ zhXi6o&b#1}sXFe}&^YfJWPkY`d-wJrl}ag_(cIjOaF}LK11F5hnUK|TLRl@xJ4V+o z=RnotG^}600lmGwYOKQI1ujKFmF!js-GtP$Ki)+mB2^AlJ$gWByDvE_7gS>*QXCDF z6Y6;llg6V`?MAJx@ip)#roSh^nHJnr~Q=xL>jrz)oJWAwDs!l8Q zaf&%7)eLap{H6PoQy~WoXR`FTt~rvtgE%QqkOPx0^@;d;p{8=a1zEKU3(wTIV=N*R zIhUvF(i=6%Nx2n)MZ{7BP$&tE*@o&R#hI%&7~*r`Pfii^hE1Qh{E0675MPQf<(2sD ze1a;)K&2{?%iH+&R35p3{rIP}Sg)7~-@g`vgM-Na{2gMk7{ZY_T~w4=rIJ2;)e4Hm oOBf#;N6W%n(bUwW)=UNPFV=@Irmpo$+yDRo07*qoM6N<$f{JBFj{pDw diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/lab_1_pojectExcavator.csproj b/lab_1_pojectExcavator/lab_1_pojectExcavator/lab_1_pojectExcavator.csproj deleted file mode 100644 index 13ee123..0000000 --- a/lab_1_pojectExcavator/lab_1_pojectExcavator/lab_1_pojectExcavator.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 -- 2.25.1 From 202d67a929e7b93dc0d741a26c82ff571add9a13 Mon Sep 17 00:00:00 2001 From: 1SooNoo1 Date: Sat, 16 Sep 2023 17:11:43 +0400 Subject: [PATCH 07/14] Lab_1_Kryukov_AI_Excavator --- ProjectExcavator/ProjectExcavator/DrawningExcavator.cs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/ProjectExcavator/ProjectExcavator/DrawningExcavator.cs b/ProjectExcavator/ProjectExcavator/DrawningExcavator.cs index 6a25801..88f5a9a 100644 --- a/ProjectExcavator/ProjectExcavator/DrawningExcavator.cs +++ b/ProjectExcavator/ProjectExcavator/DrawningExcavator.cs @@ -21,19 +21,19 @@ namespace ProjectExcavator /// private int _pictureHeight; /// - /// Левая координата прорисовки автомобиля + /// Левая координата прорисовки экскаватора /// private int _startPosX; /// - /// Верхняя кооридната прорисовки автомобиля + /// Верхняя кооридната прорисовки экскаватора /// private int _startPosY; /// - /// Ширина прорисовки автомобиля + /// Ширина прорисовки экскаватора /// private readonly int _excavatorWidth = 190; /// - /// Высота прорисовки автомобиля + /// Высота прорисовки экскаватора /// private readonly int _excavatorHeight = 170; /// @@ -124,7 +124,6 @@ namespace ProjectExcavator return; } Pen pen = new(Color.Black); - Brush additionalBrush = new SolidBrush(EntityExcavator.AdditionalColor); if (EntityExcavator.BodyKit) { -- 2.25.1 From 2823410adc4d13df10fe63f30d230c0f1331c3da Mon Sep 17 00:00:00 2001 From: SooNooClose Date: Tue, 26 Sep 2023 12:28:52 +0400 Subject: [PATCH 08/14] Lab_1_KryukovAI_Excavator --- .../lab_1_pojectExcavator/DrawingExcavator.cs | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/lab_1_pojectExcavator/lab_1_pojectExcavator/DrawingExcavator.cs b/lab_1_pojectExcavator/lab_1_pojectExcavator/DrawingExcavator.cs index 631f5c8..65ba09a 100644 --- a/lab_1_pojectExcavator/lab_1_pojectExcavator/DrawingExcavator.cs +++ b/lab_1_pojectExcavator/lab_1_pojectExcavator/DrawingExcavator.cs @@ -31,11 +31,11 @@ namespace lab_1_pojectExcavator /// /// Ширина прорисовки автомобиля /// - private readonly int _excavatorWidth = 190; + private readonly int _excavatorWidth = 200; /// /// Высота прорисовки автомобиля /// - private readonly int _excavatorHeight = 170; + private readonly int _excavatorHeight = 150; /// /// Инициализация свойств /// @@ -51,9 +51,12 @@ namespace lab_1_pojectExcavator public bool Init(int speed, double weight, Color bodyColor, Color additionalColor, bool bodyKit, bool backet,int width, int height) { - // TODO: Продумать проверки _pictureWidth = width; _pictureHeight = height; + if(_pictureHeight < _excavatorHeight || _pictureWidth < _excavatorWidth) + { + return false; + } EntityExcavator = new EntityExcavator(); EntityExcavator.Init(speed, weight, bodyColor, additionalColor,bodyKit, backet); return true; @@ -65,9 +68,9 @@ namespace lab_1_pojectExcavator /// Координата Y public void SetPosition(int x, int y) { - // TODO: Изменение x, y - _startPosX = x; - _startPosY = y; + + _startPosX = Math.Min(x,_pictureWidth - _excavatorWidth); + _startPosY = Math.Min(y,_pictureHeight - _excavatorHeight); } @@ -106,7 +109,7 @@ namespace lab_1_pojectExcavator break; //вниз case DirectionType.Down: - if (_startPosY + EntityExcavator.Step < _pictureHeight- _excavatorHeight) + if (_startPosY + EntityExcavator.Step < _pictureHeight - _excavatorHeight) { _startPosY += (int)EntityExcavator.Step; } -- 2.25.1 From fcaa20eb94b0c6162f4b99a6f7053c83f45fa756 Mon Sep 17 00:00:00 2001 From: SooNooClose Date: Tue, 26 Sep 2023 14:17:03 +0400 Subject: [PATCH 09/14] Lab_1_Kryukov_AI_Excavator --- .../ProjectExcavator/DrawningExcavator.cs | 56 +++++++++---------- .../ProjectExcavator/EntityExcavator.cs | 1 - 2 files changed, 28 insertions(+), 29 deletions(-) diff --git a/ProjectExcavator/ProjectExcavator/DrawningExcavator.cs b/ProjectExcavator/ProjectExcavator/DrawningExcavator.cs index 17571fc..566c90e 100644 --- a/ProjectExcavator/ProjectExcavator/DrawningExcavator.cs +++ b/ProjectExcavator/ProjectExcavator/DrawningExcavator.cs @@ -31,11 +31,11 @@ namespace ProjectExcavator /// /// Ширина прорисовки экскаватора /// - private readonly int _excavatorWidth = 200; + private readonly int _excavatorWidth = 185; /// /// Высота прорисовки экскаватора /// - private readonly int _excavatorHeight = 150; + private readonly int _excavatorHeight = 100; /// /// Инициализация свойств /// @@ -95,7 +95,7 @@ namespace ProjectExcavator break; //вверх case DirectionType.Up: - if (_startPosY - EntityExcavator.Step > -50) + if (_startPosY - EntityExcavator.Step > 0) { _startPosY -= (int)EntityExcavator.Step; } @@ -130,41 +130,41 @@ namespace ProjectExcavator Brush additionalBrush = new SolidBrush(EntityExcavator.AdditionalColor); if (EntityExcavator.BodyKit) { - g.FillRectangle(additionalBrush, _startPosX + 20, _startPosY + 120, 130, 10); - g.DrawLine(pen, _startPosX + 20, _startPosY + 120, _startPosX + 150, _startPosY + 120); + g.FillRectangle(additionalBrush, _startPosX + 20, _startPosY + 70, 130, 10); + g.DrawLine(pen, _startPosX + 20, _startPosY + 70, _startPosX + 150, _startPosY + 70); } //корпус Brush bodyBrush = new SolidBrush(Color.Red); - g.FillRectangle(bodyBrush, _startPosX + 20, _startPosY + 110, 130, 20); - g.FillRectangle(bodyBrush, _startPosX + 100, _startPosY + 70, 30, 40); - g.FillRectangle(bodyBrush, _startPosX + 30, _startPosY + 90, 10, 20); - g.DrawRectangle(pen, _startPosX + 20, _startPosY + 110, 130, 20); - g.DrawRectangle(pen, _startPosX + 100, _startPosY + 70, 30, 40); - g.DrawRectangle(pen, _startPosX + 30, _startPosY + 90, 10, 20); + g.FillRectangle(bodyBrush, _startPosX + 20, _startPosY + 60, 130, 20); + g.FillRectangle(bodyBrush, _startPosX + 100, _startPosY + 20, 30, 40); + g.FillRectangle(bodyBrush, _startPosX + 30, _startPosY + 40, 10, 20); + g.DrawRectangle(pen, _startPosX + 20, _startPosY + 60, 130, 20); + g.DrawRectangle(pen, _startPosX + 100, _startPosY + 20, 30, 40); + g.DrawRectangle(pen, _startPosX + 30, _startPosY + 40, 10, 20); //гусеница Point[] points = { - new Point(_startPosX + 20, _startPosY + 130), - new Point(_startPosX + 15, _startPosY+ 135), - new Point(_startPosX + 15, _startPosY + 145), - new Point(_startPosX + 20, _startPosY + 150), - new Point(_startPosX + 145, _startPosY + 150), - new Point(_startPosX + 150, _startPosY + 145), - new Point(_startPosX + 150, _startPosY + 135), - new Point(_startPosX + 145, _startPosY + 130)}; + new Point(_startPosX + 20, _startPosY + 80), + new Point(_startPosX + 15, _startPosY+ 85), + new Point(_startPosX + 15, _startPosY + 95), + new Point(_startPosX + 20, _startPosY + 100), + new Point(_startPosX + 145, _startPosY + 100), + new Point(_startPosX + 150, _startPosY + 95), + new Point(_startPosX + 150, _startPosY + 85), + new Point(_startPosX + 145, _startPosY + 80)}; g.DrawPolygon(pen, points); - g.DrawEllipse(pen, _startPosX + 20, _startPosY + 130, 20, 20); - g.DrawEllipse(pen, _startPosX + 40, _startPosY + 130, 20, 20); - g.DrawEllipse(pen, _startPosX + 60, _startPosY + 130, 20, 20); - g.DrawEllipse(pen, _startPosX + 80, _startPosY + 130, 20, 20); - g.DrawEllipse(pen, _startPosX + 100, _startPosY + 130, 20, 20); - g.DrawEllipse(pen, _startPosX + 120, _startPosY + 130, 20, 20); + g.DrawEllipse(pen, _startPosX + 20, _startPosY + 80, 20, 20); + g.DrawEllipse(pen, _startPosX + 40, _startPosY + 80, 20, 20); + g.DrawEllipse(pen, _startPosX + 60, _startPosY + 80, 20, 20); + g.DrawEllipse(pen, _startPosX + 80, _startPosY + 80, 20, 20); + g.DrawEllipse(pen, _startPosX + 100, _startPosY + 80, 20, 20); + g.DrawEllipse(pen, _startPosX + 120, _startPosY + 80, 20, 20); //ковш if (EntityExcavator.Backet) { Point[] pointsBacket = { - new Point(_startPosX + 150, _startPosY + 75), - new Point(_startPosX + 150, _startPosY + 135), - new Point(_startPosX + 195, _startPosY + 135), + new Point(_startPosX + 150, _startPosY + 25), + new Point(_startPosX + 150, _startPosY + 85), + new Point(_startPosX + 195, _startPosY + 85), }; g.FillPolygon(additionalBrush, pointsBacket); g.DrawPolygon(pen, pointsBacket); diff --git a/ProjectExcavator/ProjectExcavator/EntityExcavator.cs b/ProjectExcavator/ProjectExcavator/EntityExcavator.cs index 6189140..8581d88 100644 --- a/ProjectExcavator/ProjectExcavator/EntityExcavator.cs +++ b/ProjectExcavator/ProjectExcavator/EntityExcavator.cs @@ -46,7 +46,6 @@ namespace ProjectExcavator /// Дополнительный цвет /// Признак наличия обвеса /// Признак наличия антикрыла - public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool bodyKit, bool backet) { -- 2.25.1 From d4d3a85d126c4de5d4cc18bc91b300da78341b8f Mon Sep 17 00:00:00 2001 From: 1SooNoo1 Date: Tue, 10 Oct 2023 22:37:31 +0400 Subject: [PATCH 10/14] Lab_1_Kryukov_AI_Excavator --- ProjectExcavator/ProjectExcavator/DrawningExcavator.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ProjectExcavator/ProjectExcavator/DrawningExcavator.cs b/ProjectExcavator/ProjectExcavator/DrawningExcavator.cs index 566c90e..ed815ee 100644 --- a/ProjectExcavator/ProjectExcavator/DrawningExcavator.cs +++ b/ProjectExcavator/ProjectExcavator/DrawningExcavator.cs @@ -31,11 +31,11 @@ namespace ProjectExcavator /// /// Ширина прорисовки экскаватора /// - private readonly int _excavatorWidth = 185; + private readonly int _excavatorWidth = 135; /// /// Высота прорисовки экскаватора /// - private readonly int _excavatorHeight = 100; + private readonly int _excavatorHeight = 80; /// /// Инициализация свойств /// -- 2.25.1 From 5977a7ae6b957230165dd4efe9513ce54f801f3e Mon Sep 17 00:00:00 2001 From: 1SooNoo1 Date: Tue, 10 Oct 2023 22:38:08 +0400 Subject: [PATCH 11/14] Lab_1_Kryukov_AI_Excavator --- ProjectExcavator/ProjectExcavator/DrawningExcavator.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ProjectExcavator/ProjectExcavator/DrawningExcavator.cs b/ProjectExcavator/ProjectExcavator/DrawningExcavator.cs index ed815ee..c31fe58 100644 --- a/ProjectExcavator/ProjectExcavator/DrawningExcavator.cs +++ b/ProjectExcavator/ProjectExcavator/DrawningExcavator.cs @@ -31,11 +31,11 @@ namespace ProjectExcavator /// /// Ширина прорисовки экскаватора /// - private readonly int _excavatorWidth = 135; + protected readonly int _excavatorWidth = 135; /// /// Высота прорисовки экскаватора /// - private readonly int _excavatorHeight = 80; + protected readonly int _excavatorHeight = 80; /// /// Инициализация свойств /// -- 2.25.1 From 33a39039591fdd37bd2d3ded4098466759f1d6a7 Mon Sep 17 00:00:00 2001 From: 1SooNoo1 Date: Tue, 10 Oct 2023 22:39:01 +0400 Subject: [PATCH 12/14] Lab_1_Kryukov_AI_Excavator --- ProjectExcavator/ProjectExcavator/EntityExcavator.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ProjectExcavator/ProjectExcavator/EntityExcavator.cs b/ProjectExcavator/ProjectExcavator/EntityExcavator.cs index 8581d88..afd0a6a 100644 --- a/ProjectExcavator/ProjectExcavator/EntityExcavator.cs +++ b/ProjectExcavator/ProjectExcavator/EntityExcavator.cs @@ -6,7 +6,7 @@ using System.Threading.Tasks; namespace ProjectExcavator { - internal class EntityExcavator + public class EntityExcavator { // /// Скорость -- 2.25.1 From 64ba213971e259a58b67449321e4fd2808f858b7 Mon Sep 17 00:00:00 2001 From: 1SooNoo1 Date: Tue, 10 Oct 2023 22:59:12 +0400 Subject: [PATCH 13/14] Lab_1_Kryukov_AI_Excavator --- ProjectExcavator/ProjectExcavator/DrawningExcavator.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ProjectExcavator/ProjectExcavator/DrawningExcavator.cs b/ProjectExcavator/ProjectExcavator/DrawningExcavator.cs index c31fe58..6769c3c 100644 --- a/ProjectExcavator/ProjectExcavator/DrawningExcavator.cs +++ b/ProjectExcavator/ProjectExcavator/DrawningExcavator.cs @@ -6,7 +6,7 @@ using System.Threading.Tasks; namespace ProjectExcavator { - internal class DrawningExcavator + public class DrawningExcavator { /// /// Класс-сущность -- 2.25.1 From c7478ab5f81174ccfe3505d872223ba448b605ce Mon Sep 17 00:00:00 2001 From: 1SooNoo1 Date: Tue, 10 Oct 2023 23:34:30 +0400 Subject: [PATCH 14/14] =?UTF-8?q?=D0=BF=D0=BE=D0=BC=D0=B5=D0=BD=D1=8F?= =?UTF-8?q?=D0=BB=20=D1=86=D0=B2=D0=B5=D1=82=20=D0=BA=D0=BE=D1=80=D0=BF?= =?UTF-8?q?=D1=83=D1=81=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ProjectExcavator/ProjectExcavator/DrawningExcavator.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ProjectExcavator/ProjectExcavator/DrawningExcavator.cs b/ProjectExcavator/ProjectExcavator/DrawningExcavator.cs index 6769c3c..7f55c69 100644 --- a/ProjectExcavator/ProjectExcavator/DrawningExcavator.cs +++ b/ProjectExcavator/ProjectExcavator/DrawningExcavator.cs @@ -134,7 +134,7 @@ namespace ProjectExcavator g.DrawLine(pen, _startPosX + 20, _startPosY + 70, _startPosX + 150, _startPosY + 70); } //корпус - Brush bodyBrush = new SolidBrush(Color.Red); + Brush bodyBrush = new SolidBrush(EntityExcavator.BodyColor); g.FillRectangle(bodyBrush, _startPosX + 20, _startPosY + 60, 130, 20); g.FillRectangle(bodyBrush, _startPosX + 100, _startPosY + 20, 30, 40); g.FillRectangle(bodyBrush, _startPosX + 30, _startPosY + 40, 10, 20); -- 2.25.1