Вроде как доделанная лаба

This commit is contained in:
ArtemEmelyanov 2022-10-29 15:28:55 +04:00
parent bc84a238c4
commit 75a36c4019
5 changed files with 51 additions and 14 deletions

View File

@ -92,6 +92,7 @@
this.buttonDeleteMap.TabIndex = 4; this.buttonDeleteMap.TabIndex = 4;
this.buttonDeleteMap.Text = "Удалить карту"; this.buttonDeleteMap.Text = "Удалить карту";
this.buttonDeleteMap.UseVisualStyleBackColor = true; this.buttonDeleteMap.UseVisualStyleBackColor = true;
this.buttonDeleteMap.Click += new System.EventHandler(this.buttonDeleteMap_Click_1);
// //
// listBoxMaps // listBoxMaps
// //
@ -111,6 +112,7 @@
this.buttonAddMap.TabIndex = 2; this.buttonAddMap.TabIndex = 2;
this.buttonAddMap.Text = "Добавить карту"; this.buttonAddMap.Text = "Добавить карту";
this.buttonAddMap.UseVisualStyleBackColor = true; this.buttonAddMap.UseVisualStyleBackColor = true;
this.buttonAddMap.Click += new System.EventHandler(this.buttonAddMap_Click_1);
// //
// textBoxNewMapName // textBoxNewMapName
// //

View File

@ -18,7 +18,8 @@ namespace Airbus
/// </summary> /// </summary>
private readonly Dictionary<string, AbstractMap> _mapsDict = new() private readonly Dictionary<string, AbstractMap> _mapsDict = new()
{ {
{ "Простая карта", new SimpleMap() } { "Простая карта", new SimpleMap() },
{ "Вторая карта", new MyMap() }
}; };
/// <summary> /// <summary>
/// Объект от коллекции карт /// Объект от коллекции карт
@ -62,7 +63,7 @@ namespace Airbus
/// </summary> /// </summary>
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
private void ButtonAddMap_Click(object sender, EventArgs e) private void buttonAddMap_Click_1(object sender, EventArgs e)
{ {
if (comboBoxSelectorMap.SelectedIndex == -1 || string.IsNullOrEmpty(textBoxNewMapName.Text)) if (comboBoxSelectorMap.SelectedIndex == -1 || string.IsNullOrEmpty(textBoxNewMapName.Text))
{ {
@ -92,7 +93,7 @@ namespace Airbus
/// </summary> /// </summary>
/// <param name="sender"></param> /// <param name="sender"></param>
/// <param name="e"></param> /// <param name="e"></param>
private void ButtonDeleteMap_Click(object sender, EventArgs e) private void buttonDeleteMap_Click_1(object sender, EventArgs e)
{ {
if (listBoxMaps.SelectedIndex == -1) if (listBoxMaps.SelectedIndex == -1)
{ {
@ -122,8 +123,7 @@ namespace Airbus
if (_mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty] + plane >= 0) if (_mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty] + plane >= 0)
{ {
MessageBox.Show("Объект добавлен"); MessageBox.Show("Объект добавлен");
pictureBox.Image = pictureBox.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet();
_mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet();
} }
else else
{ {
@ -146,8 +146,7 @@ namespace Airbus
{ {
return; return;
} }
if (MessageBox.Show("Удалить объект?", "Удаление", if (MessageBox.Show("Удалить объект?", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
{ {
return; return;
} }
@ -155,8 +154,7 @@ namespace Airbus
if (_mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty] - pos != null) if (_mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty] - pos != null)
{ {
MessageBox.Show("Объект удален"); MessageBox.Show("Объект удален");
pictureBox.Image = pictureBox.Image = _mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet();
_mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? string.Empty].ShowSet();
} }
else else
{ {
@ -224,5 +222,7 @@ namespace Airbus
_mapsCollection[listBoxMaps.SelectedItem?.ToString() ?? _mapsCollection[listBoxMaps.SelectedItem?.ToString() ??
string.Empty].MoveObject(dir); string.Empty].MoveObject(dir);
} }
} }
} }

View File

@ -178,10 +178,15 @@ namespace Airbus
/// <param name="g"></param> /// <param name="g"></param>
private void DrawPlanes(Graphics g) private void DrawPlanes(Graphics g)
{ {
int width = _pictureWidth / _placeSizeWidth;
int height = _pictureHeight / _placeSizeHeight;
int i = 0;
foreach (var plane in _setPlanes.GetPlanes()) foreach (var plane in _setPlanes.GetPlanes())
{ {
// TODO установка позиции // TODO установка позиции
plane.SetObject((width - i % width - 1) * _placeSizeWidth, (height - i / width - 1) * _placeSizeHeight, _pictureWidth, _pictureHeight);
plane.DrawningObject(g); plane.DrawningObject(g);
i++;
} }
} }

View File

@ -43,6 +43,11 @@ namespace Airbus
public void AddMap(string name, AbstractMap map) public void AddMap(string name, AbstractMap map)
{ {
// TODO Прописать логику для добавления // TODO Прописать логику для добавления
if (_mapStorages.ContainsKey(name))
{
return;
}
_mapStorages.Add(name, new MapWithSetPlanesGeneric<DrawningObjectPlane, AbstractMap>(_pictureWidth, _pictureHeight, map));
} }
/// <summary> /// <summary>
/// Удаление карты /// Удаление карты
@ -51,6 +56,7 @@ namespace Airbus
public void DelMap(string name) public void DelMap(string name)
{ {
// TODO Прописать логику для удаления // TODO Прописать логику для удаления
_mapStorages.Remove(name);
} }
/// <summary> /// <summary>
/// Доступ к парковке /// Доступ к парковке
@ -62,6 +68,10 @@ namespace Airbus
get get
{ {
// TODO Продумать логику получения объекта // TODO Продумать логику получения объекта
if (_mapStorages.ContainsKey(ind))
{
return _mapStorages[ind];
}
return null; return null;
} }
} }

View File

@ -36,7 +36,10 @@ namespace Airbus
{ {
// TODO вставка в начало набора // TODO вставка в начало набора
// TODO проверка на _maxCount // TODO проверка на _maxCount
return -1; if (_places.Count + 1 >= _maxCount)
return -1;
_places.Insert(0, plane);
return 0;
} }
/// <summary> /// <summary>
/// Добавление объекта в набор на конкретную позицию /// Добавление объекта в набор на конкретную позицию
@ -48,8 +51,14 @@ namespace Airbus
{ {
// TODO проверка позиции // TODO проверка позиции
// TODO вставка по позиции // TODO вставка по позиции
_places[position] = plane; if (position >= _maxCount || position < 0)
return -1; {
return -1;
}
if (_places.Count + 1 >= _maxCount)
return -1;
_places.Insert(position, plane);
return position;
} }
/// <summary> /// <summary>
/// Удаление объекта из набора с конкретной позиции /// Удаление объекта из набора с конкретной позиции
@ -60,9 +69,12 @@ namespace Airbus
{ {
// TODO проверка позиции // TODO проверка позиции
// TODO удаление объекта из массива, присовив элементу массива значение null // TODO удаление объекта из массива, присовив элементу массива значение null
if (position < 0 || position >= Count || _places[position] == null) return null; if (position >= _maxCount || position < 0)
{
return null;
}
T DeletePlane = _places[position]; T DeletePlane = _places[position];
_places[position] = null; _places.RemoveAt(position);
return DeletePlane; return DeletePlane;
} }
/// <summary> /// <summary>
@ -75,12 +87,20 @@ namespace Airbus
get get
{ {
// TODO проверка позиции // TODO проверка позиции
if (position < 0 || position >= _maxCount)
{
return null;
}
return _places[position]; return _places[position];
} }
set set
{ {
// TODO проверка позиции // TODO проверка позиции
// TODO вставка в список по позиции // TODO вставка в список по позиции
if (position < 0 || position >= _maxCount)
{
Insert(value, position);
}
} }
} }
/// <summary> /// <summary>