From e71e32c73b68617d95dbfd8305464659fc7a4242 Mon Sep 17 00:00:00 2001 From: vkobi Date: Tue, 27 Feb 2024 09:23:20 +0400 Subject: [PATCH] =?UTF-8?q?=D0=9B=D0=B0=D0=B1=D0=BE=D1=80=D0=B0=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=BD=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=B0=20=E2=84=961?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WarmlyLocomotive/DirectionType.cs | 24 ++ .../DrawningWarmlyLocomotive.cs | 259 ++++++++++++++++++ .../EntityWarmlyLocomotive.cs | 60 ++++ .../WarmlyLocomotive/Form1.Designer.cs | 39 --- WarmlyLocomotive/WarmlyLocomotive/Form1.cs | 10 - .../FormWarmlyLocomotive.Designer.cs | 134 +++++++++ .../WarmlyLocomotive/FormWarmlyLocomotive.cs | 88 ++++++ .../{Form1.resx => FormWarmlyLocomotive.resx} | 50 ++-- WarmlyLocomotive/WarmlyLocomotive/Program.cs | 2 +- .../Properties/Resources.Designer.cs | 103 +++++++ .../Properties/Resources.resx | 133 +++++++++ .../WarmlyLocomotive/Resources/arrowDown.jpg | Bin 0 -> 10626 bytes .../WarmlyLocomotive/Resources/arrowLeft.jpg | Bin 0 -> 10507 bytes .../WarmlyLocomotive/Resources/arrowRight.jpg | Bin 0 -> 10413 bytes .../WarmlyLocomotive/Resources/arrowUp.jpg | Bin 0 -> 10655 bytes .../WarmlyLocomotive/WarmlyLocomotive.csproj | 15 + lab_1/lab_1.sln | 31 +++ lab_1/lab_1/Lab_1.c | 50 ++++ lab_1/lab_1/lab_1.vcxproj | 135 +++++++++ lab_1/lab_1/lab_1.vcxproj.filters | 22 ++ 20 files changed, 1080 insertions(+), 75 deletions(-) create mode 100644 WarmlyLocomotive/WarmlyLocomotive/DirectionType.cs create mode 100644 WarmlyLocomotive/WarmlyLocomotive/DrawningWarmlyLocomotive.cs create mode 100644 WarmlyLocomotive/WarmlyLocomotive/EntityWarmlyLocomotive.cs delete mode 100644 WarmlyLocomotive/WarmlyLocomotive/Form1.Designer.cs delete mode 100644 WarmlyLocomotive/WarmlyLocomotive/Form1.cs create mode 100644 WarmlyLocomotive/WarmlyLocomotive/FormWarmlyLocomotive.Designer.cs create mode 100644 WarmlyLocomotive/WarmlyLocomotive/FormWarmlyLocomotive.cs rename WarmlyLocomotive/WarmlyLocomotive/{Form1.resx => FormWarmlyLocomotive.resx} (93%) create mode 100644 WarmlyLocomotive/WarmlyLocomotive/Properties/Resources.Designer.cs create mode 100644 WarmlyLocomotive/WarmlyLocomotive/Properties/Resources.resx create mode 100644 WarmlyLocomotive/WarmlyLocomotive/Resources/arrowDown.jpg create mode 100644 WarmlyLocomotive/WarmlyLocomotive/Resources/arrowLeft.jpg create mode 100644 WarmlyLocomotive/WarmlyLocomotive/Resources/arrowRight.jpg create mode 100644 WarmlyLocomotive/WarmlyLocomotive/Resources/arrowUp.jpg create mode 100644 lab_1/lab_1.sln create mode 100644 lab_1/lab_1/Lab_1.c create mode 100644 lab_1/lab_1/lab_1.vcxproj create mode 100644 lab_1/lab_1/lab_1.vcxproj.filters diff --git a/WarmlyLocomotive/WarmlyLocomotive/DirectionType.cs b/WarmlyLocomotive/WarmlyLocomotive/DirectionType.cs new file mode 100644 index 0000000..c935f15 --- /dev/null +++ b/WarmlyLocomotive/WarmlyLocomotive/DirectionType.cs @@ -0,0 +1,24 @@ +namespace WarmlyLocomotive; +/// +/// Направление перемещения +/// +public enum DirectionType +{ + /// + /// Вверх + /// + Up = 1, + /// + /// Вниз + /// + Down = 2, + /// + /// Влево + /// + Left = 3, + /// + /// Вправо + /// + Right = 4 + +} diff --git a/WarmlyLocomotive/WarmlyLocomotive/DrawningWarmlyLocomotive.cs b/WarmlyLocomotive/WarmlyLocomotive/DrawningWarmlyLocomotive.cs new file mode 100644 index 0000000..6fd15f3 --- /dev/null +++ b/WarmlyLocomotive/WarmlyLocomotive/DrawningWarmlyLocomotive.cs @@ -0,0 +1,259 @@ +namespace WarmlyLocomotive; + +/// +/// Класс, отвечающий за прорисовку и перемещение объекта-сущности +/// +public class DrawningWarmlyLocomotive +{ + /// + /// Класс-сущность + /// + public EntityWarmlyLocomotive? EntityWarmlyLocomotive { get; private set; } + /// + /// Ширина окна + /// + private int? _pictureWidth; + /// + /// Высота окна + /// + private int? _pictureHeight; + /// + /// Левая координата прорисовки паровоза + /// + private int? _startPosX; + /// + /// Верхняя кооридната прорисовки паровоза + /// + private int? _startPosY; + /// + /// Ширина прорисовки паровоза + /// + private readonly int _drawningWarmlyLocomotiveWidth = 130; + /// + /// Высота прорисовки паровоза + /// + private readonly int _drawningWarmlyLocomotiveHeight = 50; + /// + /// Инициализация свойств + /// + /// Скорость + /// Вес + /// Основной цвет + /// Дополнительный цвет + /// Признак наличия дымохода + /// Признак наличия отсека + /// Признак наличия обозначающей полосы + public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool chimney, bool compartment, bool indicatingLine) + { + EntityWarmlyLocomotive = new EntityWarmlyLocomotive(); + EntityWarmlyLocomotive.Init(speed, weight, bodyColor, additionalColor, chimney, compartment, indicatingLine); + _pictureWidth = null; + _pictureHeight = null; + _startPosX = null; + _startPosY = null; + } + /// + /// Установка границ поля + /// + /// Ширина поля + /// Высота поля + /// true - границы заданы, false - проверка не пройдена, нельзя разместить объект в этих размерах + public bool SetPictureSize(int width, int height) + { + // TODO проверка, что объект "влезает" в размеры поля + // если влезает, сохраняем границы и корректируем позицию объекта, если она была уже установлена + + if (width > _drawningWarmlyLocomotiveWidth && height > _drawningWarmlyLocomotiveHeight) + { + _pictureWidth = width; + _pictureHeight = height; + + if (_startPosX != null && _startPosY != null) + { + + if (_startPosX.Value < 0) { _startPosX = 0; } + + if (_startPosY.Value < 0) { _startPosY = 0; } + + if (_startPosX.Value + _drawningWarmlyLocomotiveWidth > _pictureWidth) + { + _startPosX = _pictureWidth - _drawningWarmlyLocomotiveWidth; + } + + if (_startPosY.Value + _drawningWarmlyLocomotiveHeight > _pictureHeight) + { + _startPosY = _pictureHeight - _drawningWarmlyLocomotiveHeight; + } + } + return true; + } + return false; + } + /// + /// Установка позиции + /// + /// Координата X + /// Координата Y + public void SetPosition(int x, int y) + { + if (!_pictureHeight.HasValue || !_pictureWidth.HasValue) + { + return; + } + // TODO если при установке объекта в эти координаты, он будет "выходить" за границы формы + // то надо изменить координаты, чтобы он оставался в этих границах + else + { + _startPosX = x; + _startPosY = y; + + if (_startPosY.Value < 0) { _startPosY = 0; } + if (_startPosX.Value < 0) { _startPosX = 0; } + + if (_startPosX.Value + _drawningWarmlyLocomotiveWidth > _pictureWidth) + { + _startPosX = _pictureWidth - _drawningWarmlyLocomotiveWidth; + } + + if (_startPosY.Value + _drawningWarmlyLocomotiveHeight > _pictureHeight) + { + _startPosY = _pictureHeight - _drawningWarmlyLocomotiveHeight; + } + } + } + + /// + /// Изменение направления перемещения + /// + /// Направление + /// true - перемещене выполнено, false - перемещение невозможно + public bool MoveTransport(DirectionType direction) + { + if (EntityWarmlyLocomotive == null || !_startPosX.HasValue || !_startPosY.HasValue) + { + return false; + } + switch (direction) + { + //влево + case DirectionType.Left: + if (_startPosX.Value - EntityWarmlyLocomotive.Step > 0) + { + _startPosX -= (int)EntityWarmlyLocomotive.Step; + } + return true; + //вверх + case DirectionType.Up: + if (_startPosY.Value - EntityWarmlyLocomotive.Step > 0) + { + _startPosY -= (int)EntityWarmlyLocomotive.Step; + } + return true; + // вправо + case DirectionType.Right: + if (_startPosX.Value + EntityWarmlyLocomotive.Step + _drawningWarmlyLocomotiveWidth < _pictureWidth) + { + _startPosX += (int)EntityWarmlyLocomotive.Step; + } + return true; + //вниз + case DirectionType.Down: + if (_startPosY.Value + EntityWarmlyLocomotive.Step + _drawningWarmlyLocomotiveHeight < _pictureHeight) + { + _startPosY += (int)EntityWarmlyLocomotive.Step; + } + return true; + default: + return false; + } + } + + /// + /// Прорисовка объекта + /// + /// + public void DrawTransport(Graphics g) + { + if (EntityWarmlyLocomotive == null || !_startPosX.HasValue || !_startPosY.HasValue) + { + return; + } + Pen pen = new(Color.Black); + Brush additionalBrush = new SolidBrush(EntityWarmlyLocomotive.AdditionalColor); + // обвесы + if (EntityWarmlyLocomotive.Chimney) + { + //труба + g.DrawRectangle(pen, _startPosX.Value + 20, _startPosY.Value + 0, 10, 10); + g.FillRectangle(additionalBrush, _startPosX.Value + 20, _startPosY.Value + 0, 10, 5); + } + + if (EntityWarmlyLocomotive.Compartment) + { + //топливо отсек + g.DrawRectangle(pen, _startPosX.Value + 40, _startPosY.Value + 35, 20, 5); + g.FillRectangle(additionalBrush, _startPosX.Value + 40, _startPosY.Value + 35, 20, 5); + } + + //границы паровоза + g.DrawRectangle(pen, _startPosX.Value + 0, _startPosY.Value + 20, 120, 15); + g.DrawRectangle(pen, _startPosX.Value + 10, _startPosY.Value + 5, 110, 15); + + //кузов + Brush bk = new SolidBrush(EntityWarmlyLocomotive.BodyColor); + g.FillRectangle(bk, _startPosX.Value + 0, _startPosY.Value + 20, 120, 15); + g.FillRectangle(bk, _startPosX.Value + 10, _startPosY.Value + 5, 110, 15); + + //дверь + g.DrawRectangle(pen, _startPosX.Value + 45, _startPosY.Value + 10, 10, 22); + + //нос + g.DrawLine(pen, _startPosX.Value + 0, _startPosY.Value + 20, _startPosX.Value + 10, _startPosY.Value + 5); + + //стекла + Pen penBlue = new(Color.LightBlue); + Brush wt = new SolidBrush(Color.White); + g.FillRectangle(wt, _startPosX.Value + 15, _startPosY.Value + 7, 10, 10); + g.DrawRectangle(penBlue, _startPosX.Value + 15, _startPosY.Value + 7, 10, 10); + g.FillRectangle(wt, _startPosX.Value + 30, _startPosY.Value + 7, 10, 10); + g.DrawRectangle(penBlue, _startPosX.Value + 30, _startPosY.Value + 7, 10, 10); + g.FillRectangle(wt, _startPosX.Value + 107, _startPosY.Value + 7, 10, 10); + g.DrawRectangle(penBlue, _startPosX.Value + 107, _startPosY.Value + 7, 10, 10); + + //треугольники низ + Brush br = new SolidBrush(Color.Black); + g.DrawRectangle(pen, _startPosX.Value + 10, _startPosY.Value + 35, 30, 5); + g.DrawLine(pen, _startPosX.Value + 10, _startPosY.Value + 35, _startPosX.Value + 0, _startPosY.Value + 40); + g.DrawLine(pen, _startPosX.Value + 0, _startPosY.Value + 40, _startPosX.Value + 10, _startPosY.Value + 40); + g.FillRectangle(br, _startPosX.Value + 10, _startPosY.Value + 35, 30, 5); + + g.DrawRectangle(pen, _startPosX.Value + 85, _startPosY.Value + 35, 30, 5); + g.DrawLine(pen, _startPosX.Value + 110, _startPosY.Value + 35, _startPosX.Value + 130, _startPosY.Value + 40); + g.DrawLine(pen, _startPosX.Value + 130, _startPosY.Value + 40, _startPosX.Value + 110, _startPosY.Value + 40); + g.FillRectangle(br, _startPosX.Value + 85, _startPosY.Value + 35, 30, 5); + + //зад.часть + g.DrawRectangle(pen, _startPosX.Value + 120, _startPosY.Value + 7, 5, 25); + g.FillRectangle(br, _startPosX.Value + 120, _startPosY.Value + 7, 5, 25); + + //колеса + g.FillEllipse(wt, _startPosX.Value + 10, _startPosY.Value + 35, 12, 11); + g.DrawEllipse(pen, _startPosX.Value + 10, _startPosY.Value + 35, 12, 11); + + g.FillEllipse(wt, _startPosX.Value + 30, _startPosY.Value + 35, 12, 11); + g.DrawEllipse(pen, _startPosX.Value + 30, _startPosY.Value + 35, 12, 11); + + g.FillEllipse(wt, _startPosX.Value + 80, _startPosY.Value + 35, 12, 11); + g.DrawEllipse(pen, _startPosX.Value + 80, _startPosY.Value + 35, 12, 11); + + g.FillEllipse(wt, _startPosX.Value + 100, _startPosY.Value + 35, 12, 11); + g.DrawEllipse(pen, _startPosX.Value + 100, _startPosY.Value + 35, 12, 11); + + //линия + if (EntityWarmlyLocomotive.IndicatingLine) + { + g.FillRectangle(additionalBrush, _startPosX.Value + 0, _startPosY.Value + 20, 120, 2); + + } + } +} diff --git a/WarmlyLocomotive/WarmlyLocomotive/EntityWarmlyLocomotive.cs b/WarmlyLocomotive/WarmlyLocomotive/EntityWarmlyLocomotive.cs new file mode 100644 index 0000000..cb6983f --- /dev/null +++ b/WarmlyLocomotive/WarmlyLocomotive/EntityWarmlyLocomotive.cs @@ -0,0 +1,60 @@ +namespace WarmlyLocomotive; +/// +/// Класс-сущность "тепловоз" +/// +public class EntityWarmlyLocomotive +{ + /// + /// Скорость + /// + 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 Chimney { get; private set; } + /// + /// Признак (опция) наличия топливного отсека + /// + public bool Compartment { get; private set; } + /// + /// Признак (опция) наличия гоночной полосы + /// + public bool IndicatingLine { get; private set; } + /// + /// Шаг перемещения автомобиля + /// + public double Step => Speed * 100 / Weight; + /// + /// Инициализация полей объекта-класса тепловоза + /// + /// Скорость + /// Вес тепловоза + /// Основной цвет + /// Дополнительный цвет + /// Признак наличия трубы + /// Признак наличия топливного отсека + /// Признак наличия обозначающей полосы + + public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool chimney, bool compartment, bool indicatingLine) + { + Speed = speed; + Weight = weight; + BodyColor = bodyColor; + AdditionalColor = additionalColor; + Chimney = chimney; + Compartment = compartment; + IndicatingLine = indicatingLine; + } +} diff --git a/WarmlyLocomotive/WarmlyLocomotive/Form1.Designer.cs b/WarmlyLocomotive/WarmlyLocomotive/Form1.Designer.cs deleted file mode 100644 index 8f5fc41..0000000 --- a/WarmlyLocomotive/WarmlyLocomotive/Form1.Designer.cs +++ /dev/null @@ -1,39 +0,0 @@ -namespace WarmlyLocomotive -{ - partial class Form1 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 450); - this.Text = "Form1"; - } - - #endregion - } -} \ No newline at end of file diff --git a/WarmlyLocomotive/WarmlyLocomotive/Form1.cs b/WarmlyLocomotive/WarmlyLocomotive/Form1.cs deleted file mode 100644 index 9269ed4..0000000 --- a/WarmlyLocomotive/WarmlyLocomotive/Form1.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace WarmlyLocomotive -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - } -} \ No newline at end of file diff --git a/WarmlyLocomotive/WarmlyLocomotive/FormWarmlyLocomotive.Designer.cs b/WarmlyLocomotive/WarmlyLocomotive/FormWarmlyLocomotive.Designer.cs new file mode 100644 index 0000000..aad507f --- /dev/null +++ b/WarmlyLocomotive/WarmlyLocomotive/FormWarmlyLocomotive.Designer.cs @@ -0,0 +1,134 @@ +namespace WarmlyLocomotive +{ + partial class FormWarmlyLocomotive + { + /// + /// 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() + { + pictureBoxWarmlyLocomotive = new PictureBox(); + buttonCreateWarmlyLocomotive = new Button(); + buttonLeft = new Button(); + buttonDown = new Button(); + buttonRight = new Button(); + buttonUp = new Button(); + ((System.ComponentModel.ISupportInitialize)pictureBoxWarmlyLocomotive).BeginInit(); + SuspendLayout(); + // + // pictureBoxWarmlyLocomotive + // + pictureBoxWarmlyLocomotive.Dock = DockStyle.Fill; + pictureBoxWarmlyLocomotive.Location = new Point(0, 0); + pictureBoxWarmlyLocomotive.Name = "pictureBoxWarmlyLocomotive"; + pictureBoxWarmlyLocomotive.Size = new Size(800, 450); + pictureBoxWarmlyLocomotive.TabIndex = 0; + pictureBoxWarmlyLocomotive.TabStop = false; + // + // buttonCreateWarmlyLocomotive + // + buttonCreateWarmlyLocomotive.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + buttonCreateWarmlyLocomotive.Location = new Point(12, 409); + buttonCreateWarmlyLocomotive.Name = "buttonCreateWarmlyLocomotive"; + buttonCreateWarmlyLocomotive.Size = new Size(94, 29); + buttonCreateWarmlyLocomotive.TabIndex = 1; + buttonCreateWarmlyLocomotive.Text = "создать"; + buttonCreateWarmlyLocomotive.UseVisualStyleBackColor = true; + buttonCreateWarmlyLocomotive.Click += ButtonCreateWarmlyLocomotive_Click; + // + // buttonLeft + // + buttonLeft.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonLeft.BackgroundImage = Properties.Resources.arrowLeft; + buttonLeft.BackgroundImageLayout = ImageLayout.Stretch; + buttonLeft.Location = new Point(653, 403); + buttonLeft.Name = "buttonLeft"; + buttonLeft.Size = new Size(35, 35); + buttonLeft.TabIndex = 2; + buttonLeft.UseVisualStyleBackColor = true; + buttonLeft.Click += ButtonMove_Click; + // + // buttonDown + // + buttonDown.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonDown.BackgroundImage = Properties.Resources.arrowDown; + buttonDown.BackgroundImageLayout = ImageLayout.Stretch; + buttonDown.Location = new Point(694, 403); + buttonDown.Name = "buttonDown"; + buttonDown.Size = new Size(35, 35); + buttonDown.TabIndex = 3; + buttonDown.UseVisualStyleBackColor = true; + buttonDown.Click += ButtonMove_Click; + // + // buttonRight + // + buttonRight.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonRight.BackgroundImage = Properties.Resources.arrowRight; + buttonRight.BackgroundImageLayout = ImageLayout.Stretch; + buttonRight.Location = new Point(735, 403); + buttonRight.Name = "buttonRight"; + buttonRight.Size = new Size(35, 35); + buttonRight.TabIndex = 4; + buttonRight.UseVisualStyleBackColor = true; + buttonRight.Click += ButtonMove_Click; + // + // buttonUp + // + buttonUp.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonUp.BackgroundImage = Properties.Resources.arrowUp; + buttonUp.BackgroundImageLayout = ImageLayout.Stretch; + buttonUp.Location = new Point(694, 359); + buttonUp.Name = "buttonUp"; + buttonUp.Size = new Size(35, 35); + buttonUp.TabIndex = 5; + buttonUp.UseVisualStyleBackColor = true; + buttonUp.Click += ButtonMove_Click; + // + // FormWarmlyLocomotive + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(800, 450); + Controls.Add(buttonUp); + Controls.Add(buttonRight); + Controls.Add(buttonDown); + Controls.Add(buttonLeft); + Controls.Add(buttonCreateWarmlyLocomotive); + Controls.Add(pictureBoxWarmlyLocomotive); + Name = "FormWarmlyLocomotive"; + Text = "тепловоз"; + ((System.ComponentModel.ISupportInitialize)pictureBoxWarmlyLocomotive).EndInit(); + ResumeLayout(false); + } + + #endregion + + private PictureBox pictureBoxWarmlyLocomotive; + private Button buttonCreateWarmlyLocomotive; + private Button buttonLeft; + private Button buttonDown; + private Button buttonRight; + private Button buttonUp; + } +} \ No newline at end of file diff --git a/WarmlyLocomotive/WarmlyLocomotive/FormWarmlyLocomotive.cs b/WarmlyLocomotive/WarmlyLocomotive/FormWarmlyLocomotive.cs new file mode 100644 index 0000000..d506d2e --- /dev/null +++ b/WarmlyLocomotive/WarmlyLocomotive/FormWarmlyLocomotive.cs @@ -0,0 +1,88 @@ +namespace WarmlyLocomotive; + +/// +/// Форма работы с объектом "тепловоз" +/// +public partial class FormWarmlyLocomotive : Form +{ + /// + /// Поле-объект для прорисовки объекта + /// + private DrawningWarmlyLocomotive? _drawningWarmlyLocomotive; + + /// + /// Конструктор формы + /// + public FormWarmlyLocomotive() + { + InitializeComponent(); + } + + /// + /// Метод прорисовки паровоза + /// + private void Draw() + { + if (_drawningWarmlyLocomotive == null) + { + return; + } + Bitmap bmp = new(pictureBoxWarmlyLocomotive.Width, pictureBoxWarmlyLocomotive.Height); + Graphics gr = Graphics.FromImage(bmp); + _drawningWarmlyLocomotive.DrawTransport(gr); + pictureBoxWarmlyLocomotive.Image = bmp; + } + + /// + /// Обработка нажатия кнопки "Создать" + /// + /// + /// + private void ButtonCreateWarmlyLocomotive_Click(object sender, EventArgs e) + { + Random random = new(); + _drawningWarmlyLocomotive = new DrawningWarmlyLocomotive(); + _drawningWarmlyLocomotive.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)), Convert.ToBoolean(random.Next(0, 2))); + _drawningWarmlyLocomotive.SetPictureSize(pictureBoxWarmlyLocomotive.Width, pictureBoxWarmlyLocomotive.Height); + _drawningWarmlyLocomotive.SetPosition(random.Next(10, 100), random.Next(10, 100)); + + Draw(); + + } + /// + /// Перемещение объекта по форме (нажатие кнопок навигации) + /// + /// + /// + private void ButtonMove_Click(object sender, EventArgs e) + { + if (_drawningWarmlyLocomotive == null) + { + return; + } + string name = ((Button)sender)?.Name ?? string.Empty; + bool result = false; + switch (name) + { + case "buttonUp": + result = _drawningWarmlyLocomotive.MoveTransport(DirectionType.Up); + break; + case "buttonDown": + result = _drawningWarmlyLocomotive.MoveTransport(DirectionType.Down); + break; + case "buttonLeft": + result = _drawningWarmlyLocomotive.MoveTransport(DirectionType.Left); + break; + case "buttonRight": + result = _drawningWarmlyLocomotive.MoveTransport(DirectionType.Right); + break; + } + if (result) + { + Draw(); + } + } +} diff --git a/WarmlyLocomotive/WarmlyLocomotive/Form1.resx b/WarmlyLocomotive/WarmlyLocomotive/FormWarmlyLocomotive.resx similarity index 93% rename from WarmlyLocomotive/WarmlyLocomotive/Form1.resx rename to WarmlyLocomotive/WarmlyLocomotive/FormWarmlyLocomotive.resx index 1af7de1..af32865 100644 --- a/WarmlyLocomotive/WarmlyLocomotive/Form1.resx +++ b/WarmlyLocomotive/WarmlyLocomotive/FormWarmlyLocomotive.resx @@ -1,17 +1,17 @@  - diff --git a/WarmlyLocomotive/WarmlyLocomotive/Program.cs b/WarmlyLocomotive/WarmlyLocomotive/Program.cs index 1edb8df..b972d2a 100644 --- a/WarmlyLocomotive/WarmlyLocomotive/Program.cs +++ b/WarmlyLocomotive/WarmlyLocomotive/Program.cs @@ -11,7 +11,7 @@ namespace WarmlyLocomotive // 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 FormWarmlyLocomotive()); } } } \ No newline at end of file diff --git a/WarmlyLocomotive/WarmlyLocomotive/Properties/Resources.Designer.cs b/WarmlyLocomotive/WarmlyLocomotive/Properties/Resources.Designer.cs new file mode 100644 index 0000000..b59efb1 --- /dev/null +++ b/WarmlyLocomotive/WarmlyLocomotive/Properties/Resources.Designer.cs @@ -0,0 +1,103 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +namespace WarmlyLocomotive.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("WarmlyLocomotive.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Перезаписывает свойство CurrentUICulture текущего потока для всех + /// обращений к ресурсу с помощью этого класса ресурса со строгой типизацией. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap arrowDown { + get { + object obj = ResourceManager.GetObject("arrowDown", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap arrowLeft { + get { + object obj = ResourceManager.GetObject("arrowLeft", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap arrowRight { + get { + object obj = ResourceManager.GetObject("arrowRight", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap arrowUp { + get { + object obj = ResourceManager.GetObject("arrowUp", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/WarmlyLocomotive/WarmlyLocomotive/Properties/Resources.resx b/WarmlyLocomotive/WarmlyLocomotive/Properties/Resources.resx new file mode 100644 index 0000000..8975a9e --- /dev/null +++ b/WarmlyLocomotive/WarmlyLocomotive/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\arrowUp.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\arrowLeft.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\arrowRight.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\arrowDown.jpg;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/WarmlyLocomotive/WarmlyLocomotive/Resources/arrowDown.jpg b/WarmlyLocomotive/WarmlyLocomotive/Resources/arrowDown.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4531c18070e1bc2170694cf08238651a1f586f80 GIT binary patch literal 10626 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 UOItY}_=Dl!5B_ftiH^PcC#!qp5&!@I literal 0 HcmV?d00001 diff --git a/WarmlyLocomotive/WarmlyLocomotive/Resources/arrowLeft.jpg b/WarmlyLocomotive/WarmlyLocomotive/Resources/arrowLeft.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4bb006ae3c6ce6c67dd240cfe82c7a693a028836 GIT binary patch literal 10507 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 B8ukDH literal 0 HcmV?d00001 diff --git a/WarmlyLocomotive/WarmlyLocomotive/Resources/arrowUp.jpg b/WarmlyLocomotive/WarmlyLocomotive/Resources/arrowUp.jpg new file mode 100644 index 0000000000000000000000000000000000000000..88f6eaad1e732056f3101298b53873695825fbfc GIT binary patch literal 10655 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 A3IG5A literal 0 HcmV?d00001 diff --git a/WarmlyLocomotive/WarmlyLocomotive/WarmlyLocomotive.csproj b/WarmlyLocomotive/WarmlyLocomotive/WarmlyLocomotive.csproj index e1a0735..244387d 100644 --- a/WarmlyLocomotive/WarmlyLocomotive/WarmlyLocomotive.csproj +++ b/WarmlyLocomotive/WarmlyLocomotive/WarmlyLocomotive.csproj @@ -8,4 +8,19 @@ enable + + + True + True + Resources.resx + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + \ No newline at end of file diff --git a/lab_1/lab_1.sln b/lab_1/lab_1.sln new file mode 100644 index 0000000..55518f5 --- /dev/null +++ b/lab_1/lab_1.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.7.34024.191 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "lab_1", "lab_1\lab_1.vcxproj", "{88F6E495-8313-457C-8B37-34F8848D95C3}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {88F6E495-8313-457C-8B37-34F8848D95C3}.Debug|x64.ActiveCfg = Debug|x64 + {88F6E495-8313-457C-8B37-34F8848D95C3}.Debug|x64.Build.0 = Debug|x64 + {88F6E495-8313-457C-8B37-34F8848D95C3}.Debug|x86.ActiveCfg = Debug|Win32 + {88F6E495-8313-457C-8B37-34F8848D95C3}.Debug|x86.Build.0 = Debug|Win32 + {88F6E495-8313-457C-8B37-34F8848D95C3}.Release|x64.ActiveCfg = Release|x64 + {88F6E495-8313-457C-8B37-34F8848D95C3}.Release|x64.Build.0 = Release|x64 + {88F6E495-8313-457C-8B37-34F8848D95C3}.Release|x86.ActiveCfg = Release|Win32 + {88F6E495-8313-457C-8B37-34F8848D95C3}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {AFE935BC-7614-4661-8922-8FCC085EA88C} + EndGlobalSection +EndGlobal diff --git a/lab_1/lab_1/Lab_1.c b/lab_1/lab_1/Lab_1.c new file mode 100644 index 0000000..89d85e3 --- /dev/null +++ b/lab_1/lab_1/Lab_1.c @@ -0,0 +1,50 @@ +#define _CRT_SECURE_NO_WARNINGS +#include +#include +#include +#include + +// +struct medicine { + char name[10]; + int index; + struct medicine* next; +}; + +struct medicine* first = NULL; + +void sortMedicine(struct medicine* list); + +struct medicine* create(struct medicine* end, int n, char* p) { + struct medicine* tmp; + + tmp = (struct medicine*)malloc(sizeof(struct medicine)); + + tmp->index = n; + strcpy(tmp->name, p); + + if (end == NULL) { + tmp->next = NULL; + } + else { + tmp->next = end; + } + + return tmp; +} + + +void print(struct medicine *p) { + do { + printf("%10s (%d) -> ", p->name, p->index); + } while ((p = p->next) != NULL); + + printf("\n"); +} + +void main() { + first = NULL; + printList(); + addElement("bimbim", 2); + printList(); +} \ No newline at end of file diff --git a/lab_1/lab_1/lab_1.vcxproj b/lab_1/lab_1/lab_1.vcxproj new file mode 100644 index 0000000..2b896e3 --- /dev/null +++ b/lab_1/lab_1/lab_1.vcxproj @@ -0,0 +1,135 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {88f6e495-8313-457c-8b37-34f8848d95c3} + lab1 + 10.0 + + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + Application + true + v143 + Unicode + + + Application + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + Level3 + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + Level3 + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + + + + + Level3 + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + + + + + + + + \ No newline at end of file diff --git a/lab_1/lab_1/lab_1.vcxproj.filters b/lab_1/lab_1/lab_1.vcxproj.filters new file mode 100644 index 0000000..dd529d6 --- /dev/null +++ b/lab_1/lab_1/lab_1.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Исходные файлы + + + \ No newline at end of file