diff --git a/.idea/.idea.PIbd-23_Dyakonov_R_R_Tank.dir/.idea/.gitignore b/.idea/.idea.PIbd-23_Dyakonov_R_R_Tank.dir/.idea/.gitignore new file mode 100644 index 0000000..be1e31f --- /dev/null +++ b/.idea/.idea.PIbd-23_Dyakonov_R_R_Tank.dir/.idea/.gitignore @@ -0,0 +1,13 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Rider ignored files +/contentModel.xml +/projectSettingsUpdater.xml +/modules.xml +/.idea.PIbd-23_Dyakonov_R_R_Tank.iml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/.idea.PIbd-23_Dyakonov_R_R_Tank.dir/.idea/indexLayout.xml b/.idea/.idea.PIbd-23_Dyakonov_R_R_Tank.dir/.idea/indexLayout.xml new file mode 100644 index 0000000..7b08163 --- /dev/null +++ b/.idea/.idea.PIbd-23_Dyakonov_R_R_Tank.dir/.idea/indexLayout.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.PIbd-23_Dyakonov_R_R_Tank.dir/.idea/vcs.xml b/.idea/.idea.PIbd-23_Dyakonov_R_R_Tank.dir/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/.idea.PIbd-23_Dyakonov_R_R_Tank.dir/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/.idea.ProjectTank/.idea/.gitignore b/.idea/.idea.ProjectTank/.idea/.gitignore new file mode 100644 index 0000000..846810b --- /dev/null +++ b/.idea/.idea.ProjectTank/.idea/.gitignore @@ -0,0 +1,13 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Rider ignored files +/projectSettingsUpdater.xml +/modules.xml +/contentModel.xml +/.idea.ProjectTank.iml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/.idea.ProjectTank/.idea/.name b/.idea/.idea.ProjectTank/.idea/.name new file mode 100644 index 0000000..2e489c3 --- /dev/null +++ b/.idea/.idea.ProjectTank/.idea/.name @@ -0,0 +1 @@ +ProjectTank \ No newline at end of file diff --git a/.idea/.idea.ProjectTank/.idea/indexLayout.xml b/.idea/.idea.ProjectTank/.idea/indexLayout.xml new file mode 100644 index 0000000..7b08163 --- /dev/null +++ b/.idea/.idea.ProjectTank/.idea/indexLayout.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.ProjectTank/.idea/vcs.xml b/.idea/.idea.ProjectTank/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/.idea.ProjectTank/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/ProjectTank.sln b/ProjectTank.sln new file mode 100644 index 0000000..740583a --- /dev/null +++ b/ProjectTank.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.6.33801.468 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectTank", "ProjectTank\ProjectTank.csproj", "{3813FF33-65D9-4474-8AC9-594C12C365A8}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3813FF33-65D9-4474-8AC9-594C12C365A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3813FF33-65D9-4474-8AC9-594C12C365A8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3813FF33-65D9-4474-8AC9-594C12C365A8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3813FF33-65D9-4474-8AC9-594C12C365A8}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {B481448C-8B20-483C-BA2D-C90D5AACDB69} + EndGlobalSection +EndGlobal diff --git a/ProjectTank/DirectionType.cs b/ProjectTank/DirectionType.cs new file mode 100644 index 0000000..9ccbe42 --- /dev/null +++ b/ProjectTank/DirectionType.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectTank +{ + public enum DirectionType + { + Up = 0, + Down = 1, + Left = 2, + Right = 3, + } +} \ No newline at end of file diff --git a/ProjectTank/DrawingTank.cs b/ProjectTank/DrawingTank.cs new file mode 100644 index 0000000..7cd3162 --- /dev/null +++ b/ProjectTank/DrawingTank.cs @@ -0,0 +1,147 @@ +using System; +using System.Collections.Generic; +using System.Drawing.Drawing2D; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectTank +{ + internal class DrawingTank + { + public Tank? TankEntity { get; private set; } + private int pictureWidth; + private int pictureHeight; + private int startPosX; + private int startPosY; + private readonly int tankWidth = 150; + private readonly int tankHeight = 100; + public bool Init(int speed, double weight, Color bodyColor, Color additionalColor, int width, int height, bool isAntiAircraftGun, bool isTankTower) + { + if (width <= tankWidth || height <= tankHeight) return false; + pictureWidth = width; + pictureHeight = height; + TankEntity = new Tank(); + TankEntity.Init(speed, weight, bodyColor, additionalColor, isAntiAircraftGun, isTankTower); + return true; + } + public void SetPosition(int x, int y) + { + if (TankEntity == null) return; + startPosX = x; + startPosX = y; + + if (x + tankWidth >= pictureWidth || y + tankHeight >= pictureHeight) + { + startPosX = 1; + startPosY = 1; + } + } + public void MoveTransport(DirectionType direction) + { + if (TankEntity == null) return; + + switch (direction) + { + //влево + case DirectionType.Left: + if (startPosX - TankEntity.Step > 0) + { + startPosX -= (int)TankEntity.Step; + } + break; + //вверх + case DirectionType.Up: + if (startPosY - TankEntity.Step > 0) + { + startPosY -= (int)TankEntity.Step; + } + break; + // вправо + case DirectionType.Right: + if (startPosX + TankEntity.Step + tankWidth <= pictureWidth) + { + startPosX += (int)TankEntity.Step; + } + break; + //вниз + case DirectionType.Down: + if (startPosY + TankEntity.Step + tankHeight <= pictureHeight) + { + startPosY += (int)TankEntity.Step; + } + break; + } + } + public void DrawTransport(Graphics g) + { + if (TankEntity == null) return; + + Pen pen = new(TankEntity.BodyColor); + + // границы + g.DrawRectangle(new Pen(Color.Red), startPosX, startPosY, tankWidth, tankHeight); + + // гусеница + GraphicsPath path = new GraphicsPath(); + + int cornerRadius = 20; + + path.AddArc(startPosX, startPosY + 65, cornerRadius, cornerRadius, 180, 90); + path.AddArc(startPosX + tankWidth - cornerRadius, startPosY + 65, cornerRadius, cornerRadius, 270, 90); + path.AddArc(startPosX + tankWidth - cornerRadius, startPosY + tankHeight - cornerRadius, cornerRadius, cornerRadius, 0, 90); + path.AddArc(startPosX, startPosY + tankHeight - cornerRadius, cornerRadius, cornerRadius, 90, 90); + + path.CloseFigure(); + g.DrawPath(pen, path); + + // колеса + g.DrawEllipse(pen, startPosX + 1, startPosY + tankHeight - 5 - 25, 25, 25); + for (int i = 1; i < 5; i++) + { + g.DrawEllipse(pen, startPosX + 30 + (5 * i) + (15 * (i - 1)), startPosY + tankHeight - 5 - 15, 15, 15); + } + g.DrawEllipse(pen, startPosX + tankWidth - 25 - 1, startPosY + tankHeight - 5 - 25, 25, 25); + + if (TankEntity.IsTankMuzzle) + { + // дуло + g.DrawRectangle(pen, startPosX + 15, startPosY + 37, 30, 7); + } + + // башня + SolidBrush brush = new SolidBrush(TankEntity.AdditionalColor); + g.FillRectangle(brush, startPosX + 45, startPosY + 30, 60, 25); + + g.FillRectangle(brush, startPosX + 5, startPosY + 55 + 1, tankWidth - 10, 9); + + if (TankEntity.IsAntiAircraftGun) + { + // зенитное орудие + g.DrawRectangle(pen, startPosX + 65, startPosY + 18, 8, 12); + g.DrawRectangle(pen, startPosX + 65 + 8, startPosY + 16, 8, 14); + + Point[] leftRectanglePoints = + { + new Point(startPosX + 52, startPosY + 5), + new Point(startPosX + 67, startPosY + 18), + new Point(startPosX + 67 + 5, startPosY + 18), + new Point(startPosX + 57, startPosY + 5), + }; + + g.DrawPolygon(pen, leftRectanglePoints); + + Point[] rightRectanglePoints = + { + new Point(startPosX + 59, startPosY), + new Point(startPosX + 74, startPosY + 16), + new Point(startPosX + 74 + 5, startPosY + 16), + new Point(startPosX + 66, startPosY), + }; + + g.DrawPolygon(pen, rightRectanglePoints); + } + } + } +} \ No newline at end of file diff --git a/ProjectTank/FormTank.Designer.cs b/ProjectTank/FormTank.Designer.cs new file mode 100644 index 0000000..48b36b7 --- /dev/null +++ b/ProjectTank/FormTank.Designer.cs @@ -0,0 +1,135 @@ +namespace ProjectTank +{ + partial class FormTank + { + /// + /// 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() + { + pictureBoxTank = new PictureBox(); + createButton = new Button(); + buttonLeft = new Button(); + buttonDown = new Button(); + buttonRight = new Button(); + buttonUp = new Button(); + ((System.ComponentModel.ISupportInitialize)pictureBoxTank).BeginInit(); + SuspendLayout(); + // + // pictureBoxTank + // + pictureBoxTank.Dock = DockStyle.Fill; + pictureBoxTank.Location = new Point(0, 0); + pictureBoxTank.Name = "pictureBoxTank"; + pictureBoxTank.Size = new Size(991, 458); + pictureBoxTank.SizeMode = PictureBoxSizeMode.AutoSize; + pictureBoxTank.TabIndex = 7; + pictureBoxTank.TabStop = false; + // + // createButton + // + createButton.Location = new Point(885, 405); + createButton.Name = "createButton"; + createButton.Size = new Size(94, 41); + createButton.TabIndex = 8; + createButton.Text = "Create"; + createButton.UseVisualStyleBackColor = true; + createButton.Click += buttonCreate_Click; + // + // buttonLeft + // + buttonLeft.BackgroundImage = Properties.Resources.icons8_left_arrow_40; + buttonLeft.BackgroundImageLayout = ImageLayout.Zoom; + buttonLeft.Font = new Font("Segoe UI", 15F, FontStyle.Regular, GraphicsUnit.Point); + buttonLeft.Location = new Point(12, 396); + buttonLeft.Name = "buttonLeft"; + buttonLeft.Size = new Size(50, 50); + buttonLeft.TabIndex = 9; + buttonLeft.UseVisualStyleBackColor = true; + buttonLeft.Click += moveButton_Click; + // + // buttonDown + // + buttonDown.BackgroundImage = Properties.Resources.arrowDown; + buttonDown.BackgroundImageLayout = ImageLayout.Zoom; + buttonDown.Font = new Font("Segoe UI", 10F, FontStyle.Regular, GraphicsUnit.Point); + buttonDown.Location = new Point(68, 396); + buttonDown.Name = "buttonDown"; + buttonDown.Size = new Size(50, 50); + buttonDown.TabIndex = 10; + buttonDown.UseVisualStyleBackColor = true; + buttonDown.Click += moveButton_Click; + // + // buttonRight + // + buttonRight.BackgroundImage = Properties.Resources.icons8_right_arrow_40; + buttonRight.BackgroundImageLayout = ImageLayout.Zoom; + buttonRight.Font = new Font("Segoe UI", 15F, FontStyle.Regular, GraphicsUnit.Point); + buttonRight.Location = new Point(124, 396); + buttonRight.Name = "buttonRight"; + buttonRight.Size = new Size(50, 50); + buttonRight.TabIndex = 11; + buttonRight.UseVisualStyleBackColor = true; + buttonRight.Click += moveButton_Click; + // + // buttonUp + // + buttonUp.BackgroundImage = Properties.Resources.icons8_up_arrow_40; + buttonUp.BackgroundImageLayout = ImageLayout.Zoom; + buttonUp.Font = new Font("Segoe UI", 15F, FontStyle.Regular, GraphicsUnit.Point); + buttonUp.Location = new Point(68, 340); + buttonUp.Name = "buttonUp"; + buttonUp.Size = new Size(50, 50); + buttonUp.TabIndex = 12; + buttonUp.UseVisualStyleBackColor = true; + buttonUp.Click += moveButton_Click; + // + // FormTank + // + AutoScaleDimensions = new SizeF(8F, 20F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(991, 458); + Controls.Add(buttonUp); + Controls.Add(buttonRight); + Controls.Add(buttonDown); + Controls.Add(buttonLeft); + Controls.Add(createButton); + Controls.Add(pictureBoxTank); + Name = "FormTank"; + StartPosition = FormStartPosition.CenterScreen; + Text = "Drawing tank"; + ((System.ComponentModel.ISupportInitialize)pictureBoxTank).EndInit(); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + private PictureBox pictureBoxTank; + private Button createButton; + private Button buttonLeft; + private Button buttonDown; + private Button buttonRight; + private Button buttonUp; + } +} \ No newline at end of file diff --git a/ProjectTank/FormTank.cs b/ProjectTank/FormTank.cs new file mode 100644 index 0000000..0941bac --- /dev/null +++ b/ProjectTank/FormTank.cs @@ -0,0 +1,53 @@ +namespace ProjectTank +{ + public partial class FormTank : Form + { + private DrawingTank? DrawingTank; + + public FormTank() + { + InitializeComponent(); + } + private void buttonCreate_Click(object sender, EventArgs e) + { + Random random = new(); + DrawingTank = new DrawingTank(); + DrawingTank.Init(random.Next(50, 100), random.Next(1700, 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)), pictureBoxTank.Width, pictureBoxTank.Height, true, true); + DrawingTank.SetPosition(random.Next(10, 100), random.Next(10, 100)); + Draw(); + } + + private void Draw() + { + if (DrawingTank == null) return; + Bitmap bmp = new(pictureBoxTank.Width, pictureBoxTank.Height); + Graphics gr = Graphics.FromImage(bmp); + DrawingTank.DrawTransport(gr); + pictureBoxTank.Image = bmp; + } + + private void moveButton_Click(object sender, EventArgs e) + { + if (DrawingTank == null) return; + + string name = ((Button)sender)?.Name ?? string.Empty; + + switch (name) + { + case "buttonUp": + DrawingTank.MoveTransport(DirectionType.Up); + break; + case "buttonDown": + DrawingTank.MoveTransport(DirectionType.Down); + break; + case "buttonLeft": + DrawingTank.MoveTransport(DirectionType.Left); + break; + case "buttonRight": + DrawingTank.MoveTransport(DirectionType.Right); + break; + } + Draw(); + } + } +} \ No newline at end of file diff --git a/ProjectTank/FormTank.resx b/ProjectTank/FormTank.resx new file mode 100644 index 0000000..a395bff --- /dev/null +++ b/ProjectTank/FormTank.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + \ No newline at end of file diff --git a/ProjectTank/Program.cs b/ProjectTank/Program.cs new file mode 100644 index 0000000..61d6fe8 --- /dev/null +++ b/ProjectTank/Program.cs @@ -0,0 +1,17 @@ +namespace ProjectTank +{ + internal static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + // To customize application configuration such as set high DPI settings or default font, + // see https://aka.ms/applicationconfiguration. + ApplicationConfiguration.Initialize(); + Application.Run(new FormTank()); + } + } +} \ No newline at end of file diff --git a/ProjectTank/ProjectTank.csproj b/ProjectTank/ProjectTank.csproj new file mode 100644 index 0000000..b57c89e --- /dev/null +++ b/ProjectTank/ProjectTank.csproj @@ -0,0 +1,11 @@ + + + + WinExe + net6.0-windows + enable + true + enable + + + \ No newline at end of file diff --git a/ProjectTank/Properties/Resources.Designer.cs b/ProjectTank/Properties/Resources.Designer.cs new file mode 100644 index 0000000..7376d81 --- /dev/null +++ b/ProjectTank/Properties/Resources.Designer.cs @@ -0,0 +1,103 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +namespace ProjectTank.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("ProjectTank.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 icons8_left_arrow_40 { + get { + object obj = ResourceManager.GetObject("icons8-left-arrow-40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap icons8_right_arrow_40 { + get { + object obj = ResourceManager.GetObject("icons8-right-arrow-40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Поиск локализованного ресурса типа System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap icons8_up_arrow_40 { + get { + object obj = ResourceManager.GetObject("icons8-up-arrow-40", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/ProjectTank/Properties/Resources.resx b/ProjectTank/Properties/Resources.resx new file mode 100644 index 0000000..bc09a78 --- /dev/null +++ b/ProjectTank/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\icons8-down-arrow-50.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-left-arrow-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-right-arrow-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\icons8-up-arrow-40.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/ProjectTank/Resources/icons8-down-arrow-30.png b/ProjectTank/Resources/icons8-down-arrow-30.png new file mode 100644 index 0000000..b1f8834 Binary files /dev/null and b/ProjectTank/Resources/icons8-down-arrow-30.png differ diff --git a/ProjectTank/Resources/icons8-down-arrow-40.png b/ProjectTank/Resources/icons8-down-arrow-40.png new file mode 100644 index 0000000..68fe89c Binary files /dev/null and b/ProjectTank/Resources/icons8-down-arrow-40.png differ diff --git a/ProjectTank/Resources/icons8-down-arrow-50.png b/ProjectTank/Resources/icons8-down-arrow-50.png new file mode 100644 index 0000000..1586fd0 Binary files /dev/null and b/ProjectTank/Resources/icons8-down-arrow-50.png differ diff --git a/ProjectTank/Resources/icons8-left-arrow-40.png b/ProjectTank/Resources/icons8-left-arrow-40.png new file mode 100644 index 0000000..0607eec Binary files /dev/null and b/ProjectTank/Resources/icons8-left-arrow-40.png differ diff --git a/ProjectTank/Resources/icons8-right-arrow-40.png b/ProjectTank/Resources/icons8-right-arrow-40.png new file mode 100644 index 0000000..9f1317b Binary files /dev/null and b/ProjectTank/Resources/icons8-right-arrow-40.png differ diff --git a/ProjectTank/Resources/icons8-up-40.png b/ProjectTank/Resources/icons8-up-40.png new file mode 100644 index 0000000..62b58ad Binary files /dev/null and b/ProjectTank/Resources/icons8-up-40.png differ diff --git a/ProjectTank/Resources/icons8-up-arrow-40.png b/ProjectTank/Resources/icons8-up-arrow-40.png new file mode 100644 index 0000000..5f834de Binary files /dev/null and b/ProjectTank/Resources/icons8-up-arrow-40.png differ diff --git a/ProjectTank/Resources/pngwing.com.png b/ProjectTank/Resources/pngwing.com.png new file mode 100644 index 0000000..1460ea0 Binary files /dev/null and b/ProjectTank/Resources/pngwing.com.png differ diff --git a/ProjectTank/TankEntity.cs b/ProjectTank/TankEntity.cs new file mode 100644 index 0000000..77b6863 --- /dev/null +++ b/ProjectTank/TankEntity.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ProjectTank +{ + internal class Tank + { + 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 IsAntiAircraftGun { get; private set; } + public bool IsTankMuzzle { get; private set; } + public double Step => (double)Speed * 100 / Weight; + public void Init(int speed, double weight, Color bodyColor, Color additionalColor, bool isAntiAircraftGun, bool isTankTower) + { + Speed = speed; + Weight = weight; + BodyColor = bodyColor; + AdditionalColor = additionalColor; + IsAntiAircraftGun = isAntiAircraftGun; + IsTankMuzzle = isTankTower; + } + } +}