Добавлен kg_toly
Есть у меня массив с 8 индексами. Я использую этот массив для спавна в рандомном месте героя ( как в custom hero survival выбираешь героя ).
Я не хочу чтобы 2 игрока заспавнились в одной арене, по этому мне надо убрать индекс из массива, но как?
Я не хочу чтобы 2 игрока заспавнились в одной арене, по этому мне надо убрать индекс из массива, но как?
Если у вас есть другие способы рандомного спавна героя, то скиньте плз ( gui или jass )
Принятый ответ
Ну ты когда выбираешь случайное от 1 до 8
После этого должен уменьшить 8 на один
И взаместо выбранного записать то что было последним
После этого должен уменьшить 8 на один
И взаместо выбранного записать то что было последним
Изначально записываешь и области, и их общее число
А в конце переписываешь _Random на _Max
Далее делаешь что нужно ссылась на индекс массива _Randomset HeroLocationMax = 8
set HeroLocationRandom = случайное от 1 до HeroLocationMax
А в конце переписываешь _Random на _Max
И уменьшаешь общее числоset HeroLocationMassive[_Random] = HeroLocationMassive[_Max]
set _Max = _Max - 1
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
После этого должен уменьшить 8 на один
И взаместо выбранного записать то что было последним
А в конце переписываешь _Random на _Max И уменьшаешь общее число
Отредактирован host_pi
и при добавлении нового героя проверяй - заселена ли арена ArenaPlaced[i]
Отредактирован host_pi
даже если взять шанс не 1/8 а 1/80 - то сделать 80 операций для варика будет сущим пустяком, нет?
это не то место где делаются десятки тысяч или миллионы операций, когда скорость была бы ощутима от изменения метода исполнения и ради оптимизации которого надо писать не 10 строк говнокода а 30 строк супер оптимизированного и в отдельно вызываемой библиотеке