diff --git a/AirBomber/AirBomber/FormAirBomber.Designer.cs b/AirBomber/AirBomber/FormAirBomber.Designer.cs
index a8ba700..fa78fa9 100644
--- a/AirBomber/AirBomber/FormAirBomber.Designer.cs
+++ b/AirBomber/AirBomber/FormAirBomber.Designer.cs
@@ -36,7 +36,8 @@
pictureBoxAirBomber = new PictureBox();
buttonCreateAirPlane = new Button();
comboBoxStrategy = new ComboBox();
- buttonStep = new Button();
+ buttonStrategyStep = new Button();
+ buttonSelectPlane = new Button();
((System.ComponentModel.ISupportInitialize)pictureBoxAirBomber).BeginInit();
SuspendLayout();
//
@@ -129,23 +130,34 @@
comboBoxStrategy.Size = new Size(182, 33);
comboBoxStrategy.TabIndex = 7;
//
- // buttonStep
+ // buttonStrategyStep
//
- buttonStep.Anchor = AnchorStyles.Top | AnchorStyles.Right;
- buttonStep.Location = new Point(660, 70);
- buttonStep.Name = "buttonStep";
- buttonStep.Size = new Size(112, 34);
- buttonStep.TabIndex = 8;
- buttonStep.Text = "Шаг";
- buttonStep.UseVisualStyleBackColor = true;
- buttonStep.Click += buttonStep_Click;
+ buttonStrategyStep.Anchor = AnchorStyles.Top | AnchorStyles.Right;
+ buttonStrategyStep.Location = new Point(660, 70);
+ buttonStrategyStep.Name = "buttonStrategyStep";
+ buttonStrategyStep.Size = new Size(112, 34);
+ buttonStrategyStep.TabIndex = 8;
+ buttonStrategyStep.Text = "Шаг";
+ buttonStrategyStep.UseVisualStyleBackColor = true;
+ buttonStrategyStep.Click += buttonStrategyStep_Click;
+ //
+ // buttonSelectPlane
+ //
+ buttonSelectPlane.Location = new Point(660, 161);
+ buttonSelectPlane.Name = "buttonSelectPlane";
+ buttonSelectPlane.Size = new Size(112, 63);
+ buttonSelectPlane.TabIndex = 9;
+ buttonSelectPlane.Text = "Выбрать самолет";
+ buttonSelectPlane.UseVisualStyleBackColor = true;
+ buttonSelectPlane.Click += buttonSelectPlane_Click;
//
// FormAirBomber
//
AutoScaleDimensions = new SizeF(10F, 25F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(800, 450);
- Controls.Add(buttonStep);
+ Controls.Add(buttonSelectPlane);
+ Controls.Add(buttonStrategyStep);
Controls.Add(comboBoxStrategy);
Controls.Add(buttonCreateAirPlane);
Controls.Add(buttonDown);
@@ -170,6 +182,7 @@
private PictureBox pictureBoxAirBomber;
private Button buttonCreateAirPlane;
private ComboBox comboBoxStrategy;
- private Button buttonStep;
+ private Button buttonStrategyStep;
+ private Button buttonSelectPlane;
}
}
\ No newline at end of file
diff --git a/AirBomber/AirBomber/FormAirBomber.cs b/AirBomber/AirBomber/FormAirBomber.cs
index 6922714..abf877f 100644
--- a/AirBomber/AirBomber/FormAirBomber.cs
+++ b/AirBomber/AirBomber/FormAirBomber.cs
@@ -1,12 +1,15 @@
-namespace AirBomber
+namespace AirBomber
{
public partial class FormAirBomber : Form
{
private DrawningAirPlane? _drawningAirPlane;
- private AbstractStrategy? _abstractStrategy;
+ private AbstractStrategy? _strategy;
+ public DrawningAirPlane? SelectedPlane { get; private set; }
public FormAirBomber()
{
InitializeComponent();
+ _strategy = null;
+ SelectedPlane = null;
}
private void Draw()
{
@@ -22,21 +25,37 @@ namespace AirBomber
private void buttonCreateAirBomber_Click(object sender, EventArgs e)
{
Random random = new();
- _drawningAirPlane = new DrawningAirBomber(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)),
- pictureBoxAirBomber.Width, pictureBoxAirBomber.Height, random.Next(1, 4) * 2, random.Next(0, 4));
+ Color color = Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256));
+ ColorDialog colorDialog = new ColorDialog();
+ //TODO выбор основного цвета DONE
+ if (colorDialog.ShowDialog() == DialogResult.OK)
+ {
+ color = colorDialog.Color;
+ }
+
+ Color dopColor = Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256));
+ //TODO выбор дополнительного цвета DONE
+ if (colorDialog.ShowDialog() == DialogResult.OK)
+ {
+ dopColor = colorDialog.Color;
+ }
+
+ _drawningAirPlane = new DrawningAirBomber(random.Next(100, 300), random.Next(1000, 3000), color, dopColor,
+ Convert.ToBoolean(random.Next(0, 2)), Convert.ToBoolean(random.Next(0, 2)), pictureBoxAirBomber.Width, pictureBoxAirBomber.Height);
_drawningAirPlane.SetPosition(random.Next(10, 100), random.Next(10, 100));
Draw();
-
}
private void buttonCreateAirPlane_Click(object sender, EventArgs e)
{
Random random = new();
- _drawningAirPlane = new DrawningAirPlane(random.Next(100, 300), random.Next(1000, 3000),
- Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256)),
- pictureBoxAirBomber.Width, pictureBoxAirBomber.Height, random.Next(1, 4) * 2, random.Next(0, 4));
+ Color color = Color.FromArgb(random.Next(0, 256), random.Next(0, 256), random.Next(0, 256));
+ ColorDialog dialog = new();
+ if (dialog.ShowDialog() == DialogResult.OK)
+ {
+ color = dialog.Color;
+ }
+ _drawningAirPlane = new DrawningAirPlane(random.Next(100, 300), random.Next(1000, 3000), color, pictureBoxAirBomber.Width, pictureBoxAirBomber.Height);
_drawningAirPlane.SetPosition(random.Next(10, 100), random.Next(10, 100));
Draw();
@@ -65,7 +84,7 @@ namespace AirBomber
}
Draw();
}
- private void buttonStep_Click(object sender, EventArgs e)
+ private void buttonStrategyStep_Click(object sender, EventArgs e)
{
if (_drawningAirPlane == null)
{
@@ -73,32 +92,37 @@ namespace AirBomber
}
if (comboBoxStrategy.Enabled)
{
- _abstractStrategy = comboBoxStrategy.SelectedIndex
+ _strategy = comboBoxStrategy.SelectedIndex
switch
{
0 => new MoveToCenter(),
1 => new MoveToBorder(),
_ => null,
};
- if (_abstractStrategy == null)
+ if (_strategy == null)
{
return;
}
- _abstractStrategy.SetData(new DrawningObjectAirPlane(_drawningAirPlane), pictureBoxAirBomber.Width,
- pictureBoxAirBomber.Height);
+ _strategy.SetData(new DrawningObjectAirPlane(_drawningAirPlane), pictureBoxAirBomber.Width, pictureBoxAirBomber.Height);
comboBoxStrategy.Enabled = false;
}
- if (_abstractStrategy == null)
+ if (_strategy == null)
{
return;
}
- _abstractStrategy.MakeStep();
+ comboBoxStrategy.Enabled = false;
+ _strategy.MakeStep();
Draw();
- if (_abstractStrategy.GetStatus() == Status.Finish)
+ if (_strategy.GetStatus() == Status.Finish)
{
comboBoxStrategy.Enabled = true;
- _abstractStrategy = null;
+ _strategy = null;
}
}
+ private void buttonSelectPlane_Click(object sender, EventArgs e)
+ {
+ SelectedPlane = _drawningAirPlane;
+ DialogResult = DialogResult.OK;
+ }
}
}
\ No newline at end of file
diff --git a/AirBomber/AirBomber/FormPlaneCollection.Designer.cs b/AirBomber/AirBomber/FormPlaneCollection.Designer.cs
new file mode 100644
index 0000000..7f7ef81
--- /dev/null
+++ b/AirBomber/AirBomber/FormPlaneCollection.Designer.cs
@@ -0,0 +1,123 @@
+namespace AirBomber
+{
+ partial class FormPlaneCollection
+ {
+ ///
+ /// 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()
+ {
+ groupBoxTools = new GroupBox();
+ pictureBoxCollection = new PictureBox();
+ buttonAddPlane = new Button();
+ maskedTextBoxNumber = new MaskedTextBox();
+ buttonRemovePlane = new Button();
+ buttonRefreshCollection = new Button();
+ groupBoxTools.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)pictureBoxCollection).BeginInit();
+ SuspendLayout();
+ //
+ // groupBoxTools
+ //
+ groupBoxTools.Controls.Add(buttonRefreshCollection);
+ groupBoxTools.Controls.Add(buttonRemovePlane);
+ groupBoxTools.Controls.Add(maskedTextBoxNumber);
+ groupBoxTools.Controls.Add(buttonAddPlane);
+ groupBoxTools.Location = new Point(758, 1);
+ groupBoxTools.Name = "groupBoxTools";
+ groupBoxTools.Size = new Size(325, 655);
+ groupBoxTools.TabIndex = 0;
+ groupBoxTools.TabStop = false;
+ groupBoxTools.Text = "Инструменты";
+ //
+ // pictureBoxCollection
+ //
+ pictureBoxCollection.Dock = DockStyle.Left;
+ pictureBoxCollection.Location = new Point(0, 0);
+ pictureBoxCollection.Name = "pictureBoxCollection";
+ pictureBoxCollection.Size = new Size(752, 668);
+ pictureBoxCollection.TabIndex = 1;
+ pictureBoxCollection.TabStop = false;
+ //
+ // buttonAddPlane
+ //
+ buttonAddPlane.Location = new Point(17, 53);
+ buttonAddPlane.Name = "buttonAddPlane";
+ buttonAddPlane.Size = new Size(290, 59);
+ buttonAddPlane.TabIndex = 0;
+ buttonAddPlane.Text = "Добавить самолет";
+ buttonAddPlane.UseVisualStyleBackColor = true;
+ //
+ // maskedTextBoxNumber
+ //
+ maskedTextBoxNumber.Location = new Point(79, 166);
+ maskedTextBoxNumber.Mask = "00";
+ maskedTextBoxNumber.Name = "maskedTextBoxNumber";
+ maskedTextBoxNumber.Size = new Size(171, 31);
+ maskedTextBoxNumber.TabIndex = 1;
+ maskedTextBoxNumber.ValidatingType = typeof(int);
+ //
+ // buttonRemovePlane
+ //
+ buttonRemovePlane.Location = new Point(17, 213);
+ buttonRemovePlane.Name = "buttonRemovePlane";
+ buttonRemovePlane.Size = new Size(290, 59);
+ buttonRemovePlane.TabIndex = 2;
+ buttonRemovePlane.Text = "Удалить самолет";
+ buttonRemovePlane.UseVisualStyleBackColor = true;
+ //
+ // buttonRefreshCollection
+ //
+ buttonRefreshCollection.Location = new Point(17, 357);
+ buttonRefreshCollection.Name = "buttonRefreshCollection";
+ buttonRefreshCollection.Size = new Size(290, 59);
+ buttonRefreshCollection.TabIndex = 3;
+ buttonRefreshCollection.Text = "Обновить коллекцию";
+ buttonRefreshCollection.UseVisualStyleBackColor = true;
+ //
+ // FormPlaneCollection
+ //
+ AutoScaleDimensions = new SizeF(10F, 25F);
+ AutoScaleMode = AutoScaleMode.Font;
+ ClientSize = new Size(1095, 668);
+ Controls.Add(pictureBoxCollection);
+ Controls.Add(groupBoxTools);
+ Name = "FormPlaneCollection";
+ Text = "Набор самолетов";
+ groupBoxTools.ResumeLayout(false);
+ groupBoxTools.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)pictureBoxCollection).EndInit();
+ ResumeLayout(false);
+ }
+
+ #endregion
+
+ private GroupBox groupBoxTools;
+ private Button buttonRefreshCollection;
+ private Button buttonRemovePlane;
+ private MaskedTextBox maskedTextBoxNumber;
+ private Button buttonAddPlane;
+ private PictureBox pictureBoxCollection;
+ }
+}
\ No newline at end of file
diff --git a/AirBomber/AirBomber/FormPlaneCollection.cs b/AirBomber/AirBomber/FormPlaneCollection.cs
new file mode 100644
index 0000000..28a9d7e
--- /dev/null
+++ b/AirBomber/AirBomber/FormPlaneCollection.cs
@@ -0,0 +1,20 @@
+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 AirBomber
+{
+ public partial class FormPlaneCollection : Form
+ {
+ public FormPlaneCollection()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/AirBomber/AirBomber/FormPlaneCollection.resx b/AirBomber/AirBomber/FormPlaneCollection.resx
new file mode 100644
index 0000000..f298a7b
--- /dev/null
+++ b/AirBomber/AirBomber/FormPlaneCollection.resx
@@ -0,0 +1,60 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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