diff --git a/AccordionBus/AccordionBus/DirectionType.cs b/AccordionBus/AccordionBus/Drawnings/DirectionType.cs
similarity index 94%
rename from AccordionBus/AccordionBus/DirectionType.cs
rename to AccordionBus/AccordionBus/Drawnings/DirectionType.cs
index 82de324..8e95832 100644
--- a/AccordionBus/AccordionBus/DirectionType.cs
+++ b/AccordionBus/AccordionBus/Drawnings/DirectionType.cs
@@ -4,7 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace AccordionBus
+namespace AccordionBus.Drawnings
{
///
/// Направление премещения
diff --git a/AccordionBus/AccordionBus/Drawnings/DrawningAccordionBus.cs b/AccordionBus/AccordionBus/Drawnings/DrawningAccordionBus.cs
new file mode 100644
index 0000000..ed3978f
--- /dev/null
+++ b/AccordionBus/AccordionBus/Drawnings/DrawningAccordionBus.cs
@@ -0,0 +1,100 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using AccordionBus.Entities;
+
+namespace AccordionBus.Drawnings
+{
+ ///
+ /// Класс, отвечающий за перемещение и прорисовку объекта-сущности
+ ///
+ public class DrawningAccordionBus : DrawningBus
+ {
+ ///
+ /// Инициализация свойств
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public DrawningAccordionBus(int speed, double weight, Color bodyColor, Color
+ additionalColor, bool onePart, bool fiveDoors): base(130, 20)
+ {
+ EntityBus = new EntityAccordionBus(speed, weight, bodyColor, additionalColor, onePart, fiveDoors);
+ }
+ ///
+ /// Отрисовка транспорта
+ ///
+ ///
+ public override void DrawTransport(Graphics g)
+ {
+ if (EntityBus == null || EntityBus is not EntityAccordionBus accordionBus || !_startPosX.HasValue ||
+ !_startPosY.HasValue)
+ {
+ return;
+ }
+
+ base.DrawTransport(g);
+
+ if (!accordionBus.OnePart)
+ {
+ Pen pen = new(Color.Black);
+ Brush brWhite = new SolidBrush(Color.White);
+ Brush br = new SolidBrush(accordionBus.BodyColor);
+ Brush brBlue = new SolidBrush(Color.LightBlue);
+ Brush additionalBrush = new SolidBrush(accordionBus.AdditionalColor);
+ //корпус
+ g.FillRectangle(br, _startPosX.Value + 70, _startPosY.Value, 60, 15);
+ g.DrawRectangle(pen, _startPosX.Value + 70, _startPosY.Value, 60, 15);
+
+ //колёса
+ g.FillEllipse(brWhite, _startPosX.Value + 75, _startPosY.Value + 10, 10, 10);
+ g.FillEllipse(brWhite, _startPosX.Value + 110, _startPosY.Value + 10, 10, 10);
+ g.DrawEllipse(pen, _startPosX.Value + 110, _startPosY.Value + 10, 10, 10);
+ g.DrawEllipse(pen, _startPosX.Value + 75, _startPosY.Value + 10, 10, 10);
+
+ //стёкла
+ g.FillRectangle(brBlue, _startPosX.Value + 72, _startPosY.Value + 3, 5, 5);
+ g.DrawRectangle(pen, _startPosX.Value + 72, _startPosY.Value + 3, 5, 5);
+ g.FillRectangle(brBlue, _startPosX.Value + 82, _startPosY.Value + 3, 5, 5);
+ g.DrawRectangle(pen, _startPosX.Value + 82, _startPosY.Value + 3, 5, 5);
+ g.FillRectangle(brBlue, _startPosX.Value + 92, _startPosY.Value + 3, 5, 5);
+ g.DrawRectangle(pen, _startPosX.Value + 92, _startPosY.Value + 3, 5, 5);
+ g.FillRectangle(brBlue, _startPosX.Value + 102, _startPosY.Value + 3, 5, 5);
+ g.DrawRectangle(pen, _startPosX.Value + 102, _startPosY.Value + 3, 5, 5);
+ g.FillRectangle(brBlue, _startPosX.Value + 112, _startPosY.Value + 3, 5, 5);
+ g.DrawRectangle(pen, _startPosX.Value + 112, _startPosY.Value + 3, 5, 5);
+
+ //гормошка
+ g.DrawLine(pen, _startPosX.Value + 60, _startPosY.Value, _startPosX.Value + 62, _startPosY.Value + 3);
+ g.DrawLine(pen, _startPosX.Value + 62, _startPosY.Value + 3, _startPosX.Value + 65, _startPosY.Value);
+ g.DrawLine(pen, _startPosX.Value + 65, _startPosY.Value, _startPosX.Value + 67, _startPosY.Value + 3);
+ g.DrawLine(pen, _startPosX.Value + 67, _startPosY.Value + 3, _startPosX.Value + 70, _startPosY.Value);
+ g.DrawLine(pen, _startPosX.Value + 60, _startPosY.Value + 15, _startPosX.Value + 62, _startPosY.Value + 12);
+ g.DrawLine(pen, _startPosX.Value + 62, _startPosY.Value + 12, _startPosX.Value + 65, _startPosY.Value + 15);
+ g.DrawLine(pen, _startPosX.Value + 65, _startPosY.Value + 15, _startPosX.Value + 67, _startPosY.Value + 12);
+ g.DrawLine(pen, _startPosX.Value + 67, _startPosY.Value + 12, _startPosX.Value + 70, _startPosY.Value + 15);
+ g.DrawLine(pen, _startPosX.Value + 62, _startPosY.Value + 3, _startPosX.Value + 62, _startPosY.Value + 12);
+ g.DrawLine(pen, _startPosX.Value + 67, _startPosY.Value + 3, _startPosX.Value + 67, _startPosY.Value + 12);
+ g.DrawLine(pen, _startPosX.Value + 65, _startPosY.Value, _startPosX.Value + 65, _startPosY.Value + 15);
+
+ //двери
+ g.FillRectangle(additionalBrush, _startPosX.Value + 123, _startPosY.Value + 5, 5, 10);
+ g.DrawRectangle(pen, _startPosX.Value + 123, _startPosY.Value + 5, 5, 10);
+ if (accordionBus.FiveDoors)
+ {
+ g.FillRectangle(additionalBrush, _startPosX.Value + 87, _startPosY.Value + 9, 21, 5);
+ g.DrawRectangle(pen, _startPosX.Value + 87, _startPosY.Value + 9, 21, 5);
+ g.FillRectangle(additionalBrush, _startPosX.Value + 53, _startPosY.Value + 5, 5, 10);
+ g.DrawRectangle(pen, _startPosX.Value + 53, _startPosY.Value + 5, 5, 10);
+ g.FillRectangle(additionalBrush, _startPosX.Value + 27, _startPosY.Value + 9, 11, 5);
+ g.DrawRectangle(pen, _startPosX.Value + 27, _startPosY.Value + 9, 11, 5);
+ }
+ }
+ }
+ }
+}
diff --git a/AccordionBus/AccordionBus/DrawningAccordionBus.cs b/AccordionBus/AccordionBus/Drawnings/DrawningBus.cs
similarity index 50%
rename from AccordionBus/AccordionBus/DrawningAccordionBus.cs
rename to AccordionBus/AccordionBus/Drawnings/DrawningBus.cs
index d862537..c8842d0 100644
--- a/AccordionBus/AccordionBus/DrawningAccordionBus.cs
+++ b/AccordionBus/AccordionBus/Drawnings/DrawningBus.cs
@@ -1,20 +1,19 @@
-using System;
+using AccordionBus.Entities;
+using System;
using System.Collections.Generic;
+using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace AccordionBus
+namespace AccordionBus.Drawnings
{
- ///
- /// Класс, отвечающий за перемещение и прорисовку объекта-сущности
- ///
- public class DrawningAccordionBus
+ public class DrawningBus
{
///
/// Класс-сущность
///
- public EntityAccordionBus? EntityAccordionBus { get; private set; }
+ public EntityBus? EntityBus { get; protected set; }
///
/// Ширина окна
///
@@ -26,39 +25,50 @@ namespace AccordionBus
///
/// Левая координата прорисовки авто
///
- private int? _startPosX;
+ protected int? _startPosX;
///
/// Верхняя координата прорисовки авто
///
- private int? _startPosY;
+ protected int? _startPosY;
///
/// Ширина прорисовки авто
///
- private readonly int _drawningBusWeight = 130;
+ private readonly int _drawningBusWeight = 60;
///
/// Высота прорисовки авто
///
private readonly int _drawningBusHeight = 20;
///
- /// Инициализация свойств
+ /// Пустой конструктор
///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- public void Init(int speed, double weight, Color bodyColor, Color
- additionalColor, bool onePart, bool fiveDoors)
+ private DrawningBus()
{
- EntityAccordionBus = new EntityAccordionBus();
- EntityAccordionBus.Init(speed, weight, bodyColor, additionalColor, onePart, fiveDoors);
_pictureWeight = null;
_pictureHeight = null;
_startPosX = null;
_startPosY = null;
}
+ ///
+ /// Конструктор границ объекта
+ ///
+ /// Ширина
+ /// Высота
+ protected DrawningBus(int drawningBusWeight, int drawningBusHeight) : this()
+ {
+ _drawningBusWeight = drawningBusWeight;
+ _drawningBusHeight = drawningBusHeight;
+ }
+ ///
+ /// Конструктор пораметров
+ ///
+ /// Скорость
+ /// Вес
+ /// Основной цвет
+ public DrawningBus(int speed, double weight, Color bodyColor) : this()
+ {
+ EntityBus = new EntityBus(speed, weight, bodyColor);
+ }
+
///
/// Установка границ поля
///
@@ -85,7 +95,7 @@ namespace AccordionBus
}
return true;
-
+
}
///
/// Установка позиции
@@ -101,7 +111,7 @@ namespace AccordionBus
if (x + _drawningBusWeight > _pictureWeight)
{
- _startPosX = x - ( x + _drawningBusWeight - _pictureWeight);
+ _startPosX = x - (x + _drawningBusWeight - _pictureWeight);
}
else if (x < 0)
{
@@ -114,7 +124,7 @@ namespace AccordionBus
if (y + _drawningBusHeight > _pictureHeight)
{
- _startPosY = y - ( y + _drawningBusHeight - _pictureHeight);
+ _startPosY = y - (y + _drawningBusHeight - _pictureHeight);
}
else if (y < 0)
{
@@ -132,7 +142,7 @@ namespace AccordionBus
/// true - перемещение выполнено, false - перемещение невозможнор
public bool MoveTransport(DirectionType direction)
{
- if (EntityAccordionBus == null || !_startPosX.HasValue ||
+ if (EntityBus == null || !_startPosX.HasValue ||
!_startPosY.HasValue)
{
return false;
@@ -142,9 +152,9 @@ namespace AccordionBus
{
case DirectionType.Left:
- if (_startPosX.Value - EntityAccordionBus.Step > 0)
+ if (_startPosX.Value - EntityBus.Step > 0)
{
- _startPosX -= (int)EntityAccordionBus.Step;
+ _startPosX -= (int)EntityBus.Step;
}
else
{
@@ -153,9 +163,9 @@ namespace AccordionBus
return true;
case DirectionType.Right:
- if (_startPosX.Value + EntityAccordionBus.Step + _drawningBusWeight < _pictureWeight)
+ if (_startPosX.Value + EntityBus.Step + _drawningBusWeight < _pictureWeight)
{
- _startPosX += (int)EntityAccordionBus.Step;
+ _startPosX += (int)EntityBus.Step;
}
else
{
@@ -164,9 +174,9 @@ namespace AccordionBus
return true;
case DirectionType.Up:
- if (_startPosY.Value - EntityAccordionBus.Step > 0)
+ if (_startPosY.Value - EntityBus.Step > 0)
{
- _startPosY -= (int)EntityAccordionBus.Step;
+ _startPosY -= (int)EntityBus.Step;
}
else
{
@@ -175,9 +185,9 @@ namespace AccordionBus
return true;
case DirectionType.Down:
- if (_startPosY.Value + EntityAccordionBus.Step + _drawningBusHeight < _pictureHeight)
+ if (_startPosY.Value + EntityBus.Step + _drawningBusHeight < _pictureHeight)
{
- _startPosY += (int)EntityAccordionBus.Step;
+ _startPosY += (int)EntityBus.Step;
}
else
{
@@ -193,19 +203,19 @@ namespace AccordionBus
/// Отрисовка транспорта
///
///
- public void DrawTransport(Graphics g)
+ public virtual void DrawTransport(Graphics g)
{
- if (EntityAccordionBus == null || !_startPosX.HasValue ||
- !_startPosY.HasValue)
+ if (EntityBus == null || !_startPosX.HasValue ||
+ !_startPosY.HasValue)
{
- return;
+ return;
}
Pen pen = new(Color.Black);
- Brush additionalBrush = new SolidBrush(EntityAccordionBus.AdditionalColor);
+ Brush brDoor = new SolidBrush(Color.Gray);
//корпус
- Brush br = new SolidBrush(EntityAccordionBus.BodyColor);
+ Brush br = new SolidBrush(EntityBus.BodyColor);
g.FillRectangle(br, _startPosX.Value, _startPosY.Value, 60, 15);
g.DrawRectangle(pen, _startPosX.Value, _startPosY.Value, 60, 15);
@@ -228,59 +238,8 @@ namespace AccordionBus
g.DrawRectangle(pen, _startPosX.Value + 42, _startPosY.Value + 3, 5, 5);
//дверь
- g.FillRectangle(additionalBrush, _startPosX.Value + 20, _startPosY.Value + 5, 5, 10);
+ g.FillRectangle(brDoor, _startPosX.Value + 20, _startPosY.Value + 5, 5, 10);
g.DrawRectangle(pen, _startPosX.Value + 20, _startPosY.Value + 5, 5, 10);
-
- if (!EntityAccordionBus.OnePart)
- {
- //корпус
- g.FillRectangle(br, _startPosX.Value + 70, _startPosY.Value, 60, 15);
- g.DrawRectangle(pen, _startPosX.Value + 70, _startPosY.Value, 60, 15);
-
- //колёса
- g.FillEllipse(brWhite, _startPosX.Value + 75, _startPosY.Value + 10, 10, 10);
- g.FillEllipse(brWhite, _startPosX.Value + 110, _startPosY.Value + 10, 10, 10);
- g.DrawEllipse(pen, _startPosX.Value + 110, _startPosY.Value + 10, 10, 10);
- g.DrawEllipse(pen, _startPosX.Value + 75, _startPosY.Value + 10, 10, 10);
-
- //стёкла
- g.FillRectangle(brBlue, _startPosX.Value + 72, _startPosY.Value + 3, 5, 5);
- g.DrawRectangle(pen, _startPosX.Value + 72, _startPosY.Value + 3, 5, 5);
- g.FillRectangle(brBlue, _startPosX.Value + 82, _startPosY.Value + 3, 5, 5);
- g.DrawRectangle(pen, _startPosX.Value + 82, _startPosY.Value + 3, 5, 5);
- g.FillRectangle(brBlue, _startPosX.Value + 92, _startPosY.Value + 3, 5, 5);
- g.DrawRectangle(pen, _startPosX.Value + 92, _startPosY.Value + 3, 5, 5);
- g.FillRectangle(brBlue, _startPosX.Value + 102, _startPosY.Value + 3, 5, 5);
- g.DrawRectangle(pen, _startPosX.Value + 102, _startPosY.Value + 3, 5, 5);
- g.FillRectangle(brBlue, _startPosX.Value + 112, _startPosY.Value + 3, 5, 5);
- g.DrawRectangle(pen, _startPosX.Value + 112, _startPosY.Value + 3, 5, 5);
-
- //гормошка
- g.DrawLine(pen, _startPosX.Value + 60, _startPosY.Value, _startPosX.Value + 62, _startPosY.Value + 3);
- g.DrawLine(pen, _startPosX.Value + 62, _startPosY.Value + 3, _startPosX.Value + 65, _startPosY.Value);
- g.DrawLine(pen, _startPosX.Value + 65, _startPosY.Value, _startPosX.Value + 67, _startPosY.Value + 3);
- g.DrawLine(pen, _startPosX.Value + 67, _startPosY.Value + 3, _startPosX.Value + 70, _startPosY.Value);
- g.DrawLine(pen, _startPosX.Value + 60, _startPosY.Value + 15, _startPosX.Value + 62, _startPosY.Value + 12);
- g.DrawLine(pen, _startPosX.Value + 62, _startPosY.Value + 12, _startPosX.Value + 65, _startPosY.Value + 15);
- g.DrawLine(pen, _startPosX.Value + 65, _startPosY.Value + 15, _startPosX.Value + 67, _startPosY.Value + 12);
- g.DrawLine(pen, _startPosX.Value + 67, _startPosY.Value + 12, _startPosX.Value + 70, _startPosY.Value + 15);
- g.DrawLine(pen, _startPosX.Value + 62, _startPosY.Value + 3, _startPosX.Value + 62, _startPosY.Value + 12);
- g.DrawLine(pen, _startPosX.Value + 67, _startPosY.Value + 3, _startPosX.Value + 67, _startPosY.Value + 12);
- g.DrawLine(pen, _startPosX.Value + 65, _startPosY.Value, _startPosX.Value + 65, _startPosY.Value + 15);
-
- //двери
- g.FillRectangle(additionalBrush, _startPosX.Value + 123, _startPosY.Value + 5, 5, 10);
- g.DrawRectangle(pen, _startPosX.Value + 123, _startPosY.Value + 5, 5, 10);
- if (EntityAccordionBus.FiveDoors)
- {
- g.FillRectangle(additionalBrush, _startPosX.Value + 87, _startPosY.Value + 9, 21, 5);
- g.DrawRectangle(pen, _startPosX.Value + 87, _startPosY.Value + 9, 21, 5);
- g.FillRectangle(additionalBrush, _startPosX.Value + 53, _startPosY.Value + 5, 5, 10);
- g.DrawRectangle(pen, _startPosX.Value + 53, _startPosY.Value + 5, 5, 10);
- g.FillRectangle(additionalBrush, _startPosX.Value + 27, _startPosY.Value + 9, 11, 5);
- g.DrawRectangle(pen, _startPosX.Value + 27, _startPosY.Value + 9, 11, 5);
- }
- }
}
}
-}
+}
\ No newline at end of file
diff --git a/AccordionBus/AccordionBus/EntityAccordionBus.cs b/AccordionBus/AccordionBus/Entities/EntityAccordionBus.cs
similarity index 58%
rename from AccordionBus/AccordionBus/EntityAccordionBus.cs
rename to AccordionBus/AccordionBus/Entities/EntityAccordionBus.cs
index b6c06a7..336dfcf 100644
--- a/AccordionBus/AccordionBus/EntityAccordionBus.cs
+++ b/AccordionBus/AccordionBus/Entities/EntityAccordionBus.cs
@@ -4,25 +4,13 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
-namespace AccordionBus
+namespace AccordionBus.Entities
{
///
/// класс-сущность "автобус с гормошкой"
///
- public class EntityAccordionBus
+ public class EntityAccordionBus : EntityBus
{
- ///
- /// Скорость
- ///
- public int Speed { get; set; }
- ///
- /// Вес
- ///
- public double Weight { get; set; }
- ///
- /// Основной цвет
- ///
- public Color BodyColor { get; set; }
///
/// Дополнительный цвет
///
@@ -36,25 +24,17 @@ namespace AccordionBus
///
public bool FiveDoors { get; set; }
///
- /// Шаг
- ///
- public double Step => Speed * 100 / Weight;
- ///
/// инициализация полей объекта-класса
///
/// Скорость
/// вес
/// Основной цвет
/// Дополнительный цвет
- /// 3 двери
- /// 4 двери
+ /// 1 часть
/// 5 дверей
- public void Init(int speed, double weight, Color bodyColor, Color
- additionalColor, bool onePart, bool fiveDoors)
+ public EntityAccordionBus(int speed, double weight, Color bodyColor,
+ Color additionalColor, bool onePart, bool fiveDoors) : base(speed, weight, bodyColor)
{
- Speed = speed;
- Weight = weight;
- BodyColor = bodyColor;
AdditionalColor = additionalColor;
OnePart = onePart;
FiveDoors = fiveDoors;
diff --git a/AccordionBus/AccordionBus/Entities/EntityBus.cs b/AccordionBus/AccordionBus/Entities/EntityBus.cs
new file mode 100644
index 0000000..18c5a80
--- /dev/null
+++ b/AccordionBus/AccordionBus/Entities/EntityBus.cs
@@ -0,0 +1,43 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace AccordionBus.Entities
+{
+ ///
+ /// класс-сущность "Автобус"
+ ///
+ public class EntityBus
+ {
+ ///
+ /// Скорость
+ ///
+ public int Speed { get; set; }
+ ///
+ /// Вес
+ ///
+ public double Weight { get; set; }
+ ///
+ /// Основной цвет
+ ///
+ public Color BodyColor { get; set; }
+ ///
+ /// Шаг
+ ///
+ public double Step => Speed * 100 / Weight;
+ ///
+ /// Конструктор сущности
+ ///
+ /// Скорость
+ /// Вес
+ /// Основной цвет
+ public EntityBus(int speed, double weight, Color bodyColor)
+ {
+ Speed = speed;
+ Weight = weight;
+ BodyColor = bodyColor;
+ }
+ }
+}
diff --git a/AccordionBus/AccordionBus/FormAccordionBus.Designer.cs b/AccordionBus/AccordionBus/FormAccordionBus.Designer.cs
index be03cce..f286f13 100644
--- a/AccordionBus/AccordionBus/FormAccordionBus.Designer.cs
+++ b/AccordionBus/AccordionBus/FormAccordionBus.Designer.cs
@@ -29,17 +29,18 @@
private void InitializeComponent()
{
pictureBoxAccordionBus = new PictureBox();
- buttonCreate = new Button();
+ buttonCreateAccordionBus = new Button();
ButtonUp = new Button();
ButtonRight = new Button();
ButtonLeft = new Button();
ButtonDown = new Button();
+ buttonCreateBus = new Button();
((System.ComponentModel.ISupportInitialize)pictureBoxAccordionBus).BeginInit();
SuspendLayout();
//
// pictureBoxAccordionBus
//
- pictureBoxAccordionBus.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
+ pictureBoxAccordionBus.Dock = DockStyle.Fill;
pictureBoxAccordionBus.Location = new Point(0, 0);
pictureBoxAccordionBus.Name = "pictureBoxAccordionBus";
pictureBoxAccordionBus.Size = new Size(882, 453);
@@ -47,16 +48,16 @@
pictureBoxAccordionBus.TabIndex = 0;
pictureBoxAccordionBus.TabStop = false;
//
- // buttonCreate
+ // buttonCreateAccordionBus
//
- 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;
+ buttonCreateAccordionBus.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
+ buttonCreateAccordionBus.Location = new Point(12, 412);
+ buttonCreateAccordionBus.Name = "buttonCreateAccordionBus";
+ buttonCreateAccordionBus.Size = new Size(235, 29);
+ buttonCreateAccordionBus.TabIndex = 1;
+ buttonCreateAccordionBus.Text = "создать автобус с гормошкой";
+ buttonCreateAccordionBus.UseVisualStyleBackColor = true;
+ buttonCreateAccordionBus.Click += ButtonCreate_Click;
//
// ButtonUp
//
@@ -110,16 +111,28 @@
ButtonDown.UseVisualStyleBackColor = true;
ButtonDown.Click += ButtonMove_Click;
//
+ // buttonCreateBus
+ //
+ buttonCreateBus.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
+ buttonCreateBus.Location = new Point(253, 411);
+ buttonCreateBus.Name = "buttonCreateBus";
+ buttonCreateBus.Size = new Size(235, 29);
+ buttonCreateBus.TabIndex = 6;
+ buttonCreateBus.Text = "создать автобус";
+ buttonCreateBus.UseVisualStyleBackColor = true;
+ buttonCreateBus.Click += ButtonCreateBus_Click;
+ //
// FormAccordionBus
//
AutoScaleDimensions = new SizeF(8F, 20F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(882, 453);
+ Controls.Add(buttonCreateBus);
Controls.Add(ButtonDown);
Controls.Add(ButtonLeft);
Controls.Add(ButtonRight);
Controls.Add(ButtonUp);
- Controls.Add(buttonCreate);
+ Controls.Add(buttonCreateAccordionBus);
Controls.Add(pictureBoxAccordionBus);
Name = "FormAccordionBus";
StartPosition = FormStartPosition.CenterScreen;
@@ -132,10 +145,11 @@
#endregion
private PictureBox pictureBoxAccordionBus;
- private Button buttonCreate;
+ private Button buttonCreateAccordionBus;
private Button ButtonUp;
private Button ButtonRight;
private Button ButtonLeft;
private Button ButtonDown;
+ private Button buttonCreateBus;
}
}
\ No newline at end of file
diff --git a/AccordionBus/AccordionBus/FormAccordionBus.cs b/AccordionBus/AccordionBus/FormAccordionBus.cs
index 99ee87b..e32bcdf 100644
--- a/AccordionBus/AccordionBus/FormAccordionBus.cs
+++ b/AccordionBus/AccordionBus/FormAccordionBus.cs
@@ -7,12 +7,13 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
+using AccordionBus.Drawnings;
namespace AccordionBus
{
public partial class FormAccordionBus : Form
{
- private DrawningAccordionBus? _drawningAccordionBus;
+ private DrawningBus? _drawningBus;
public FormAccordionBus()
{
InitializeComponent();
@@ -20,31 +21,52 @@ namespace AccordionBus
private void Draw()
{
- if (_drawningAccordionBus == null)
+ if (_drawningBus == null)
{
return;
}
Bitmap bmp = new(pictureBoxAccordionBus.Width, pictureBoxAccordionBus.Height);
Graphics gr = Graphics.FromImage(bmp);
- _drawningAccordionBus.DrawTransport(gr);
+ _drawningBus.DrawTransport(gr);
pictureBoxAccordionBus.Image = bmp;
}
+ private void CreateObject(string type)
+ {
+ Random random = new();
+ switch (type)
+ {
+ case nameof(DrawningBus):
+ _drawningBus = new DrawningBus(random.Next(100, 300), random.Next(1000, 3000),
+ Color.FromArgb(random.Next(0, 255), random.Next(0, 255), random.Next(0, 255)));
+ break;
+ case nameof(DrawningAccordionBus):
+ _drawningBus = new DrawningAccordionBus(random.Next(100, 300), random.Next(1000, 3000),
+ Color.FromArgb(random.Next(0, 255), random.Next(0, 255), random.Next(0, 255)),
+ Color.FromArgb(random.Next(0, 255), random.Next(0, 255), random.Next(0, 255)),
+ Convert.ToBoolean(random.Next(0, 2)), Convert.ToBoolean(random.Next(0, 2)));
+ break;
+ default:
+ return;
+ }
+
+ _drawningBus.SetPictureSize(pictureBoxAccordionBus.Width, pictureBoxAccordionBus.Height);
+ _drawningBus.SetPosition(random.Next(50, 300), random.Next(50, 300));
+ Draw();
+ }
+
private void ButtonCreate_Click(object sender, EventArgs e)
{
- Random random = new();
- _drawningAccordionBus = new DrawningAccordionBus();
- _drawningAccordionBus.Init(random.Next(100, 300), random.Next(1000, 3000),
- Color.FromArgb(random.Next(0, 255), random.Next(0, 255), random.Next(0, 255)),
- Color.FromArgb(random.Next(0, 255), random.Next(0, 255), random.Next(0, 255)), Convert.ToBoolean(random.Next(0, 2)), Convert.ToBoolean(random.Next(0, 2)));
- _drawningAccordionBus.SetPictureSize(pictureBoxAccordionBus.Width, pictureBoxAccordionBus.Height);
- _drawningAccordionBus.SetPosition(random.Next(50, 300), random.Next(50, 300));
- Draw();
+ CreateObject(nameof(DrawningAccordionBus));
+ }
+ private void ButtonCreateBus_Click(object sender, EventArgs e)
+ {
+ CreateObject(nameof(DrawningBus));
}
private void ButtonMove_Click(object sender, EventArgs e)
{
- if (_drawningAccordionBus == null)
+ if (_drawningBus == null)
{
return;
}
@@ -54,16 +76,16 @@ namespace AccordionBus
switch (name)
{
case "ButtonUp":
- result = _drawningAccordionBus.MoveTransport(DirectionType.Up);
+ result = _drawningBus.MoveTransport(DirectionType.Up);
break;
case "ButtonDown":
- result = _drawningAccordionBus.MoveTransport(DirectionType.Down);
+ result = _drawningBus.MoveTransport(DirectionType.Down);
break;
case "ButtonLeft":
- result = _drawningAccordionBus.MoveTransport(DirectionType.Left);
+ result = _drawningBus.MoveTransport(DirectionType.Left);
break;
case "ButtonRight":
- result = _drawningAccordionBus.MoveTransport(DirectionType.Right);
+ result = _drawningBus.MoveTransport(DirectionType.Right);
break;
}