Выполнение TODO
This commit is contained in:
parent
2fba868169
commit
1d0a18b4b7
13
AirBomber/AirBomber/FormAirBomber.Designer.cs
generated
13
AirBomber/AirBomber/FormAirBomber.Designer.cs
generated
@ -37,6 +37,7 @@
|
|||||||
comboBoxStrategy = new ComboBox();
|
comboBoxStrategy = new ComboBox();
|
||||||
buttonCreateAirPlane = new Button();
|
buttonCreateAirPlane = new Button();
|
||||||
buttonStrategyStep = new Button();
|
buttonStrategyStep = new Button();
|
||||||
|
buttonSelectPlane = new Button();
|
||||||
((System.ComponentModel.ISupportInitialize)pictureBoxAirBomber).BeginInit();
|
((System.ComponentModel.ISupportInitialize)pictureBoxAirBomber).BeginInit();
|
||||||
SuspendLayout();
|
SuspendLayout();
|
||||||
//
|
//
|
||||||
@ -142,11 +143,22 @@
|
|||||||
buttonStrategyStep.UseVisualStyleBackColor = true;
|
buttonStrategyStep.UseVisualStyleBackColor = true;
|
||||||
buttonStrategyStep.Click += buttonStrategyStep_Click;
|
buttonStrategyStep.Click += buttonStrategyStep_Click;
|
||||||
//
|
//
|
||||||
|
// buttonSelectPlane
|
||||||
|
//
|
||||||
|
buttonSelectPlane.Location = new Point(862, 178);
|
||||||
|
buttonSelectPlane.Name = "buttonSelectPlane";
|
||||||
|
buttonSelectPlane.Size = new Size(110, 91);
|
||||||
|
buttonSelectPlane.TabIndex = 9;
|
||||||
|
buttonSelectPlane.Text = "Выбрать самолет";
|
||||||
|
buttonSelectPlane.UseVisualStyleBackColor = true;
|
||||||
|
buttonSelectPlane.Click += buttonSelectPlane_Click;
|
||||||
|
//
|
||||||
// FormAirBomber
|
// FormAirBomber
|
||||||
//
|
//
|
||||||
AutoScaleDimensions = new SizeF(10F, 25F);
|
AutoScaleDimensions = new SizeF(10F, 25F);
|
||||||
AutoScaleMode = AutoScaleMode.Font;
|
AutoScaleMode = AutoScaleMode.Font;
|
||||||
ClientSize = new Size(986, 540);
|
ClientSize = new Size(986, 540);
|
||||||
|
Controls.Add(buttonSelectPlane);
|
||||||
Controls.Add(buttonStrategyStep);
|
Controls.Add(buttonStrategyStep);
|
||||||
Controls.Add(buttonCreateAirPlane);
|
Controls.Add(buttonCreateAirPlane);
|
||||||
Controls.Add(comboBoxStrategy);
|
Controls.Add(comboBoxStrategy);
|
||||||
@ -173,5 +185,6 @@
|
|||||||
private ComboBox comboBoxStrategy;
|
private ComboBox comboBoxStrategy;
|
||||||
private Button buttonCreateAirPlane;
|
private Button buttonCreateAirPlane;
|
||||||
private Button buttonStrategyStep;
|
private Button buttonStrategyStep;
|
||||||
|
private Button buttonSelectPlane;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -123,11 +123,10 @@
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="sender"></param>
|
/// <param name="sender"></param>
|
||||||
/// <param name="e"></param>
|
/// <param name="e"></param>
|
||||||
private void ButtonSelectPlane_Click(object sender, EventArgs e)
|
private void buttonSelectPlane_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
SelectedPlane = _drawningAirPlane;
|
SelectedPlane = _drawningAirPlane;
|
||||||
DialogResult = DialogResult.OK;
|
DialogResult = DialogResult.OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -33,10 +33,10 @@ namespace AirBomber
|
|||||||
FormAirBomber form = new();
|
FormAirBomber form = new();
|
||||||
if (form.ShowDialog() == DialogResult.OK)
|
if (form.ShowDialog() == DialogResult.OK)
|
||||||
{
|
{
|
||||||
if (_planes + form.SelectedPlane)
|
if (_planes + form.SelectedPlane != -1)
|
||||||
{
|
{
|
||||||
MessageBox.Show("Объект добавлен");
|
MessageBox.Show("Объект добавлен");
|
||||||
pictureBoxCollection.Image = _planes.ShowCars();
|
pictureBoxCollection.Image = _planes.ShowPlanes();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -59,7 +59,7 @@ namespace AirBomber
|
|||||||
if (_planes - pos != null)
|
if (_planes - pos != null)
|
||||||
{
|
{
|
||||||
MessageBox.Show("Объект удален");
|
MessageBox.Show("Объект удален");
|
||||||
pictureBoxCollection.Image = _planes.ShowCars();
|
pictureBoxCollection.Image = _planes.ShowPlanes();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -73,7 +73,7 @@ namespace AirBomber
|
|||||||
/// <param name="e"></param>
|
/// <param name="e"></param>
|
||||||
private void buttonRefreshCollection_Click(object sender, EventArgs e)
|
private void buttonRefreshCollection_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
pictureBoxCollection.Image = _planes.ShowCars();
|
pictureBoxCollection.Image = _planes.ShowPlanes();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,11 +21,11 @@ namespace AirBomber
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Размер занимаемого объектом места (ширина)
|
/// Размер занимаемого объектом места (ширина)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private readonly int _placeSizeWidth = 210;
|
private readonly int _placeSizeWidth = 150;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Размер занимаемого объектом места (высота)
|
/// Размер занимаемого объектом места (высота)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private readonly int _placeSizeHeight = 90;
|
private readonly int _placeSizeHeight = 118;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Набор объектов
|
/// Набор объектов
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -49,14 +49,11 @@ namespace AirBomber
|
|||||||
/// <param name="collect"></param>
|
/// <param name="collect"></param>
|
||||||
/// <param name="obj"></param>
|
/// <param name="obj"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static bool operator +(PlanesGenericCollection<T, U> collect, T?
|
public static int operator +(PlanesGenericCollection<T, U> collect, T? obj)
|
||||||
obj)
|
|
||||||
{
|
{
|
||||||
if (obj == null)
|
if (obj == null)
|
||||||
{
|
return -1;
|
||||||
return false;
|
return collect?._collection.Insert(obj) ?? -1;
|
||||||
}
|
|
||||||
return collect?._collection.Insert(obj) ?? false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -65,8 +62,7 @@ namespace AirBomber
|
|||||||
/// <param name="collect"></param>
|
/// <param name="collect"></param>
|
||||||
/// <param name="pos"></param>
|
/// <param name="pos"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static T? operator -(PlanesGenericCollection<T, U> collect, int
|
public static T? operator -(PlanesGenericCollection<T, U> collect, int pos)
|
||||||
pos)
|
|
||||||
{
|
{
|
||||||
T? obj = collect._collection.Get(pos);
|
T? obj = collect._collection.Get(pos);
|
||||||
if (obj != null)
|
if (obj != null)
|
||||||
@ -88,7 +84,7 @@ namespace AirBomber
|
|||||||
/// Вывод всего набора объектов
|
/// Вывод всего набора объектов
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public Bitmap ShowCars()
|
public Bitmap ShowPlanes()
|
||||||
{
|
{
|
||||||
Bitmap bmp = new(_pictureWidth, _pictureHeight);
|
Bitmap bmp = new(_pictureWidth, _pictureHeight);
|
||||||
Graphics gr = Graphics.FromImage(bmp);
|
Graphics gr = Graphics.FromImage(bmp);
|
||||||
@ -122,13 +118,21 @@ namespace AirBomber
|
|||||||
/// <param name="g"></param>
|
/// <param name="g"></param>
|
||||||
private void DrawObjects(Graphics g)
|
private void DrawObjects(Graphics g)
|
||||||
{
|
{
|
||||||
|
int heightObjCount = _pictureHeight / _placeSizeHeight;
|
||||||
|
int widthObjCount = _pictureWidth / _placeSizeWidth; // Добавляем вычисление ширины
|
||||||
|
|
||||||
for (int i = 0; i < _collection.Count; i++)
|
for (int i = 0; i < _collection.Count; i++)
|
||||||
{
|
{
|
||||||
// TODO получение объекта
|
T? type = _collection.Get(i);
|
||||||
// TODO установка позиции
|
if (type != null)
|
||||||
// TODO прорисовка объекта
|
{
|
||||||
|
int row = i / widthObjCount; // Ряд - сначала сверху вниз
|
||||||
|
int col = widthObjCount - 1 - (i % widthObjCount); // Столбец - справа налево
|
||||||
|
|
||||||
|
type.SetPosition(col * _placeSizeWidth, row * _placeSizeHeight);
|
||||||
|
type?.DrawPlane(g);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,10 +30,10 @@ namespace AirBomber
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="plane">Добавляемый самолет</param>
|
/// <param name="plane">Добавляемый самолет</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public bool Insert(T plane)
|
public int Insert(T plane)
|
||||||
{
|
{
|
||||||
// TODO вставка в начало набора
|
//was TODO
|
||||||
return true;
|
return Insert(plane, 0);
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Добавление объекта в набор на конкретную позицию
|
/// Добавление объекта в набор на конкретную позицию
|
||||||
@ -41,15 +41,39 @@ namespace AirBomber
|
|||||||
/// <param name="plane">Добавляемый самолет</param>
|
/// <param name="plane">Добавляемый самолет</param>
|
||||||
/// <param name="position">Позиция</param>
|
/// <param name="position">Позиция</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public bool Insert(T plane, int position)
|
public int Insert(T plane, int position)
|
||||||
{
|
{
|
||||||
// TODO проверка позиции
|
// TODO проверка позиции DONE
|
||||||
// TODO проверка, что элемент массива по этой позиции пустой,если нет, то
|
// TODO проверка, что элемент массива по этой позиции пустой,если нет, то
|
||||||
// проверка, что после вставляемого элемента в массиве есть пустой элемент
|
// проверка, что после вставляемого элемента в массиве есть пустой элемент
|
||||||
// сдвиг всех объектов, находящихся справа от позиции до первого пустого элемента
|
// сдвиг всех объектов, находящихся справа от позиции до первого пустого элемента
|
||||||
// TODO вставка по позиции
|
// TODO вставка по позиции
|
||||||
_places[position] = plane;
|
int NoEmpty = 0, temp = 0;
|
||||||
return true;
|
for (int i = position; i < Count; i++)
|
||||||
|
{
|
||||||
|
if (_places[i] != null) NoEmpty++;
|
||||||
|
}
|
||||||
|
if (NoEmpty == Count - position - 1) return -1;
|
||||||
|
|
||||||
|
if (position < Count && position >= 0)
|
||||||
|
{
|
||||||
|
for (int j = position; j < Count; j++)
|
||||||
|
{
|
||||||
|
if (_places[j] == null)
|
||||||
|
{
|
||||||
|
temp = j;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = temp; i > position; i--)
|
||||||
|
{
|
||||||
|
_places[i] = _places[i - 1];
|
||||||
|
}
|
||||||
|
_places[position] = plane;
|
||||||
|
return position;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Удаление объекта из набора с конкретной позиции
|
/// Удаление объекта из набора с конкретной позиции
|
||||||
@ -58,9 +82,14 @@ namespace AirBomber
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public bool Remove(int position)
|
public bool Remove(int position)
|
||||||
{
|
{
|
||||||
// TODO проверка позиции
|
// TODO проверка позиции DONE
|
||||||
// TODO удаление объекта из массива, присвоив элементу массива значение null
|
// TODO удаление объекта из массива, присвоив элементу массива значение null
|
||||||
return true;
|
if (!(position >= 0 && position < Count) || _places[position] == null)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
_places[position] = null;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Получение объекта из набора по позиции
|
/// Получение объекта из набора по позиции
|
||||||
@ -69,7 +98,11 @@ namespace AirBomber
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public T? Get(int position)
|
public T? Get(int position)
|
||||||
{
|
{
|
||||||
// TODO проверка позиции
|
// TODO проверка позиции DONE
|
||||||
|
if (position < 0 || position >= Count)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
return _places[position];
|
return _places[position];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user