From c13d5da9a95359740b51d30885cd150dd3b3b06a Mon Sep 17 00:00:00 2001 From: Aleksandr4350 Date: Wed, 7 Feb 2024 13:32:58 +0400 Subject: [PATCH 1/5] =?UTF-8?q?1=20=D0=BB=D0=B0=D0=B1=D0=B0=20=D0=BD=D0=B0?= =?UTF-8?q?=D1=87=D0=B0=D0=BB=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ojectSportCar.sln => ProjectAiroplane.sln} | 0 .../ProjectSportCar/DirectionType.cs | 23 +++ .../ProjectSportCar/DrawningAiroplane.cs | 149 ++++++++++++++++++ .../ProjectSportCar/EntityAiroplane.cs | 62 ++++++++ ProjectSportCar/ProjectSportCar/Form1.cs | 10 -- ....Designer.cs => FormAiroplane.Designer.cs} | 21 +-- .../ProjectSportCar/FormAiroplane.cs | 25 +++ .../{Form1.resx => FormAiroplane.resx} | 0 8 files changed, 270 insertions(+), 20 deletions(-) rename ProjectSportCar/{ProjectSportCar.sln => ProjectAiroplane.sln} (100%) create mode 100644 ProjectSportCar/ProjectSportCar/DirectionType.cs create mode 100644 ProjectSportCar/ProjectSportCar/DrawningAiroplane.cs create mode 100644 ProjectSportCar/ProjectSportCar/EntityAiroplane.cs delete mode 100644 ProjectSportCar/ProjectSportCar/Form1.cs rename ProjectSportCar/ProjectSportCar/{Form1.Designer.cs => FormAiroplane.Designer.cs} (64%) create mode 100644 ProjectSportCar/ProjectSportCar/FormAiroplane.cs rename ProjectSportCar/ProjectSportCar/{Form1.resx => FormAiroplane.resx} (100%) diff --git a/ProjectSportCar/ProjectSportCar.sln b/ProjectSportCar/ProjectAiroplane.sln similarity index 100% rename from ProjectSportCar/ProjectSportCar.sln rename to ProjectSportCar/ProjectAiroplane.sln diff --git a/ProjectSportCar/ProjectSportCar/DirectionType.cs b/ProjectSportCar/ProjectSportCar/DirectionType.cs new file mode 100644 index 0000000..e6c5d7d --- /dev/null +++ b/ProjectSportCar/ProjectSportCar/DirectionType.cs @@ -0,0 +1,23 @@ +namespace ProjectAiroplane; +/// +/// Направление перемещения +/// +public enum DirectionType +{ + /// + /// Вверх + /// + Up = 1, + /// + /// Вниз + /// + Down = 2, + /// + /// Влево + /// + Left = 3, + /// + /// Вправо + /// + Right = 4 +} diff --git a/ProjectSportCar/ProjectSportCar/DrawningAiroplane.cs b/ProjectSportCar/ProjectSportCar/DrawningAiroplane.cs new file mode 100644 index 0000000..3008fa9 --- /dev/null +++ b/ProjectSportCar/ProjectSportCar/DrawningAiroplane.cs @@ -0,0 +1,149 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectAiroplane; +/// +/// Класс отвечающий за прорисовку и перемещение объкта-сущности +/// +public class DrawningAiroplane +{ + /// + /// Класс-сущность + /// + public EntityAiroplane? EntityAiroplane { get; private set; } + /// + /// Ширина окна + /// + private int? _pictureWidth; + /// + /// Высота окна + /// + private int? _pictureHeight; + /// + /// Левая координата прорисовки автомобиля + /// + private int? _startPosX; + /// + /// Верхняя кооридната прорисовки автомобиля + /// + private int? _startPosY; + /// + /// Ширина прорисовки автомобиля + /// + private readonly int _drawningCarWidth = 110; + /// + /// Высота прорисовки автомобиля + /// + private readonly int _drawningCarHeight = 60; + + + /// + /// Инициализация свойств + /// + /// Скорость + /// Вес + /// Основной цвет + /// Дополнительный цвет + /// Признак наличия обвеса + /// Признак наличия антикрыла + /// Признак наличия гоночной полосы + public void Init(int speed, double weight, Color bodyColor, Color + additionalColor, bool bodyKit, bool wing, bool sportLine) + { + EntityAiroplane = new EntityAiroplane(); + EntityAiroplane.Init(speed, weight, bodyColor, additionalColor, + bodyKit, wing, sportLine); + _pictureWidth = null; + _pictureHeight = null; + _startPosX = null; + _startPosY = null; + } + + /// + /// Установка границ поля + /// + /// Ширина поля + /// Высота поля + /// true - границы заданы, false - проверка не пройдена, нельзя разместить объект в этих размерах +public bool SetPictureSize(int width, int height) + { + // TODO проверка, что объект "влезает" в размеры поля + // если влезает, сохраняем границы и корректируем позицию объекта,если она была уже установлена + _pictureWidth = width; + _pictureHeight = height; + return true; + } + /// + /// Установка позиции + /// + /// Координата X + /// Координата Y + public void SetPosition(int x, int y) + { + if (!_pictureHeight.HasValue || !_pictureWidth.HasValue) + { + return; + } + // TODO если при установке объекта в эти координаты, он будет"выходить" за границы формы + // то надо изменить координаты, чтобы он оставался в этих границах + _startPosX = x; + _startPosY = y; + } + + /// + /// Изменение направления перемещения + /// + /// Направление + /// true - перемещене выполнено, false - перемещение невозможно +public bool MoveTransport(DirectionType direction) + { + if (EntityAiroplane == null || !_startPosX.HasValue || + !_startPosY.HasValue) + { + return false; + } + switch (direction) + { + //влево + case DirectionType.Left: + if (_startPosX.Value - EntityAiroplane.Step > 0) + { + _startPosX -= (int)EntityAiroplane.Step; + } + return true; + //вверх + case DirectionType.Up: + if (_startPosY.Value - EntityAiroplane.Step > 0) + { + _startPosY -= (int)EntityAiroplane.Step; + } + return true; + // вправо + case DirectionType.Right: + //TODO прописать логику сдвига в право + return true; + //вниз + case DirectionType.Down: + //TODO прописать логику сдвига в вниз + return true; + default: + return false; + } + } + /// + /// Прорисовка объекта + /// + /// + public void DrawTransport(Graphics g) + { + if (EntityAiroplane == null || !_startPosX.HasValue || + !_startPosY.HasValue) + { + return; + } + } +} + diff --git a/ProjectSportCar/ProjectSportCar/EntityAiroplane.cs b/ProjectSportCar/ProjectSportCar/EntityAiroplane.cs new file mode 100644 index 0000000..240cb34 --- /dev/null +++ b/ProjectSportCar/ProjectSportCar/EntityAiroplane.cs @@ -0,0 +1,62 @@ +namespace ProjectAiroplane; + +public class EntityAiroplane +{ + /// + /// Скорость + /// + 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 Wing { get; private set; } + /// + /// Признак (опция) наличия гоночной полосы + /// + public bool SportLine { get; private set; } + /// + /// Шаг перемещения автомобиля + /// + public double Step => Speed * 100 / Weight; + /// + /// + /// + /// + /// + /// + /// + /// + /// + /// + public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool bodyKit, bool wing, bool sportLine) + { + Speed = speed; + Weight = weight; + BodyColor = bodyColor; + AdditionalColor = additionalColor; + BodyKit = bodyKit; + Wing = wing; + SportLine = sportLine; + } + + + + } + + diff --git a/ProjectSportCar/ProjectSportCar/Form1.cs b/ProjectSportCar/ProjectSportCar/Form1.cs deleted file mode 100644 index e71d17a..0000000 --- a/ProjectSportCar/ProjectSportCar/Form1.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace ProjectSportCar -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - } -} \ No newline at end of file diff --git a/ProjectSportCar/ProjectSportCar/Form1.Designer.cs b/ProjectSportCar/ProjectSportCar/FormAiroplane.Designer.cs similarity index 64% rename from ProjectSportCar/ProjectSportCar/Form1.Designer.cs rename to ProjectSportCar/ProjectSportCar/FormAiroplane.Designer.cs index 933784a..682cc0d 100644 --- a/ProjectSportCar/ProjectSportCar/Form1.Designer.cs +++ b/ProjectSportCar/ProjectSportCar/FormAiroplane.Designer.cs @@ -1,14 +1,14 @@ -namespace ProjectSportCar +namespace ProjectAiroplane { - partial class Form1 + partial class FormAiroplane { /// - /// Required designer variable. + /// Required designer variable. /// private System.ComponentModel.IContainer components = null; /// - /// Clean up any resources being used. + /// Clean up any resources being used. /// /// true if managed resources should be disposed; otherwise, false. protected override void Dispose(bool disposing) @@ -23,20 +23,21 @@ #region Windows Form Designer generated code /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. /// private void InitializeComponent() { SuspendLayout(); // - // Form1 + // FormAiroplane // AutoScaleDimensions = new SizeF(8F, 20F); AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(371, 222); - Name = "Form1"; - Text = "Form1"; + ClientSize = new Size(800, 450); + Name = "FormAiroplane"; + Text = "Самолет с радаром"; + Load += FormAiroplane_Load; ResumeLayout(false); } diff --git a/ProjectSportCar/ProjectSportCar/FormAiroplane.cs b/ProjectSportCar/ProjectSportCar/FormAiroplane.cs new file mode 100644 index 0000000..4defbb1 --- /dev/null +++ b/ProjectSportCar/ProjectSportCar/FormAiroplane.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace ProjectAiroplane +{ + public partial class FormAiroplane : Form + { + public FormAiroplane() + { + InitializeComponent(); + } + + private void FormAiroplane_Load(object sender, EventArgs e) + { + + } + } +} diff --git a/ProjectSportCar/ProjectSportCar/Form1.resx b/ProjectSportCar/ProjectSportCar/FormAiroplane.resx similarity index 100% rename from ProjectSportCar/ProjectSportCar/Form1.resx rename to ProjectSportCar/ProjectSportCar/FormAiroplane.resx -- 2.25.1 From 73667d4f8a3e4a4b6551cce71e787bd49653bc96 Mon Sep 17 00:00:00 2001 From: Aleksandr4350 Date: Tue, 20 Feb 2024 22:09:24 +0400 Subject: [PATCH 2/5] =?UTF-8?q?=D0=94=D0=BE=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB?= =?UTF-8?q?=20=D0=9B=D0=B0=D0=B1=D0=BE=D1=80=D0=B0=D1=82=D0=BE=D1=80=D0=BD?= =?UTF-8?q?=D1=83=D1=8E=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Project1/Project1.sln | 31 ++++ Project1/Project1/Project1.vcxproj | 135 ++++++++++++++++++ Project1/Project1/Project1.vcxproj.filters | 22 +++ Project1/Project1/Source.c | 40 ++++++ .../ProjectSportCar/DrawningAiroplane.cs | 114 ++++++++++++--- .../ProjectSportCar/FormAiroplane.Designer.cs | 90 +++++++++++- .../ProjectSportCar/FormAiroplane.cs | 84 +++++++++-- ProjectSportCar/ProjectSportCar/Program.cs | 4 +- .../ProjectSportCar/ProjectAiroplane.csproj | 15 ++ .../Properties/Resources.Designer.cs | 103 +++++++++++++ .../ProjectSportCar/Properties/Resources.resx | 133 +++++++++++++++++ .../ProjectSportCar/Resources/вверх.png | Bin 0 -> 6330 bytes .../ProjectSportCar/Resources/влево.png | Bin 0 -> 6156 bytes .../ProjectSportCar/Resources/вниз.png | Bin 0 -> 6280 bytes .../Resources/вправо.png | Bin 0 -> 5961 bytes 15 files changed, 737 insertions(+), 34 deletions(-) create mode 100644 Project1/Project1.sln create mode 100644 Project1/Project1/Project1.vcxproj create mode 100644 Project1/Project1/Project1.vcxproj.filters create mode 100644 Project1/Project1/Source.c create mode 100644 ProjectSportCar/ProjectSportCar/Properties/Resources.Designer.cs create mode 100644 ProjectSportCar/ProjectSportCar/Properties/Resources.resx create mode 100644 ProjectSportCar/ProjectSportCar/Resources/вверх.png create mode 100644 ProjectSportCar/ProjectSportCar/Resources/влево.png create mode 100644 ProjectSportCar/ProjectSportCar/Resources/вниз.png create mode 100644 ProjectSportCar/ProjectSportCar/Resources/вправо.png diff --git a/Project1/Project1.sln b/Project1/Project1.sln new file mode 100644 index 0000000..67d96e2 --- /dev/null +++ b/Project1/Project1.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.7.34031.279 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Project1", "Project1\Project1.vcxproj", "{6D58D521-A318-426A-A43B-BFD1172229EC}" +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 + {6D58D521-A318-426A-A43B-BFD1172229EC}.Debug|x64.ActiveCfg = Debug|x64 + {6D58D521-A318-426A-A43B-BFD1172229EC}.Debug|x64.Build.0 = Debug|x64 + {6D58D521-A318-426A-A43B-BFD1172229EC}.Debug|x86.ActiveCfg = Debug|Win32 + {6D58D521-A318-426A-A43B-BFD1172229EC}.Debug|x86.Build.0 = Debug|Win32 + {6D58D521-A318-426A-A43B-BFD1172229EC}.Release|x64.ActiveCfg = Release|x64 + {6D58D521-A318-426A-A43B-BFD1172229EC}.Release|x64.Build.0 = Release|x64 + {6D58D521-A318-426A-A43B-BFD1172229EC}.Release|x86.ActiveCfg = Release|Win32 + {6D58D521-A318-426A-A43B-BFD1172229EC}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {DC69A38F-D679-4830-8ED2-2E491FBC451D} + EndGlobalSection +EndGlobal diff --git a/Project1/Project1/Project1.vcxproj b/Project1/Project1/Project1.vcxproj new file mode 100644 index 0000000..d84ace4 --- /dev/null +++ b/Project1/Project1/Project1.vcxproj @@ -0,0 +1,135 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 17.0 + Win32Proj + {6d58d521-a318-426a-a43b-bfd1172229ec} + Project1 + 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/Project1/Project1/Project1.vcxproj.filters b/Project1/Project1/Project1.vcxproj.filters new file mode 100644 index 0000000..9327ccf --- /dev/null +++ b/Project1/Project1/Project1.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 diff --git a/Project1/Project1/Source.c b/Project1/Project1/Source.c new file mode 100644 index 0000000..a79e83c --- /dev/null +++ b/Project1/Project1/Source.c @@ -0,0 +1,40 @@ +#define _CRT_SECURE_NO_WARNINGS +#include + +int Palindrom(int n) { + int x = 0; + int y = n; + int z; + + while (n > 0) { + z = n % 10; + x = x * 10 + z; + n /= 10; + } + + if (n == x) { + return 1; // + } + else { + return 0; // + } +} + +int main() { + SetConsoleCP(1251); + SetConsoleOutputCP(1251); + int n; + + printf(" : "); + scanf("%d", &n); + + if (Palindrom(n) == 1) { + printf("%d \n", n); + } + else { + printf("%d \n", n); + } + + return 0; +} + diff --git a/ProjectSportCar/ProjectSportCar/DrawningAiroplane.cs b/ProjectSportCar/ProjectSportCar/DrawningAiroplane.cs index 3008fa9..78ab71b 100644 --- a/ProjectSportCar/ProjectSportCar/DrawningAiroplane.cs +++ b/ProjectSportCar/ProjectSportCar/DrawningAiroplane.cs @@ -6,7 +6,7 @@ using System.Threading.Tasks; namespace ProjectAiroplane; /// -/// Класс отвечающий за прорисовку и перемещение объкта-сущности +/// Класс отвечающий за прорисовку и перемещение объекта-сущности /// public class DrawningAiroplane { @@ -23,21 +23,21 @@ public class DrawningAiroplane /// private int? _pictureHeight; /// - /// Левая координата прорисовки автомобиля + /// Левая координата прорисовки /// private int? _startPosX; /// - /// Верхняя кооридната прорисовки автомобиля + /// Верхняя кооридната прорисовки /// private int? _startPosY; /// - /// Ширина прорисовки автомобиля + /// Ширина прорисовки /// - private readonly int _drawningCarWidth = 110; + private readonly int _drawningAiroplaneWidth = 180; /// - /// Высота прорисовки автомобиля + /// Высота прорисовки /// - private readonly int _drawningCarHeight = 60; + private readonly int _drawningaAiroplaneHeight = 110; /// @@ -72,9 +72,15 @@ public bool SetPictureSize(int width, int height) { // TODO проверка, что объект "влезает" в размеры поля // если влезает, сохраняем границы и корректируем позицию объекта,если она была уже установлена - _pictureWidth = width; - _pictureHeight = height; - return true; + + if (width >= _drawningAiroplaneWidth && height >= _drawningaAiroplaneHeight) + { + _pictureWidth = width; + _pictureHeight = height; + return true; + } + return false; + } /// /// Установка позиции @@ -88,8 +94,27 @@ public bool SetPictureSize(int width, int height) return; } // TODO если при установке объекта в эти координаты, он будет"выходить" за границы формы - // то надо изменить координаты, чтобы он оставался в этих границах - _startPosX = x; + // то надо изменить координаты, чтобы он оставался в этих границах + + if (x < 0) + { + x = 0; + } + else if (x + _drawningAiroplaneWidth > _pictureWidth.Value) + { + x = _pictureWidth.Value - _drawningAiroplaneWidth; + } + if (y < 0) + { + y = 0; + } + else if (y + _drawningaAiroplaneHeight > _pictureHeight.Value) + { + y = _pictureHeight.Value - _drawningaAiroplaneHeight; + } + + + _startPosX = x; _startPosY = y; } @@ -123,11 +148,17 @@ public bool MoveTransport(DirectionType direction) return true; // вправо case DirectionType.Right: - //TODO прописать логику сдвига в право + if (_startPosX.Value + _drawningAiroplaneWidth + EntityAiroplane.Step < _pictureWidth) + { + _startPosX += (int)EntityAiroplane.Step; + } return true; //вниз case DirectionType.Down: - //TODO прописать логику сдвига в вниз + if (_startPosY.Value + _drawningaAiroplaneHeight + EntityAiroplane.Step < _pictureHeight) + { + _startPosY += (int)EntityAiroplane.Step; + } return true; default: return false; @@ -139,11 +170,62 @@ public bool MoveTransport(DirectionType direction) /// public void DrawTransport(Graphics g) { - if (EntityAiroplane == null || !_startPosX.HasValue || - !_startPosY.HasValue) + if (EntityAiroplane == null || !_startPosX.HasValue || !_startPosY.HasValue) { return; } + + Pen pen = new(Color.Black); + Brush additionalBrush = new + SolidBrush(EntityAiroplane.AdditionalColor); + + + ////// + //крыло верхнее самолета + g.DrawLine(pen, _startPosX.Value + 30, _startPosY.Value + 30, _startPosX.Value + 30, _startPosY.Value + 60); + g.DrawLine(pen, _startPosX.Value + 30, _startPosY.Value + 30, _startPosX.Value + 70, _startPosY.Value + 60); + g.DrawLine(pen, _startPosX.Value + 30, _startPosY.Value + 60, _startPosX.Value + 70, _startPosY.Value + 60); + + //задняя часть самолета полукруг + g.DrawArc(pen, _startPosX.Value + 20, _startPosY.Value + 60, 30,30,90,180); + + //топливный бак + g.DrawEllipse(pen, _startPosX.Value + 25, _startPosY.Value + 55, 40,10); + Brush brbr = new SolidBrush(Color.Brown); + g.FillEllipse(brbr, _startPosX.Value + 25, _startPosY.Value + 55, 40,10); + //низ самолета + g.DrawLine(pen, _startPosX.Value + 31, _startPosY.Value + 90, _startPosX.Value + 150, _startPosY.Value + 90); + + + // треуголник спереди + g.DrawLine(pen, _startPosX.Value + 150, _startPosY.Value + 93, _startPosX.Value + 150, _startPosY.Value + 57); + g.DrawLine(pen, _startPosX.Value + 150, _startPosY.Value + 57, _startPosX.Value + 175, _startPosY.Value + 75); + g.DrawLine(pen, _startPosX.Value + 150, _startPosY.Value + 93, _startPosX.Value + 175, _startPosY.Value + 75); + g.DrawLine(pen, _startPosX.Value + 150, _startPosY.Value + 75, _startPosX.Value + 175, _startPosY.Value + 75); + + //вверх от тругольника до треугольника + g.DrawLine(pen, _startPosX.Value + 70, _startPosY.Value + 60, _startPosX.Value + 150, _startPosY.Value + 60); + + + //крыло + g.DrawEllipse(pen, _startPosX.Value + 65, _startPosY.Value + 70, 70, 10); + Brush brbl = new SolidBrush(Color.Black); + g.FillEllipse(brbl, _startPosX.Value + 65, _startPosY.Value + 70, 70, 10); + + //шасси + g.DrawLine(pen, _startPosX.Value + 50, _startPosY.Value + 90, _startPosX.Value + 50, _startPosY.Value + 100); + g.DrawLine(pen, _startPosX.Value + 135, _startPosY.Value + 90, _startPosX.Value + 135, _startPosY.Value + 100); + g.DrawLine(pen, _startPosX.Value + 40, _startPosY.Value + 100, _startPosX.Value + 60, _startPosY.Value + 100); + + g.DrawEllipse(pen, _startPosX.Value + 30, _startPosY.Value + 95, 10, 10); + g.DrawEllipse(pen, _startPosX.Value + 60, _startPosY.Value + 95, 10, 10); + g.DrawEllipse(pen, _startPosX.Value + 130, _startPosY.Value + 95, 10, 10); + + + //g.DrawRectangle(pen, _startPosX.Value + 90, _startPosY.Value +10, 20, 40); + //g.DrawRectangle(pen, _startPosX.Value + 90, _startPosY.Value,15, 15); + + // } } diff --git a/ProjectSportCar/ProjectSportCar/FormAiroplane.Designer.cs b/ProjectSportCar/ProjectSportCar/FormAiroplane.Designer.cs index 682cc0d..4b81724 100644 --- a/ProjectSportCar/ProjectSportCar/FormAiroplane.Designer.cs +++ b/ProjectSportCar/ProjectSportCar/FormAiroplane.Designer.cs @@ -28,19 +28,107 @@ /// private void InitializeComponent() { + pictureBoxAiroplane = new PictureBox(); + buttonCreate = new Button(); + buttonLeft = new Button(); + buttonUp = new Button(); + buttonRight = new Button(); + buttonDown = new Button(); + ((System.ComponentModel.ISupportInitialize)pictureBoxAiroplane).BeginInit(); SuspendLayout(); // + // pictureBoxAiroplane + // + pictureBoxAiroplane.Dock = DockStyle.Fill; + pictureBoxAiroplane.Location = new Point(0, 0); + pictureBoxAiroplane.Name = "pictureBoxAiroplane"; + pictureBoxAiroplane.Size = new Size(800, 450); + pictureBoxAiroplane.TabIndex = 0; + pictureBoxAiroplane.TabStop = false; + // + // buttonCreate + // + buttonCreate.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + buttonCreate.Location = new Point(12, 409); + buttonCreate.Name = "buttonCreate"; + buttonCreate.Size = new Size(94, 29); + buttonCreate.TabIndex = 1; + buttonCreate.Text = "Создать"; + buttonCreate.UseVisualStyleBackColor = true; + buttonCreate.Click += buttonCreate_Click; + // + // buttonLeft + // + buttonLeft.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonLeft.BackgroundImage = Properties.Resources.влево; + buttonLeft.BackgroundImageLayout = ImageLayout.Stretch; + buttonLeft.Location = new Point(668, 406); + buttonLeft.Name = "buttonLeft"; + buttonLeft.Size = new Size(35, 35); + buttonLeft.TabIndex = 2; + buttonLeft.UseVisualStyleBackColor = true; + buttonLeft.Click += buttonMove_Click; + // + // buttonUp + // + buttonUp.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonUp.BackgroundImage = Properties.Resources.вверх; + buttonUp.BackgroundImageLayout = ImageLayout.Stretch; + buttonUp.Location = new Point(709, 365); + buttonUp.Name = "buttonUp"; + buttonUp.Size = new Size(35, 35); + buttonUp.TabIndex = 3; + buttonUp.UseVisualStyleBackColor = true; + buttonUp.Click += buttonMove_Click; + // + // buttonRight + // + buttonRight.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonRight.BackgroundImage = Properties.Resources.вправо; + buttonRight.BackgroundImageLayout = ImageLayout.Stretch; + buttonRight.Location = new Point(750, 406); + buttonRight.Name = "buttonRight"; + buttonRight.Size = new Size(35, 35); + buttonRight.TabIndex = 4; + buttonRight.UseVisualStyleBackColor = true; + buttonRight.Click += buttonMove_Click; + // + // buttonDown + // + buttonDown.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; + buttonDown.BackgroundImage = Properties.Resources.вниз; + buttonDown.BackgroundImageLayout = ImageLayout.Stretch; + buttonDown.Location = new Point(709, 406); + buttonDown.Name = "buttonDown"; + buttonDown.Size = new Size(35, 35); + buttonDown.TabIndex = 5; + buttonDown.UseVisualStyleBackColor = true; + buttonDown.Click += buttonMove_Click; + // // FormAiroplane // AutoScaleDimensions = new SizeF(8F, 20F); AutoScaleMode = AutoScaleMode.Font; ClientSize = new Size(800, 450); + Controls.Add(buttonDown); + Controls.Add(buttonRight); + Controls.Add(buttonUp); + Controls.Add(buttonLeft); + Controls.Add(buttonCreate); + Controls.Add(pictureBoxAiroplane); Name = "FormAiroplane"; Text = "Самолет с радаром"; - Load += FormAiroplane_Load; + ((System.ComponentModel.ISupportInitialize)pictureBoxAiroplane).EndInit(); ResumeLayout(false); } #endregion + + private PictureBox pictureBoxAiroplane; + private Button buttonCreate; + private Button buttonLeft; + private Button buttonUp; + private Button buttonRight; + private Button buttonDown; } } \ No newline at end of file diff --git a/ProjectSportCar/ProjectSportCar/FormAiroplane.cs b/ProjectSportCar/ProjectSportCar/FormAiroplane.cs index 4defbb1..20afd35 100644 --- a/ProjectSportCar/ProjectSportCar/FormAiroplane.cs +++ b/ProjectSportCar/ProjectSportCar/FormAiroplane.cs @@ -1,25 +1,79 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; +namespace ProjectAiroplane; -namespace ProjectAiroplane +public partial class FormAiroplane : Form { - public partial class FormAiroplane : Form + private DrawningAiroplane? _drawningAiroplane; + + + + public FormAiroplane() { - public FormAiroplane() + InitializeComponent(); + } + + private void Draw() + { + if (_drawningAiroplane == null) { - InitializeComponent(); + return; } + Bitmap bmp = new(pictureBoxAiroplane.Width, pictureBoxAiroplane.Height); + Graphics gr = Graphics.FromImage(bmp); + _drawningAiroplane.DrawTransport(gr); + pictureBoxAiroplane.Image = bmp; + } - private void FormAiroplane_Load(object sender, EventArgs e) + + private void buttonCreate_Click(object sender, EventArgs e) + { + Random random = new(); + _drawningAiroplane = new DrawningAiroplane(); + + _drawningAiroplane.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))); + _drawningAiroplane.SetPictureSize(pictureBoxAiroplane.Width, pictureBoxAiroplane.Height); + _drawningAiroplane.SetPosition(random.Next(10, 100), random.Next(10, 100)); + + Draw(); + } + + /// + /// Перемещение объекта по форме (нажатие кнопок навигации) + /// + /// + /// + + private void buttonMove_Click(object sender, EventArgs e) + { + if (_drawningAiroplane == null) { - + return; + } + string name = ((Button)sender)?.Name ?? string.Empty; + bool result = false; + switch (name) + { + case "buttonUp": + result = _drawningAiroplane.MoveTransport(DirectionType.Up); + break; + case "buttonDown": + result = _drawningAiroplane.MoveTransport(DirectionType.Down); + break; + case "buttonLeft": + result = _drawningAiroplane.MoveTransport(DirectionType.Left); + break; + case "buttonRight": + result = _drawningAiroplane.MoveTransport(DirectionType.Right); + break; + } + if (result) + { + Draw(); } } + } + diff --git a/ProjectSportCar/ProjectSportCar/Program.cs b/ProjectSportCar/ProjectSportCar/Program.cs index 8103843..5ebfb6a 100644 --- a/ProjectSportCar/ProjectSportCar/Program.cs +++ b/ProjectSportCar/ProjectSportCar/Program.cs @@ -1,4 +1,4 @@ -namespace ProjectSportCar +namespace ProjectAiroplane { internal static class Program { @@ -11,7 +11,7 @@ namespace ProjectSportCar // 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 FormAiroplane()); } } } \ No newline at end of file diff --git a/ProjectSportCar/ProjectSportCar/ProjectAiroplane.csproj b/ProjectSportCar/ProjectSportCar/ProjectAiroplane.csproj index e1a0735..244387d 100644 --- a/ProjectSportCar/ProjectSportCar/ProjectAiroplane.csproj +++ b/ProjectSportCar/ProjectSportCar/ProjectAiroplane.csproj @@ -8,4 +8,19 @@ enable + + + True + True + Resources.resx + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + \ No newline at end of file diff --git a/ProjectSportCar/ProjectSportCar/Properties/Resources.Designer.cs b/ProjectSportCar/ProjectSportCar/Properties/Resources.Designer.cs new file mode 100644 index 0000000..20229c0 --- /dev/null +++ b/ProjectSportCar/ProjectSportCar/Properties/Resources.Designer.cs @@ -0,0 +1,103 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +namespace ProjectAiroplane.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("ProjectAiroplane.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 вверх { + get { + object obj = ResourceManager.GetObject("вверх", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap влево { + get { + object obj = ResourceManager.GetObject("влево", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap вниз { + get { + object obj = ResourceManager.GetObject("вниз", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap вправо { + get { + object obj = ResourceManager.GetObject("вправо", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/ProjectSportCar/ProjectSportCar/Properties/Resources.resx b/ProjectSportCar/ProjectSportCar/Properties/Resources.resx new file mode 100644 index 0000000..2bc00c7 --- /dev/null +++ b/ProjectSportCar/ProjectSportCar/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\вверх.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\влево.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\вниз.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\вправо.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/ProjectSportCar/ProjectSportCar/Resources/вверх.png b/ProjectSportCar/ProjectSportCar/Resources/вверх.png new file mode 100644 index 0000000000000000000000000000000000000000..416221c5e6e67bb318d4079fa6fa4ce5f26161a8 GIT binary patch literal 6330 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 literal 0 HcmV?d00001 diff --git a/ProjectSportCar/ProjectSportCar/Resources/влево.png b/ProjectSportCar/ProjectSportCar/Resources/влево.png new file mode 100644 index 0000000000000000000000000000000000000000..502332825446460a3d014483c439feabbbc41a63 GIT binary patch literal 6156 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 aP670!$*PTn8uS+d2f@_Fqzr#5=6?XUR0od$ literal 0 HcmV?d00001 diff --git a/ProjectSportCar/ProjectSportCar/Resources/вправо.png b/ProjectSportCar/ProjectSportCar/Resources/вправо.png new file mode 100644 index 0000000000000000000000000000000000000000..41ebe322e872d6a959d8264705f2a6688b032b67 GIT binary patch literal 5961 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 B_rw4I literal 0 HcmV?d00001 -- 2.25.1 From e26698bfede76cdc9b8a6ba621e2243b6d8341f3 Mon Sep 17 00:00:00 2001 From: Aleksandr4350 Date: Wed, 21 Feb 2024 13:35:42 +0400 Subject: [PATCH 3/5] =?UTF-8?q?=D0=BD=D0=B5=D1=87=D0=B5=D1=82=D0=BA=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D0=B8=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BD?= =?UTF-8?q?=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProjectSportCar/DrawningAiroplane.cs | 56 ++++++++++++++----- .../ProjectSportCar/EntityAiroplane.cs | 18 +++--- 2 files changed, 51 insertions(+), 23 deletions(-) diff --git a/ProjectSportCar/ProjectSportCar/DrawningAiroplane.cs b/ProjectSportCar/ProjectSportCar/DrawningAiroplane.cs index 78ab71b..72ec0c1 100644 --- a/ProjectSportCar/ProjectSportCar/DrawningAiroplane.cs +++ b/ProjectSportCar/ProjectSportCar/DrawningAiroplane.cs @@ -39,7 +39,6 @@ public class DrawningAiroplane /// private readonly int _drawningaAiroplaneHeight = 110; - /// /// Инициализация свойств /// @@ -47,15 +46,14 @@ public class DrawningAiroplane /// Вес /// Основной цвет /// Дополнительный цвет - /// Признак наличия обвеса - /// Признак наличия антикрыла + /// Признак наличия бака + /// Признак наличия радара /// Признак наличия гоночной полосы public void Init(int speed, double weight, Color bodyColor, Color - additionalColor, bool bodyKit, bool wing, bool sportLine) + additionalColor, bool toplivbak, bool radar, bool sportLine) { EntityAiroplane = new EntityAiroplane(); - EntityAiroplane.Init(speed, weight, bodyColor, additionalColor, - bodyKit, wing, sportLine); + EntityAiroplane.Init(speed, weight, bodyColor, additionalColor, toplivbak, radar, sportLine); _pictureWidth = null; _pictureHeight = null; _startPosX = null; @@ -77,6 +75,20 @@ public bool SetPictureSize(int width, int height) { _pictureWidth = width; _pictureHeight = height; + + if (_startPosX.HasValue && _startPosY.HasValue) + { + if (_startPosX + _drawningAiroplaneWidth <= _pictureWidth) + { + _startPosX = 0; + } + + if (_startPosY + _drawningaAiroplaneHeight <= _pictureWidth) + { + _startPosY = 0; + } + + } return true; } return false; @@ -100,20 +112,22 @@ public bool SetPictureSize(int width, int height) { x = 0; } + else if (x + _drawningAiroplaneWidth > _pictureWidth.Value) { x = _pictureWidth.Value - _drawningAiroplaneWidth; } + if (y < 0) { y = 0; } + else if (y + _drawningaAiroplaneHeight > _pictureHeight.Value) { y = _pictureHeight.Value - _drawningaAiroplaneHeight; } - _startPosX = x; _startPosY = y; } @@ -189,7 +203,7 @@ public bool MoveTransport(DirectionType direction) //задняя часть самолета полукруг g.DrawArc(pen, _startPosX.Value + 20, _startPosY.Value + 60, 30,30,90,180); - //топливный бак + //сзади g.DrawEllipse(pen, _startPosX.Value + 25, _startPosY.Value + 55, 40,10); Brush brbr = new SolidBrush(Color.Brown); g.FillEllipse(brbr, _startPosX.Value + 25, _startPosY.Value + 55, 40,10); @@ -206,9 +220,8 @@ public bool MoveTransport(DirectionType direction) //вверх от тругольника до треугольника g.DrawLine(pen, _startPosX.Value + 70, _startPosY.Value + 60, _startPosX.Value + 150, _startPosY.Value + 60); - //крыло - g.DrawEllipse(pen, _startPosX.Value + 65, _startPosY.Value + 70, 70, 10); + g.DrawEllipse(pen, _startPosX.Value + 65, _startPosY.Value + 70, 70, 10); Brush brbl = new SolidBrush(Color.Black); g.FillEllipse(brbl, _startPosX.Value + 65, _startPosY.Value + 70, 70, 10); @@ -221,11 +234,26 @@ public bool MoveTransport(DirectionType direction) g.DrawEllipse(pen, _startPosX.Value + 60, _startPosY.Value + 95, 10, 10); g.DrawEllipse(pen, _startPosX.Value + 130, _startPosY.Value + 95, 10, 10); + //топливный бак + if (EntityAiroplane.Toplivbak) + { + g.FillRectangle(additionalBrush, _startPosX.Value + 80,_startPosY.Value + 45, 30, 15); + //g.FillRectangle(additionalBrush, _startPosX.Value + 35,_startPosY.Value + 23, 35, 15); + //g.FillRectangle(additionalBrush, _startPosX.Value + 10,_startPosY.Value + 23, 20, 15); + } + + //Радар + if (EntityAiroplane.Radar) + { + Brush brGreen = new SolidBrush(Color.LightGreen); + g.FillEllipse(brGreen, _startPosX.Value + 150, _startPosY.Value + 75, 10, 10); + g.DrawEllipse(pen, _startPosX.Value + 150, _startPosY.Value + 75, 10, 10); + } - //g.DrawRectangle(pen, _startPosX.Value + 90, _startPosY.Value +10, 20, 40); - //g.DrawRectangle(pen, _startPosX.Value + 90, _startPosY.Value,15, 15); - - // + //спортивная линия + if (EntityAiroplane.SportLine) { + g.FillRectangle(additionalBrush, _startPosX.Value + 138, _startPosY.Value + 60, 10, 30); + } } } diff --git a/ProjectSportCar/ProjectSportCar/EntityAiroplane.cs b/ProjectSportCar/ProjectSportCar/EntityAiroplane.cs index 240cb34..ab1c7ef 100644 --- a/ProjectSportCar/ProjectSportCar/EntityAiroplane.cs +++ b/ProjectSportCar/ProjectSportCar/EntityAiroplane.cs @@ -19,13 +19,13 @@ public class EntityAiroplane /// public Color AdditionalColor { get; private set; } /// - /// Признак (опция) наличия обвеса + /// Признак (опция) наличия бака /// - public bool BodyKit { get; private set; } + public bool Toplivbak { get; private set; } /// - /// Признак (опция) наличия антикрыла + /// Признак (опция) наличия радара // - public bool Wing { get; private set; } + public bool Radar { get; private set; } /// /// Признак (опция) наличия гоночной полосы /// @@ -41,17 +41,17 @@ public class EntityAiroplane /// /// /// - /// - /// + /// + /// /// - public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool bodyKit, bool wing, bool sportLine) + public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool toplivbak, bool radar, bool sportLine) { Speed = speed; Weight = weight; BodyColor = bodyColor; AdditionalColor = additionalColor; - BodyKit = bodyKit; - Wing = wing; + Toplivbak = toplivbak; + Radar = radar; SportLine = sportLine; } -- 2.25.1 From 5c64922ef45b6adc6e5e34226932cd475e158222 Mon Sep 17 00:00:00 2001 From: Aleksandr4350 Date: Wed, 21 Feb 2024 13:37:52 +0400 Subject: [PATCH 4/5] =?UTF-8?q?=D0=AD=D0=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ProjectSportCar/ProjectSportCar/EntityAiroplane.cs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/ProjectSportCar/ProjectSportCar/EntityAiroplane.cs b/ProjectSportCar/ProjectSportCar/EntityAiroplane.cs index ab1c7ef..d05727d 100644 --- a/ProjectSportCar/ProjectSportCar/EntityAiroplane.cs +++ b/ProjectSportCar/ProjectSportCar/EntityAiroplane.cs @@ -54,9 +54,6 @@ public class EntityAiroplane Radar = radar; SportLine = sportLine; } - - - - } +} -- 2.25.1 From 874e2f1c633bf22b6be31c44189b32ae605ac5b0 Mon Sep 17 00:00:00 2001 From: Aleksandr4350 Date: Sun, 25 Feb 2024 00:00:17 +0400 Subject: [PATCH 5/5] over --- .../ProjectSportCar/DrawningAiroplane.cs | 77 ++++++++----------- .../ProjectSportCar/EntityAiroplane.cs | 14 +--- .../ProjectSportCar/FormAiroplane.cs | 3 +- 3 files changed, 39 insertions(+), 55 deletions(-) diff --git a/ProjectSportCar/ProjectSportCar/DrawningAiroplane.cs b/ProjectSportCar/ProjectSportCar/DrawningAiroplane.cs index 72ec0c1..1e63da0 100644 --- a/ProjectSportCar/ProjectSportCar/DrawningAiroplane.cs +++ b/ProjectSportCar/ProjectSportCar/DrawningAiroplane.cs @@ -33,11 +33,11 @@ public class DrawningAiroplane /// /// Ширина прорисовки /// - private readonly int _drawningAiroplaneWidth = 180; + private readonly int _drawningAiroplaneWidth = 160; /// /// Высота прорисовки /// - private readonly int _drawningaAiroplaneHeight = 110; + private readonly int _drawningaAiroplaneHeight = 80; /// /// Инициализация свойств @@ -48,12 +48,12 @@ public class DrawningAiroplane /// Дополнительный цвет /// Признак наличия бака /// Признак наличия радара - /// Признак наличия гоночной полосы + public void Init(int speed, double weight, Color bodyColor, Color - additionalColor, bool toplivbak, bool radar, bool sportLine) + additionalColor, bool toplivbak, bool radar) { EntityAiroplane = new EntityAiroplane(); - EntityAiroplane.Init(speed, weight, bodyColor, additionalColor, toplivbak, radar, sportLine); + EntityAiroplane.Init(speed, weight, bodyColor, additionalColor, toplivbak, radar); _pictureWidth = null; _pictureHeight = null; _startPosX = null; @@ -78,21 +78,20 @@ public bool SetPictureSize(int width, int height) if (_startPosX.HasValue && _startPosY.HasValue) { - if (_startPosX + _drawningAiroplaneWidth <= _pictureWidth) + if (_startPosX + _drawningAiroplaneWidth > _pictureWidth) { - _startPosX = 0; + _startPosX = _pictureWidth - _drawningAiroplaneWidth; } - if (_startPosY + _drawningaAiroplaneHeight <= _pictureWidth) + if (_startPosY + _drawningaAiroplaneHeight > _pictureWidth) { - _startPosY = 0; + _startPosY = _pictureHeight - _drawningaAiroplaneHeight; } } return true; } return false; - } /// /// Установка позиции @@ -194,65 +193,57 @@ public bool MoveTransport(DirectionType direction) SolidBrush(EntityAiroplane.AdditionalColor); + ////// //крыло верхнее самолета - g.DrawLine(pen, _startPosX.Value + 30, _startPosY.Value + 30, _startPosX.Value + 30, _startPosY.Value + 60); - g.DrawLine(pen, _startPosX.Value + 30, _startPosY.Value + 30, _startPosX.Value + 70, _startPosY.Value + 60); - g.DrawLine(pen, _startPosX.Value + 30, _startPosY.Value + 60, _startPosX.Value + 70, _startPosY.Value + 60); + g.DrawLine(pen, _startPosX.Value + 15, _startPosY.Value + 5, _startPosX.Value + 15, _startPosY.Value + 5); + g.DrawLine(pen, _startPosX.Value + 15, _startPosY.Value + 5, _startPosX.Value + 55, _startPosY.Value + 35); + g.DrawLine(pen, _startPosX.Value + 15, _startPosY.Value + 35, _startPosX.Value + 15, _startPosY.Value + 5); //задняя часть самолета полукруг - g.DrawArc(pen, _startPosX.Value + 20, _startPosY.Value + 60, 30,30,90,180); + g.DrawArc(pen, _startPosX.Value + 5, _startPosY.Value + 35, 30,30,90,180); //сзади - g.DrawEllipse(pen, _startPosX.Value + 25, _startPosY.Value + 55, 40,10); + g.DrawEllipse(pen, _startPosX.Value + 10, _startPosY.Value + 30, 40,10); Brush brbr = new SolidBrush(Color.Brown); - g.FillEllipse(brbr, _startPosX.Value + 25, _startPosY.Value + 55, 40,10); + g.FillEllipse(brbr, _startPosX.Value + 10, _startPosY.Value + 30, 40,10); //низ самолета - g.DrawLine(pen, _startPosX.Value + 31, _startPosY.Value + 90, _startPosX.Value + 150, _startPosY.Value + 90); - + g.DrawLine(pen, _startPosX.Value + 16, _startPosY.Value + 65, _startPosX.Value + 135, _startPosY.Value + 65); // треуголник спереди - g.DrawLine(pen, _startPosX.Value + 150, _startPosY.Value + 93, _startPosX.Value + 150, _startPosY.Value + 57); - g.DrawLine(pen, _startPosX.Value + 150, _startPosY.Value + 57, _startPosX.Value + 175, _startPosY.Value + 75); - g.DrawLine(pen, _startPosX.Value + 150, _startPosY.Value + 93, _startPosX.Value + 175, _startPosY.Value + 75); - g.DrawLine(pen, _startPosX.Value + 150, _startPosY.Value + 75, _startPosX.Value + 175, _startPosY.Value + 75); + g.DrawLine(pen, _startPosX.Value + 135, _startPosY.Value + 68, _startPosX.Value + 135, _startPosY.Value + 32); + g.DrawLine(pen, _startPosX.Value + 135, _startPosY.Value + 32, _startPosX.Value + 160, _startPosY.Value + 50); + g.DrawLine(pen, _startPosX.Value + 135, _startPosY.Value + 68, _startPosX.Value + 160, _startPosY.Value + 50); + g.DrawLine(pen, _startPosX.Value + 135, _startPosY.Value + 50, _startPosX.Value + 160, _startPosY.Value + 50); //вверх от тругольника до треугольника - g.DrawLine(pen, _startPosX.Value + 70, _startPosY.Value + 60, _startPosX.Value + 150, _startPosY.Value + 60); + g.DrawLine(pen, _startPosX.Value + 50, _startPosY.Value + 35, _startPosX.Value + 135, _startPosY.Value + 35); //крыло - g.DrawEllipse(pen, _startPosX.Value + 65, _startPosY.Value + 70, 70, 10); + g.DrawEllipse(pen, _startPosX.Value + 50, _startPosY.Value + 45, 70, 10); Brush brbl = new SolidBrush(Color.Black); - g.FillEllipse(brbl, _startPosX.Value + 65, _startPosY.Value + 70, 70, 10); + g.FillEllipse(brbl, _startPosX.Value + 50, _startPosY.Value + 45, 70, 10); //шасси - g.DrawLine(pen, _startPosX.Value + 50, _startPosY.Value + 90, _startPosX.Value + 50, _startPosY.Value + 100); - g.DrawLine(pen, _startPosX.Value + 135, _startPosY.Value + 90, _startPosX.Value + 135, _startPosY.Value + 100); - g.DrawLine(pen, _startPosX.Value + 40, _startPosY.Value + 100, _startPosX.Value + 60, _startPosY.Value + 100); - - g.DrawEllipse(pen, _startPosX.Value + 30, _startPosY.Value + 95, 10, 10); - g.DrawEllipse(pen, _startPosX.Value + 60, _startPosY.Value + 95, 10, 10); - g.DrawEllipse(pen, _startPosX.Value + 130, _startPosY.Value + 95, 10, 10); + g.DrawLine(pen, _startPosX.Value + 35, _startPosY.Value + 65, _startPosX.Value + 35, _startPosY.Value + 75); + g.DrawLine(pen, _startPosX.Value + 120, _startPosY.Value + 65, _startPosX.Value + 120, _startPosY.Value + 75); + g.DrawLine(pen, _startPosX.Value + 25, _startPosY.Value + 75, _startPosX.Value + 45, _startPosY.Value + 75); + g.DrawEllipse(pen, _startPosX.Value + 15, _startPosY.Value + 70, 10, 10); + g.DrawEllipse(pen, _startPosX.Value + 45, _startPosY.Value + 70, 10, 10); + g.DrawEllipse(pen, _startPosX.Value + 115, _startPosY.Value + 70, 10, 10); //топливный бак if (EntityAiroplane.Toplivbak) { - g.FillRectangle(additionalBrush, _startPosX.Value + 80,_startPosY.Value + 45, 30, 15); - //g.FillRectangle(additionalBrush, _startPosX.Value + 35,_startPosY.Value + 23, 35, 15); - //g.FillRectangle(additionalBrush, _startPosX.Value + 10,_startPosY.Value + 23, 20, 15); + g.FillRectangle(additionalBrush, _startPosX.Value + 65,_startPosY.Value + 20, 30, 15); } - + //Радар if (EntityAiroplane.Radar) { Brush brGreen = new SolidBrush(Color.LightGreen); - g.FillEllipse(brGreen, _startPosX.Value + 150, _startPosY.Value + 75, 10, 10); - g.DrawEllipse(pen, _startPosX.Value + 150, _startPosY.Value + 75, 10, 10); - } - - //спортивная линия - if (EntityAiroplane.SportLine) { - g.FillRectangle(additionalBrush, _startPosX.Value + 138, _startPosY.Value + 60, 10, 30); + g.FillEllipse(brGreen, _startPosX.Value + 135, _startPosY.Value + 50, 10, 10); + g.DrawEllipse(pen, _startPosX.Value + 135, _startPosY.Value + 50, 10, 10); } } } diff --git a/ProjectSportCar/ProjectSportCar/EntityAiroplane.cs b/ProjectSportCar/ProjectSportCar/EntityAiroplane.cs index d05727d..37ea974 100644 --- a/ProjectSportCar/ProjectSportCar/EntityAiroplane.cs +++ b/ProjectSportCar/ProjectSportCar/EntityAiroplane.cs @@ -1,11 +1,10 @@ namespace ProjectAiroplane; - public class EntityAiroplane { /// /// Скорость /// - public int Speed { get; private set; } + public int Speed { get; private set; } /// /// Вес /// @@ -27,11 +26,7 @@ public class EntityAiroplane // public bool Radar { get; private set; } /// - /// Признак (опция) наличия гоночной полосы - /// - public bool SportLine { get; private set; } - /// - /// Шаг перемещения автомобиля + /// Шаг перемещения самолета /// public double Step => Speed * 100 / Weight; /// @@ -43,8 +38,8 @@ public class EntityAiroplane /// /// /// - /// - public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool toplivbak, bool radar, bool sportLine) + + public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool toplivbak, bool radar) { Speed = speed; Weight = weight; @@ -52,7 +47,6 @@ public class EntityAiroplane AdditionalColor = additionalColor; Toplivbak = toplivbak; Radar = radar; - SportLine = sportLine; } } diff --git a/ProjectSportCar/ProjectSportCar/FormAiroplane.cs b/ProjectSportCar/ProjectSportCar/FormAiroplane.cs index 20afd35..9414b78 100644 --- a/ProjectSportCar/ProjectSportCar/FormAiroplane.cs +++ b/ProjectSportCar/ProjectSportCar/FormAiroplane.cs @@ -32,8 +32,7 @@ public partial class FormAiroplane : Form _drawningAiroplane.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))); + Convert.ToBoolean(random.Next(0, 2)), Convert.ToBoolean(random.Next(0, 2))); _drawningAiroplane.SetPictureSize(pictureBoxAiroplane.Width, pictureBoxAiroplane.Height); _drawningAiroplane.SetPosition(random.Next(10, 100), random.Next(10, 100)); -- 2.25.1