sleepw
offline
Опыт:
8,449Активность: |
Проверка массива
эммь..
есть массив инт [1-10] как проверить когда в каждом массиве станет значение 2 например? |
26.03.2008, 23:26 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DFlyer
<3 MJ
offline
Опыт:
43,079Активность: |
В каждой ячейке ты хотел сказать?
Код:
Если в итоге булевая переменная будет равно true, значит все ячейки массива равны 2. Или более оптимальный вариант на джаззе. » ArrCheck (jass) Код:
Вызывать так: Код:
Отредактировано DFlyer, 27.03.2008 в 00:10. |
26.03.2008, 23:35 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Mind_Freak
отступник дроу
offline
Опыт:
2,274Активность: |
значение массива меняются ведь когда-то... создай отдельный триггер с 10 условиями(на все индексы) или через цикл с иф зен элсе и вызывай это триггер каждый раз когда меняешь значение. |
26.03.2008, 23:36 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
sleepw
offline
Опыт:
8,449Активность: |
дык а как же оно считает весь массив.. или я не понимаю или оно будет так:
например массив[2] равно 2 массив[10] равно 1 тоесть при лупе дойдя до массива 2 оно поставит тру ,а потом дойдя до массива 10 поставит фелс и вернёт фелс..=\ |
26.03.2008, 23:52 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DFlyer
<3 MJ
offline
Опыт:
43,079Активность: |
Ой, я немного ступил. Щас пофиксил. Смысл такой, проходит по лупу и по порядку проверяет ячейки массива. int[1]=2 (true) int[2]=2 (true) int[3]=2 (true) int[4]=2 (true) int[5]!=2 (луп прекращается, возвращает false) |
27.03.2008, 00:09 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
sleepw
offline
Опыт:
8,449Активность: |
ну х3 имхо оно тут не подходид..
вот де оно должно юзаться: Код:
тоесть я не могу знать скоко будет массивов и как они будут расположены.. как тогда? |
27.03.2008, 00:41 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
да принцепи дфлаер все правльно сказал
Цитата:
перефразируй... Jon добавил: т.е. как я понял у тебя 10 играков, у каждого пара юнитов, и если они все подохли то делать какието действия... так? |
|
27.03.2008, 00:55 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
sleepw
offline
Опыт:
8,449Активность: |
не
ну тоесть 10 игроков это макс,но их может же может быть и меньше. и у каждого по 2 жизни. когда умирает сетим массив [ид игрока]+1 пока его массив не будет равен 2 будем воскрешать. ну вот и когда все такие массивы =2 делаем тото sleepw добавил: тобишь я же немогу знать точно что массив будет идти 1,2,3... второго игрока может не быть и тогда будет идти 1,3,4.. |
27.03.2008, 00:59 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
тогда я посоветовал бы тебе сделать свой массив играков в котором будут распологатся только играющие игроки, т.к. он может и поже пригодится...
а можно прям в функции дфлаера проверять играет игрок или нет перед проверкой его ячейки |
27.03.2008, 01:05 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
sleepw
offline
Опыт:
8,449Активность: |
мм так покатит?)
Код:
|
27.03.2008, 01:18 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
т.е. ты это делаеш для играков от 2 до 8?
короче в идеальном варианте для играков от 1 до 10 (включительно) это будет выглядеть так: Код:
и последующие цыклы для этих играков оформляй в таком виде: Код:
Этот метод Очень часто используется для отображения на мультиборде только играющих играков Отредактировано Jon, 27.03.2008 в 06:50. |
27.03.2008, 01:46 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
sleepw
offline
Опыт:
8,449Активность: |
мм сенки,буду тестить..
а вот ещё такая идея возникла,что если просто сделать 1 переменную инт и делаем так: Код:
вроде норм считает..:) |
27.03.2008, 05:55 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
GetPlayersMatching() - утечк0
как я понимаю ты просто прибовляеш переменую ntCountMisc на 1 если ктото потерял жизнь, и если потереных жизней в общем больше чем количество играющих играков * 2? Можно и так, только там точно каждый игрок не может потерять больше 2-ух жизней? если да то такой способ тоже пойдет, и переменная массив ntCountLives не нужна будет, но эту ужасную проверку на форс играков убери, занеси значение количества играков в переменую и пользуйся им как у меня в примере, и вообще май способ универсальнее, т.е. его потом можно будет использовать в любом месте карты что я думаю пригодится. |
27.03.2008, 07:22 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
sleepw
offline
Опыт:
8,449Активность: |
Jon
ну так игрок же может выйти.. поэтому и не кинул в переменную.. sleepw добавил: нелюблю много кода которого я не очень понимаю).. если гдето прижмёт буду юзать) |
27.03.2008, 07:29 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
J
expert
offline
Опыт:
48,447Активность: |
короче я уже сказал как сделать)
если игрок выходит то тебе нужно написать функцию которая 1) сдвигает все индексы массива udg_Players от udg_PlayerId [GetPlayerId(Вышедший игрок)]+1 до udg_CoustPlayers на одну ячейку влево/Назад/ИлиКак... 2) уменьшить каждую ячейку массива udg_PlayerId на еденицу от GetPlayerId(Вышедший игрок)+1 до 10 3) И уменьшает переменую udg_CoustPlayers на еденицу |
27.03.2008, 07:40 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|