Всем привет! У меня вопрос в следующем: необходимо в начале игры создать в 12 точках 12 разных юнитов так, чтобы они не повторялись.
Был способ присвоить каждому юниту переменную "юнит"-массив и потом создавать в каждой точке юнит"[случайное число]. Но в таком случае юниты могут повторяться.
Нужен максимально простой способ сделать так, чтобы они не повторялись.

Тысячу раз рассказывался здесь этот алгоритм. Вон неделю назад спрашивали:
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
11
самый простой способ использовать UnitPool. Добавляем туда все типы юнитов, получаем случайный тип юнита из нашего пула, удаляем выбранный тип юнита. В результате получаем 12 разных юнитов.
Второй способ - создать массив, выбирать случайного типа юнита из массива и выбранный тип юнита перекидать например в конец массива и следующего юнита выбирать уже из диапазона случайных чисел 1..11, и далее так отнимать 1
20
wetalq, мне кажется такой способ с массивом (второй) не сработает. Смотри, скажем выпал юнит из переменной "юнит"(7). Далее мы присваиваем этого юнита переменной (12). Но ведь на его месте в переменной (7) останется пустое место. И игра просто ничего не создаст, если выпадет снова (7).
32
Yury13, Ну так ты проверять что в массиве не пустое место, не обязательно удалять юнита из массива, достаточно создать юнита и поместить его в группу, потом при выборе нового юнита из массива, проверить нет ли такого ид в группе юнитов, если есть, то искать снова, и так далее, ну и навсякий случай счетчик, если раз 10 не получилось, то создать конкретного.
24
Тысячу раз рассказывался здесь этот алгоритм. Вон неделю назад спрашивали:
Принятый ответ
26
Yury13:
мне кажется такой способ с массивом (второй) не сработает.
Два массива. Один для пула областей. Второй для пула юнитов.
11
Yury13, прошу прощения, не дописал немного
приведу пример
unit[1] = пехотинец
...
unit[5] = стрелок
..
unit[11] = чебурашка
unit[12] = тележка
Выбираем случайное число от 1 до 12, упало 5
Элементы массива меняем местами 5-ый и 12-ый и теперь у нас будет
unit[1] = пехотинец
...
unit[5] = тележка
..
unit[11] = чебурашка
unit[12] = стрелок
Для следующего юнита уже от 1 до 11. Мы грубо говоря сортируем массив на две части, первая часть те кто еще не упали, вторая - кто уже упал.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.