karakym
СССР
offline
Опыт:
1,196Активность: |
Помогите продумать систему
Суть таоква:
есть переменная MaxPlayers при инициализации карты эта переменная приобретает целое значение играющих игроков (от 1 до 12) Теперь эту переменную нужно разделить на 3 ровных частей (Если игроков будет 12 или 9 или 6 или 3, то это будет легко сделать...) то есть создаем еще одну переменную "RandomSelect" всего с тремя массивами. Дальше нужно случайным но равномерным образом заполнить эти 3 массива с помощью MaxPlayers Можно было бы сделать RandomSelect = MaxPlayers/3 , но имеем дело с целыми числами. А вот например если значение MaxPlayers будет не делимое на 3, как же быть? Ну тут нужно подобрать меньшее делимое число (например MaxPlayers у нас 8, на три не поделим, но можем поделить либо 6 либо 9, в этом случае меньшее делимое будет 6) после чего остаток добавить случайным образом в один из трех массивов. (на примере, из 8 остатком будет 2 так вот возьмем каждого и раскинем по массивам, естественно что бы все в один не полезли) Ну эт я так прикинул, как можно сделать, может есть легче путь? Приоритетно (желательно) сделать на GUI |
30.12.2014, 03:16 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,184Активность: |
на бумажке "нарисуйте" алгоритм, сфотайте на телефон и прикрепите в тему, обсудим где именно и что именно у вас не так как должно быть.
можете в пейнте нарисовать. |
30.12.2014, 08:58 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Melissa
Я всегда хочу как лучше!
offline
Опыт:
30,496Активность: |
Прежде всего ты бы в общем виде пояснил, чего хочешь. А функция остатка есть в математических - modulo. 13 mod 3 = 1 |
30.12.2014, 09:29 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
online
Опыт: отключен
|
если int 8 делить на int 3, будет int 2 |
30.12.2014, 10:08 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
karakym
СССР
offline
Опыт:
1,196Активность: |
ScorpioT1000, я подозревал, но не знаю что помешало мне попробовать.
Вообщем есть 3 области (3 разные арены) нужно распределить максимальное количество игроков (MaxPlayers) по этим трем "кучкам", для дальнейшего их "двигать (мгновенно)" каждую "кучку" в свою зону. Двигать будем событием (либо истечением таймера либо по команде из строки), главное каждому играющему установить свою "игровую зону". |
30.12.2014, 12:12 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Melissa
Я всегда хочу как лучше!
offline
Опыт:
30,496Активность: |
а что делать с лишними игроками? |
30.12.2014, 12:16 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
karakym
СССР
offline
Опыт:
1,196Активность: |
Melissa, случайным образом раскидать по кучкам!
Минимально остаться игроков может 1, максимально же 2, по этому 2 лишних не должны попасть в одну и ту же "кучку" |
30.12.2014, 12:34 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Melissa
Я всегда хочу как лучше!
offline
Опыт:
30,496Активность: |
Короче. вот так я в у себя в цемках разбиваю игроков на команды по введёному числу. Правда лишних я отправляю в 1 тиму, а не распределяю, ну думаю. сам додумаешься. |
30.12.2014, 12:54 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
online
Опыт: отключен
|
Страшно) |
30.12.2014, 12:55 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Melissa
Я всегда хочу как лучше!
offline
Опыт:
30,496Активность: |
Если конечно въедешь в этот страшный тройной цикл.
Melissa добавил: ы |
30.12.2014, 12:59 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Extremator
offline
Опыт:
40,284Активность: |
Extremator добавил: ну это если абстрактно... |
01.01.2015, 11:58 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|