diff --git a/WarmlyShip/WarmlyShip/DrawingWarmlyShip.cs b/WarmlyShip/WarmlyShip/DrawingWarmlyShip.cs
index ce8b835..12347d2 100644
--- a/WarmlyShip/WarmlyShip/DrawingWarmlyShip.cs
+++ b/WarmlyShip/WarmlyShip/DrawingWarmlyShip.cs
@@ -24,43 +24,44 @@ namespace WarmlyShip
///
private int _pictureHeight;
///
- /// Левая координата прорисовки автомобиля
+ /// Левая координата прорисовки теплохода
///
private int _startPosX;
///
- /// Верхняя кооридната прорисовки автомобиля
+ /// Верхняя кооридната прорисовки теплохода
///
private int _startPosY;
///
/// Ширина прорисовки теплохода
///
- private readonly int _WarmlyShipWidth = 170;
+ private readonly int _WarmlyShipWidth = 180;
///
/// Высота прорисовки теплохода
///
- private readonly int _WarmlyShipHeight = 180;
+ private readonly int _WarmlyShipHeight = 185;
///
/// Инициализация свойств
///
/// Скорость
/// Вес
- /// Цвет кузова
+ /// Цвет корпуса
/// Дополнительный цвет
- /// Признак наличия обвеса
- /// Признак наличия антикрыла
- /// Признак наличия гоночной полосы
+ /// Признак наличия труб
+ /// Признак наличия отсека для топлива
/// Ширина картинки
/// Высота картинки
/// true - объект создан, false - проверка не пройдена,нельзя создать объект в этих размерах
-public bool Init(int speed, double weight, Color bodyColor, Color
-additionalColor, bool bodyKit, bool wing, bool sportLine, int width, int height)
+ public bool Init(int speed, double weight, Color bodyColor, Color additionalColor, bool pipes, bool section,
+ int width, int height)
{
- // TODO: Продумать проверки
+ if (width <_WarmlyShipWidth || height <_WarmlyShipHeight)
+ {
+ return false;
+ }
_pictureWidth = width;
_pictureHeight = height;
EntityWarmlyShip = new EntityWarmlyShip();
- EntityWarmlyShip.Init(speed, weight, bodyColor, additionalColor,
- bodyKit, wing, sportLine);
+ EntityWarmlyShip.Init(speed, weight, bodyColor, additionalColor, pipes, section);
return true;
}
///
@@ -70,9 +71,11 @@ additionalColor, bool bodyKit, bool wing, bool sportLine, int width, int height)
/// Координата Y
public void SetPosition(int x, int y)
{
- // TODO: Изменение x, y
- _startPosX = x;
- _startPosY = y;
+ if (x >= 0 && x + _WarmlyShipWidth <= _pictureWidth && y >= 0 && y + _WarmlyShipHeight <= _pictureHeight)
+ {
+ _startPosX = x;
+ _startPosY = y;
+ }
}
///
/// Изменение направления перемещения
@@ -132,26 +135,32 @@ additionalColor, bool bodyKit, bool wing, bool sportLine, int width, int height)
//корпус теплохода
Point[] hull = new Point[]
{
- new Point(_startPosX + 10, _startPosY + 115),
- new Point(_startPosX + 190, _startPosY + 115),
- new Point(_startPosX + 150, _startPosY + 190),
- new Point(_startPosX + 50, _startPosY + 190),
+ new Point(_startPosX, _startPosY + 110),
+ new Point(_startPosX + 180, _startPosY + 110),
+ new Point(_startPosX + 140, _startPosY + 185),
+ new Point(_startPosX + 40, _startPosY + 185),
};
g.FillPolygon(additionalBrush, hull);
g.DrawPolygon(pen, hull);
Brush bra = new SolidBrush(EntityWarmlyShip.AdditionalColor);
//палуба
- g.FillRectangle(bra, _startPosX + 35, _startPosY + 85, 130, 30);
- g.DrawRectangle(pen, _startPosX + 35, _startPosY + 85, 130, 30);
+ g.FillRectangle(bra, _startPosX + 25, _startPosY + 80, 130, 30);
+ g.DrawRectangle(pen, _startPosX + 25, _startPosY + 80, 130, 30);
//отсек для топлива
Brush brGray = new SolidBrush(Color.Gray);
- g.FillEllipse(brGray, _startPosX + 140, _startPosY + 130, 20, 20);
- g.DrawEllipse(pen, _startPosX + 140, _startPosY + 130, 20, 20);
+ if (EntityWarmlyShip.Section)
+ {
+ g.FillEllipse(brGray, _startPosX + 130, _startPosY + 130, 20, 20);
+ g.DrawEllipse(pen, _startPosX + 130, _startPosY + 130, 20, 20);
+ }
//трубы
- g.FillRectangle(additionalBrush, _startPosX + 65, _startPosY + 5, 25, 80);
- g.DrawRectangle(pen, _startPosX + 65, _startPosY + 5, 25, 80);
- g.FillRectangle(additionalBrush, _startPosX + 100, _startPosY + 25, 25, 60);
- g.DrawRectangle(pen, _startPosX + 100, _startPosY + 25, 25, 60);
+ if (EntityWarmlyShip.Pipes)
+ {
+ g.FillRectangle(brGray, _startPosX + 55, _startPosY, 25, 80);
+ g.DrawRectangle(pen, _startPosX + 55, _startPosY, 25, 80);
+ g.FillRectangle(brGray, _startPosX + 90, _startPosY + 20, 25, 60);
+ g.DrawRectangle(pen, _startPosX + 90, _startPosY + 20, 25, 60);
+ }
//якорь
g.DrawLine(anchor, new Point(_startPosX + 50, _startPosY + 130), new Point(_startPosX + 50,_startPosY + 150));
g.DrawLine(anchor, new Point(_startPosX + 40, _startPosY + 140), new Point(_startPosX + 60, _startPosY + 140));
diff --git a/WarmlyShip/WarmlyShip/EntityWarmlyShip.cs b/WarmlyShip/WarmlyShip/EntityWarmlyShip.cs
index 94f5114..6e78824 100644
--- a/WarmlyShip/WarmlyShip/EntityWarmlyShip.cs
+++ b/WarmlyShip/WarmlyShip/EntityWarmlyShip.cs
@@ -25,41 +25,35 @@ namespace WarmlyShip
///
public Color AdditionalColor { get; private set; }
///
- /// Признак (опция) наличия обвеса
+ /// Признак (опция) наличия труб
///
- public bool BodyKit { get; private set; }
+ public bool Pipes { get; private set; }
///
- /// Признак (опция) наличия антикрыла
+ /// Признак (опция) наличия отсека для топлива
///
- public bool Wing { get; private set; }
+ public bool Section { get; private set; }
///
- /// Признак (опция) наличия гоночной полосы
- ///
- public bool SportLine { get; private set; }
- ///
- /// Шаг перемещения автомобиля
+ /// Шаг перемещения теплохода
///
public double Step => (double)Speed * 100 / Weight;
///
- /// Инициализация полей объекта-класса спортивного автомобиля
+ /// Инициализация полей объекта-класса теплохода
///
/// Скорость
- /// Вес автомобиля
+ /// Вес теплохода
/// Основной цвет
/// Дополнительный цвет
- /// Признак наличия обвеса
- /// Признак наличия антикрыла
- /// Признак наличия гоночной полосы
+ /// Признак наличия труб
+ /// Признак наличия отсека для топлива
public void Init(int speed, double weight, Color bodyColor, Color
- additionalColor, bool bodyKit, bool wing, bool sportLine)
+ additionalColor, bool pipes, bool section)
{
Speed = speed;
Weight = weight;
BodyColor = bodyColor;
AdditionalColor = additionalColor;
- BodyKit = bodyKit;
- Wing = wing;
- SportLine = sportLine;
+ Pipes = pipes;
+ Section = section;
}
}
}
diff --git a/WarmlyShip/WarmlyShip/FormWarmlyShip.cs b/WarmlyShip/WarmlyShip/FormWarmlyShip.cs
index 706e1fa..74a8a85 100644
--- a/WarmlyShip/WarmlyShip/FormWarmlyShip.cs
+++ b/WarmlyShip/WarmlyShip/FormWarmlyShip.cs
@@ -44,10 +44,9 @@ namespace WarmlyShip
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)),
+ Convert.ToBoolean(random.Next(0, 2)),
pictureBoxWarmlyShip.Width, pictureBoxWarmlyShip.Height);
- _drawingWarmlyShip.SetPosition(random.Next(10, 100),
- random.Next(10, 100));
+ _drawingWarmlyShip.SetPosition(random.Next(10, 100), random.Next(10, 100));
Draw();
}
///
@@ -92,12 +91,10 @@ namespace WarmlyShip
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)),
+ Convert.ToBoolean(random.Next(0, 2)),
pictureBoxWarmlyShip.Width, pictureBoxWarmlyShip.Height);
- _drawingWarmlyShip.SetPosition(random.Next(10, 100),
- random.Next(10, 100));
+ _drawingWarmlyShip.SetPosition(random.Next(10, 100), random.Next(10, 100));
Draw();
-
}
private void ButtonMove_Click(object sender, EventArgs e)