Каким образом можно выбрать рандомного игрока среди играющих людей?

DarKRs,
Переменная-счётчик = 0
Цикл от 1 до 12
Если игрок - человек и играет
  • То занести его в массив играющих игроков с индексом "переменная счётчик"
  • Увеличить переменную счётчик на 1
Если играет 6 человек, т.е. 1, 3, 6, 7, 8, 10 - они будут занесены в массив.
Рандомное число = рандомное значения от 0 до "переменная счётчик" - 1
Рандомный игрок = массив[рандомное число]
В итоге нет ни выходов за пределы массива, и рандом среди тех, кто играет.
Примерно тоже самое было описано выше
Накидал бы хотя бы на gui, но под рукой редактора нет.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
32
DarKRs, в jass размер массива 8192, так для справки, игроков вы заносите в массив каждый раз когда хотите найти рандомного, вдруг кто то ливнул?
И зачем делать рандом больше числа играющих игроков? Вы проверяете в цикле все слоты, кто играет, и заносите играющих в массив.
9
Ладно, спасибо. Вы пытались помочь. Но я в упор не вижу как это реализовать
5
DarKRs,
Переменная-счётчик = 0
Цикл от 1 до 12
Если игрок - человек и играет
  • То занести его в массив играющих игроков с индексом "переменная счётчик"
  • Увеличить переменную счётчик на 1
Если играет 6 человек, т.е. 1, 3, 6, 7, 8, 10 - они будут занесены в массив.
Рандомное число = рандомное значения от 0 до "переменная счётчик" - 1
Рандомный игрок = массив[рандомное число]
В итоге нет ни выходов за пределы массива, и рандом среди тех, кто играет.
Примерно тоже самое было описано выше
Накидал бы хотя бы на gui, но под рукой редактора нет.
Принятый ответ
5
DarKRs, почти. Рандом должен быть от 0 до Buf_A - 1. Т.к. первый игрок заносится в массив с индексом 0. А т.к. рандом от и до включительно, из последнего числа надо отнять единицу.
И да, там не picked player. Он используется, если цикл идёт по группе игроков. А тут цикл целых числел. Т.е. нужна функция (не помню как называется), которая берёт игрока по индексу, который используется в цикле.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.