WalWin
8:-/
offline
Опыт:
4,117Активность: |
Цикл с нарушением условия повтор
Помогите пожалуйста:
Имеется 5 не работающих порталов, запускается тригер с циклом, где выбираются 5ть этих порталов и каждому дают свой маршрут (маршруты не должны совпадать!): Тригер: Цикл (с выбором каждого портала) от 1 до 5 Действие в цикле: Создается случайная точка телепортации от 1 до 5 Условие - если точка телепортации не занята другим порталом, то разрешить назначение телепорта, иначе создать точку телепортации заново и проверить на условие опять (и так пока не найдется свободный портал) Не могу понять, как повторить цикл для портала у которого выпала занятая точка телепортации. |
01.04.2013, 00:28 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Extremator
offline
Опыт:
40,226Активность: |
нууу... нада сделать массив с "выходами" и выдавая циклом каждому "входу" новое значение выберать его из массива "выходов" |
01.04.2013, 01:16 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
WalWin
8:-/
offline
Опыт:
4,117Активность: |
Массивы я создал :)
Для каждого портала свой массив Для каждой точки выхода свой массив К примеру: -Портал 1 направляется в точку 2 -Портал 2 направляется в точку 5 -Портал 3 направляется в точку 5 (и вот тут загвоздка! 5 точка уже занята, мой цикл продолжает задавать точки для портала 4 и 5, а третий портал остается не рабочим без точки выхода...) |
01.04.2013, 01:28 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
IceFog
offline
Опыт:
8,002Активность: |
Вызывай случайное число до тех пор, пока оно не будет подходить под условия. |
01.04.2013, 01:34 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
WalWin
8:-/
offline
Опыт:
4,117Активность: |
IceFog, а как повторно запускать условие проверки?
|
01.04.2013, 01:40 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Extremator
offline
Опыт:
40,226Активность: |
сделай в конце А = А - 1 используй в качестве числа для массива переменную! |
01.04.2013, 01:46 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
WalWin
8:-/
offline
Опыт:
4,117Активность: |
Extremator, IceFog, спасибо сделал все с помощью 3 тригеров:
1-ый: основной, запускает первую переменную и запускает триггер 2-а 2-ой триггер: если точка перемещения свободна, создает портал и отключает тригер 3-ий, если занята запуск тригер 3-и 3-ий триггер: заново создает точку порта и запускает тригер 2-а :) P.S. большое спасибо, очень рад, пару часов потрачены невпустую))) |
01.04.2013, 01:51 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
IceFog
offline
Опыт:
8,002Активность: |
Вот пример, с применением JASS'а:
» спойлер
Переменные:
PortalBusy- логический массив, изначально порталы не заняты, равен false. RandomNumber - целочисленная, сюда запоминаем случайное число. Portal и PortalLocation - массивы точек. Выход из цикла осуществляется только при условии, что портал не занят. |
01.04.2013, 02:02 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
WalWin
8:-/
offline
Опыт:
4,117Активность: |
IceFog, так намного лучше, три триггера в одном объеденим и никаких лишних действий
|
01.04.2013, 09:51 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Borodach
offline
Опыт:
6,328Активность: |
port [1] = 1 первый портал port [2] = 2 первый портал port [3] = 3 первый портал port [4] = 4 первый портал port [5] = 5 первый портал MaxPort = 5 Random = random[1 до MaxPort] действие с порталом set port [ Random ] = port [ MaxPort ] set MaxPort = MaxPort - 1 Примерно так можно в 1 триггере |
01.04.2013, 11:09 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
WalWin
8:-/
offline
Опыт:
4,117Активность: |
Borodach, нет так не получится) нужно чтобы все порталы работали, а это только через циклы, иначе длинный код будет, я на примере всего 5 порталов взял, их там гораздо больше)
|
01.04.2013, 11:53 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
длинный код...
пичаль тоска если вам не нравится цикл пишите генератор псевдослучайных чисел с периодом равным количеству порталов
вот вам семпл, книжка кнута в интернетах есть, успехов |
01.04.2013, 14:18 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|