From 0c81d916fc41c2b83b5445d028e0e3335c7b66e8 Mon Sep 17 00:00:00 2001 From: "safiulova.k" Date: Tue, 26 Sep 2023 13:55:59 +0400 Subject: [PATCH] =?UTF-8?q?=D1=81=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=D0=B0=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- base/Catamaran/Catamaran/Catamaran.cs | 4 +- base/Catamaran/Catamaran/DrawningCatamaran.cs | 132 ++++++++++-------- base/Catamaran/Catamaran/EntityCatamaran.cs | 28 ++-- 3 files changed, 86 insertions(+), 78 deletions(-) diff --git a/base/Catamaran/Catamaran/Catamaran.cs b/base/Catamaran/Catamaran/Catamaran.cs index 26c5709..578fcda 100644 --- a/base/Catamaran/Catamaran/Catamaran.cs +++ b/base/Catamaran/Catamaran/Catamaran.cs @@ -8,7 +8,7 @@ namespace Catamaran private DrawningCatamaran? _drawningCatamaran; /// - /// Μεςξδ οπξπθρξβκθ μΰψθνϋ + /// Μεςξδ οπξπθρξβκθ κΰςΰμΰπΰνΰ /// private void Draw() { @@ -70,7 +70,7 @@ namespace Catamaran 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)), pictureBoxCatamaran.Width, pictureBoxCatamaran.Height); + Convert.ToBoolean(random.Next(0, 2)), pictureBoxCatamaran.Width, pictureBoxCatamaran.Height); _drawningCatamaran.SetPosition(random.Next(10, 100), random.Next(10, 100)); Draw(); diff --git a/base/Catamaran/Catamaran/DrawningCatamaran.cs b/base/Catamaran/Catamaran/DrawningCatamaran.cs index b362c1a..937b70f 100644 --- a/base/Catamaran/Catamaran/DrawningCatamaran.cs +++ b/base/Catamaran/Catamaran/DrawningCatamaran.cs @@ -24,21 +24,21 @@ namespace Catamaran /// private int _pictureHeight; /// - /// ЛСвая ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° прорисовки автомобиля + /// ЛСвая ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° прорисовки ΠΊΠ°Ρ‚Π°ΠΌΠ°Ρ€Π°Π½Π° /// private int _startPosX; /// - /// ВСрхняя ΠΊΠΎΠΎΡ€ΠΈΠ΄Π½Π°Ρ‚Π° прорисовки автомобиля + /// ВСрхняя ΠΊΠΎΠΎΡ€ΠΈΠ΄Π½Π°Ρ‚Π° прорисовки ΠΊΠ°Ρ‚Π°ΠΌΠ°Ρ€Π°Π½Π° /// private int _startPosY; /// - /// Π¨ΠΈΡ€ΠΈΠ½Π° прорисовки автомобиля + /// Π¨ΠΈΡ€ΠΈΠ½Π° прорисовки ΠΊΠ°Ρ‚Π°ΠΌΠ°Ρ€Π°Π½Π° /// - private readonly int _carWidth = 110; + private readonly int _CatamaranWidth = 190; /// - /// Высота прорисовки автомобиля + /// Высота прорисовки ΠΊΠ°Ρ‚Π°ΠΌΠ°Ρ€Π°Π½Π° /// - private readonly int _carHeight = 60; + private readonly int _CatamaranHeight = 120; /// /// Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ свойств /// @@ -46,20 +46,28 @@ namespace Catamaran /// ВСс /// Π¦Π²Π΅Ρ‚ корпуса /// Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚ - /// ΠŸΡ€ΠΈΠ·Π½Π°ΠΊ наличия паруса + /// ΠŸΡ€ΠΈΠ·Π½Π°ΠΊ наличия паруса + /// ΠŸΡ€ΠΈΠ·Π½Π°ΠΊ наличия ΠΏΠΎΠΏΠ»Π°Π²ΠΊΠΎΠ² /// Π¨ΠΈΡ€ΠΈΠ½Π° ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ /// Высота ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ /// true - ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ создан, false - ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π΅ ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Π°, нСльзя ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π² этих Ρ€Π°Π·ΠΌΠ΅Ρ€Π°Ρ… public bool Init(int speed, double weight, Color bodyColor, Color - additionalColor, bool bodySail, bool wing, bool sportLine, int width, int height) + additionalColor, bool sail, bool floatDetail, int width, int height) { - // TODO: ΠŸΡ€ΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ - _pictureWidth = width; - _pictureHeight = height; - EntityCatamaran = new EntityCatamaran(); - EntityCatamaran.Init(speed, weight, bodyColor, additionalColor, - bodySail, wing, sportLine); - return true; + if (width >= _pictureWidth && height >= _pictureHeight) + { + _pictureWidth = width; + _pictureHeight = height; + + EntityCatamaran = new EntityCatamaran(); + EntityCatamaran.Init(speed, weight, bodyColor, additionalColor, sail, floatDetail); + return true; + } + else + { + return false; // Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌ false, Ссли Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ„ΠΎΡ€ΠΌΡ‹ нСдостаточны + } + } /// /// Установка ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ @@ -68,9 +76,11 @@ namespace Catamaran /// ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° Y public void SetPosition(int x, int y) { - // TODO: ИзмСнСниС x, y - _startPosX = x; - _startPosY = y; + if (x >= 0 && x + _CatamaranWidth <= _pictureWidth && y >= 0 && y + _CatamaranHeight <= _pictureHeight) + { + _startPosX = x; + _startPosY = y; + } } /// /// ИзмСнСниС направлСния пСрСмСщСния @@ -100,15 +110,14 @@ namespace Catamaran break; // Π²ΠΏΡ€Π°Π²ΠΎ case Direction.Right: - if (_startPosX + _carWidth + EntityCatamaran.Step < _pictureWidth ) + if (_startPosX + _CatamaranWidth + EntityCatamaran.Step < _pictureWidth ) { _startPosX += (int)EntityCatamaran.Step; } - break; //Π²Π½ΠΈΠ· case Direction.Down: - if (_startPosY + _carHeight + EntityCatamaran.Step < _pictureHeight) + if (_startPosY + _CatamaranHeight + EntityCatamaran.Step < _pictureHeight) { _startPosY += (int)EntityCatamaran.Step; } @@ -125,63 +134,68 @@ namespace Catamaran { return; } - Pen pen = new(Color.Black, 4); + Pen pen = new(Color.Black, 3); Brush additionalBrush = new SolidBrush(EntityCatamaran.AdditionalColor); Brush bodyBrush = new SolidBrush(EntityCatamaran.BodyColor); //ΠΏΠΎΠΏΠ»Π°Π²ΠΊΠΈ - Point[] floatDetail1 = new Point[] - { - new Point(_startPosX + 10, _startPosY + 40), - new Point(_startPosX + 170, _startPosY + 40), - new Point(_startPosX + 200, _startPosY + 55), - new Point(_startPosX + 170, _startPosY + 70), - new Point(_startPosX + 10, _startPosY + 70), - }; - Point[] floatDetail2 = new Point[] - { - new Point(_startPosX + 10, _startPosY + 90), - new Point(_startPosX + 170, _startPosY + 90), - new Point(_startPosX + 200, _startPosY + 105), - new Point(_startPosX + 170, _startPosY + 120), - new Point(_startPosX + 10, _startPosY + 120), - }; + if (EntityCatamaran.Float) + { - - g.FillPolygon(additionalBrush, floatDetail1); - g.FillPolygon(additionalBrush, floatDetail2); - - //Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΊΠ°Ρ‚Π°ΠΌΠ°Ρ€Π°Π½Π° + Point[] floatDetail1 = new Point[] + { + new Point(_startPosX, _startPosY + 40), + new Point(_startPosX + 170, _startPosY + 40), + new Point(_startPosX + 190, _startPosY + 55), + new Point(_startPosX + 170, _startPosY + 70), + new Point(_startPosX, _startPosY + 70), + }; + Point[] floatDetail2 = new Point[] + { + new Point(_startPosX, _startPosY + 90), + new Point(_startPosX + 170, _startPosY + 90), + new Point(_startPosX + 190, _startPosY + 105), + new Point(_startPosX + 170, _startPosY + 120), + new Point(_startPosX, _startPosY + 120), + }; + g.FillPolygon(additionalBrush, floatDetail1); + g.FillPolygon(additionalBrush, floatDetail2); + g.DrawPolygon(pen, floatDetail1); + g.DrawPolygon(pen, floatDetail2); + } + //основаниС ΠΊΠ°Ρ‚Π°ΠΌΠ°Ρ€Π°Π½Π° Point[] hull = new Point[] - { + { new Point(_startPosX + 20, _startPosY + 50), new Point(_startPosX + 130, _startPosY + 50), new Point(_startPosX + 170, _startPosY + 80), new Point(_startPosX + 130, _startPosY + 110), new Point(_startPosX + 20, _startPosY + 110), - }; - g.DrawPolygon(pen, hull); - g.FillPolygon(bodyBrush, hull); + }; + g.FillPolygon(bodyBrush, hull); + g.DrawPolygon(pen, hull); SolidBrush brushBrown = new SolidBrush(Color.Brown); g.FillEllipse(brushBrown, _startPosX + 30, _startPosY + 60, 100, 40); //парус - Point[] sail = new Point[] - { - new Point(_startPosX + 30, _startPosY + 80), - new Point(_startPosX + 70, _startPosY+10), - new Point(_startPosX + 145, _startPosY + 80), - - }; - g.DrawPolygon(pen, sail); - SolidBrush brushBlue = new SolidBrush(Color.LightBlue); - g.FillPolygon(brushBlue, sail); - - g.DrawRectangle(pen, _startPosX + 70, _startPosY, 4, 85); + if (EntityCatamaran.Sail) + { + Point[] sail = new Point[] + { + new Point(_startPosX + 30, _startPosY + 80), + new Point(_startPosX + 70, _startPosY+10), + new Point(_startPosX + 145, _startPosY + 80), + }; + g.DrawPolygon(pen, sail); + g.FillPolygon(additionalBrush, sail); + g.DrawPolygon(pen, sail); + g.DrawRectangle(pen, _startPosX + 70, _startPosY, 3, 85); + } } } } + diff --git a/base/Catamaran/Catamaran/EntityCatamaran.cs b/base/Catamaran/Catamaran/EntityCatamaran.cs index 3763951..8b02403 100644 --- a/base/Catamaran/Catamaran/EntityCatamaran.cs +++ b/base/Catamaran/Catamaran/EntityCatamaran.cs @@ -25,41 +25,35 @@ namespace Catamaran /// public Color AdditionalColor { get; private set; } /// - /// ΠŸΡ€ΠΈΠ·Π½Π°ΠΊ (опция) наличия обвСса + /// ΠŸΡ€ΠΈΠ·Π½Π°ΠΊ (опция) наличия паруса /// - public bool BodyKit { get; private set; } + public bool Sail { get; private set; } /// - /// ΠŸΡ€ΠΈΠ·Π½Π°ΠΊ (опция) наличия Π°Π½Ρ‚ΠΈΠΊΡ€Ρ‹Π»Π° + /// ΠŸΡ€ΠΈΠ·Π½Π°ΠΊ (опция) наличия ΠΏΠΎΠΏΠ»Π°Π²ΠΊΠΎΠ² /// - public bool Wing { get; private set; } + public bool Float { 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 sail, bool floatDetail) { Speed = speed; Weight = weight; BodyColor = bodyColor; AdditionalColor = additionalColor; - BodyKit = bodyKit; - Wing = wing; - SportLine = sportLine; + Sail = sail; + Float = floatDetail; } } }