From 0a462ea5594137df30859dd1486c7402f61d5db6 Mon Sep 17 00:00:00 2001
From: cleverman1337 <74911264+cleverman1337@users.noreply.github.com>
Date: Wed, 1 May 2024 15:34:16 +0400
Subject: [PATCH] =?UTF-8?q?=D0=9A=D0=BE=D0=BB=D0=BB=D0=B5=D0=BA=D1=86?=
=?UTF-8?q?=D0=B8=D0=B8=20=D0=BE=D0=B1=D1=8A=D0=B5=D0=BA=D1=82=D0=BE=D0=B2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../ICollectionGenericObjects.cs | 54 +++++++++++++++++
.../MassiveGenericObjects.cs | 58 +++++++++++++++++++
.../Drawnings/DrawningArtillery.cs | 2 +-
.../MovementStrategy/IMoveableObjectcs.cs | 2 +-
4 files changed, 114 insertions(+), 2 deletions(-)
create mode 100644 SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/CollectionGenericObjects/ICollectionGenericObjects.cs
create mode 100644 SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/CollectionGenericObjects/MassiveGenericObjects.cs
diff --git a/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/CollectionGenericObjects/ICollectionGenericObjects.cs b/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/CollectionGenericObjects/ICollectionGenericObjects.cs
new file mode 100644
index 0000000..38d2d77
--- /dev/null
+++ b/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/CollectionGenericObjects/ICollectionGenericObjects.cs
@@ -0,0 +1,54 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace SelfPropelledArtilleryUnit.CollectionGenericObjects;
+
+///
+/// Интерфейс описания действий для набора хранимых объектов
+///
+/// Параметр: ограничение - ссылочный тип
+public interface ICollectionGenericObjects
+ where T : class
+{
+ ///
+ /// Количество объектов в коллекции
+ ///
+ int Count { get; }
+
+ ///
+ /// Установка максимального количества элементов
+ ///
+ int SetMaxCount { set; }
+
+ ///
+ /// Добавление объекта в коллекцию
+ ///
+ /// Добавляемый объект
+ /// true - вставка прошла удачно, false - вставка не удалась
+ bool Insert(T obj);
+
+ ///
+ /// Добавление объекта в коллекцию на конкретную позицию
+ ///
+ /// Добавляемый объект
+ /// Позиция
+ /// true - вставка прошла удачно, false - вставка не удалась
+ bool Insert(T obj, int position);
+
+ ///
+ /// Удаление объекта из коллекции с конкретной позиции
+ ///
+ /// Позиция
+ /// true - удаление прошло удачно, false - удаление не удалось
+ bool Remove(int position);
+
+ ///
+ /// Получение объекта по позиции
+ ///
+ /// Позиция
+ /// Объект
+ T? Get(int position);
+}
diff --git a/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/CollectionGenericObjects/MassiveGenericObjects.cs b/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/CollectionGenericObjects/MassiveGenericObjects.cs
new file mode 100644
index 0000000..124d931
--- /dev/null
+++ b/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/CollectionGenericObjects/MassiveGenericObjects.cs
@@ -0,0 +1,58 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace SelfPropelledArtilleryUnit.CollectionGenericObjects;
+
+public class MassiveGenericObjects : ICollectionGenericObjects
+ where T : class
+{
+ ///
+ /// Массив объектов, которые храним
+ ///
+ private T?[] _collection;
+
+ public int Count => _collection.Length;
+
+ public int SetMaxCount { set { if (value > 0) { _collection = new T?[value]; } } }
+
+
+ ///
+ /// Конструктор
+ ///
+ public MassiveGenericObjects()
+ {
+ _collection = Array.Empty();
+ }
+
+ public T? Get(int position)
+ {
+ // TODO проверка позиции
+ return _collection[position];
+ }
+
+ public bool Insert(T obj)
+ {
+ // TODO вставка в свободное место набора
+ return false;
+ }
+
+ public bool Insert(T obj, int position)
+ {
+ // TODO проверка позиции
+ // TODO проверка, что элемент массива по этой позиции пустой, если нет, то
+ // ищется свободное место после этой позиции и идет вставка туда
+ // если нет после, ищем до
+ // TODO вставка
+ return false;
+ }
+
+ public bool Remove(int position)
+ {
+ // TODO проверка позиции
+ // TODO удаление объекта из массива, присвоив элементу массива значение null
+ return true;
+ }
+}
diff --git a/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/Drawnings/DrawningArtillery.cs b/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/Drawnings/DrawningArtillery.cs
index ee46f1e..be34f15 100644
--- a/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/Drawnings/DrawningArtillery.cs
+++ b/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/Drawnings/DrawningArtillery.cs
@@ -40,7 +40,7 @@ public class DrawningArtillery : DrawningTank
g.DrawRectangle(pen, _startPosX.Value + 80, _startPosY.Value + 25, 50, 5);
}
//установка
- if (artillery.Cannon)
+ if (artillery.Rocket)
{
//колонна
g.FillRectangle(additionalBrush, _startPosX.Value + 5, _startPosY.Value + 10, 5, 30);
diff --git a/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/MovementStrategy/IMoveableObjectcs.cs b/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/MovementStrategy/IMoveableObjectcs.cs
index 89758de..68b6189 100644
--- a/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/MovementStrategy/IMoveableObjectcs.cs
+++ b/SelfPropelledArtilleryUnit/SelfPropelledArtilleryUnit/MovementStrategy/IMoveableObjectcs.cs
@@ -18,7 +18,7 @@ public interface IMoveableObject
///
/// Шаг объекта
- ///
+ ///
int GetStep { get; }
///