Массив коллекций List[] - можно так сделать? - C#
Формулировка задачи:
Добрый день!
У меня вопрос следующего характера: у меня есть три стадии жизни юнитов - рождение, логика (передвижение, столкновения и тд) и смерть.
С логикой и смертью все понятно, для них у меня есть следующие коллекции:
У каждого юнита есть свои параметры, они уже выстроены, считаются. Если логика говорит, что юнит должен умереть, этот юнит переходит в "мертвый бассейн".
Но вопрос возник со списком рождаемых юнитов. Армий может быть несколько, из разных зданий; в армии есть первый юнит (генерал, ведущий за собой конкретную армию) и остальные. Есть распределение по дороге. Все эти параметры просчитываются при создании списка. Когда армия создана, распределена, полностью появилась и сделала первые шаги, она начинает передаваться в список юнитов Units для дальнейшего управления логикой.
Так вот, если всех рождаемых юнитов из разных домов поместить в один список, не знаю, как их контролировать и отделять друг от друга, как выявлять генерала и распределять по дороге (проблема не в отслеживании дома-родителя или каких других параметров, а именно с указанными вещами). Мне нужен массив коллекций, что-то по типу
Но я такого определения не нашел, язык ругается. Есть что-то похожее?
Каждый элемент этого массива будет содержать коллекцию, описывающую конкретную армию конкретного дома. Коллекция, в свою очередь, содержит юнитов, распределяет их, а дальше передает в следующую общую для всех армий коллекцию Units.
Помогите, пожалуйста
public List<UnitWalk> Units = new List<UnitWalk>();// список юнитов для просчета логики public List<UnitWalk> UnitsDeadPool = new List<UnitWalk>(); // список юнитов на умерщвление
public List[]<UnitWalk> UnitsBornPool = new List[]<UnitWalk>();
Решение задачи: «Массив коллекций List[] - можно так сделать?»
textual
Листинг программы
public void AddUnit(int _army, House argAttacking, House argTarget) { UnitLines _unitLine; // их расположение на дороге double _timeBorn=0; // для партий юнитов int _bornScore=0; // счетчик. Сначала двое бегут, потом партия из троих, потом опять двое и тд. for (int i = 0; i < _army; i++) { UnitWalk locUnit = new UnitWalk(Content); int _lineChoosing = i % 5; switch (_lineChoosing) { case 0: _unitLine = UnitLines.Mid; _bornScore++; break; case 1: _unitLine = UnitLines.LeftMid; break; case 2: _unitLine = UnitLines.RigthMid; _bornScore++; break; case 3: _unitLine = UnitLines.Left; break; case 4: _unitLine = UnitLines.Right; break; default: _unitLine = UnitLines.Mid; break; } _timeBorn = Settings.UnitBornTime * _bornScore; locUnit.Load(_timeBorn, _unitLine, argAttacking.HouseDescript, argTarget.HouseDescript); Units.Add(locUnit); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д