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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
23
Похожие вопросы:

ответ
скорее всего ты при инициализации проверяешь статус слота игрока, а этого делать нини ))) ибо это частенько может приводить к десинку, вот эти игроки и получают его благополучно во время инициализации)))
ответ
Steal nerves:
Ну можно по-разному. Главное понять от чего отталкиваться.
Создаем две переменные: одна целочисленная К и вторая целочисленная G с массивом.
событие - инициализация
действие - цикл А от 1 до 6 //это игроки 1-6 -=1 клан или можно от 1-3, у тебя же 3 первых игрока
  if  игрок (A) = комп and игрок (А) = играет then
	К=К+1 //кол-во игроков
	G (К) = А //номер игрока, в этой ячейке хранится номер игрока
 endif
также можно было создать группу игроков, и при инициализации засунуть и использовать ее, но не важно.
Вызываем
I=Random (от 0 до К) //короче I - это целочисленная переменная, К - общее кол-во игроков
И передать здания Игрока Х игроку ( G (I) )
ответ
знаешь я не хочу ссорится из за всяких пустяков, видимо тебя не учили в школе что обзываться плохо
смотри и учись
может поймешь однажды что за такие слова я могу и отрубить голову топором если найду тебя....спасибо за подсказки вопрос закрыт.
ответ
и перед этим всем действом надо вставить set bj_wantDestroyGroup = true чтоб группа не утекала
ответ
Свойства игрока - Кланы - Нестандартные кланы + Фикс. параметры игрока (ставим эти галочки и все будет работать).

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