Для проекта мне нужно использовать генератор случайных чисел, чтобы обеспечить случайные числа как часть Shuffle Фишера-Йейтса. Я использую оба метода randomize()
и randi()%1+50
, чтобы получить мои случайные числа.
Однако, выполнение этого способа не позволяет моему shuffler Fisher-Yates считать до n=0
, потому что, если это так, он выдает ошибку:
Деление на ноль в операторе%
Указывает прямо на диапазон моего генератора, где находится%. Однако я могу обойти это, используя rand_range()
, поскольку rand_range()
возвращает число с плавающей точкой, а не целое число, я вынужден округлять результат, что иногда приводит к дублированию чисел, которых у меня не может быть.
ceil()
и floor()
также не обсуждаются по той же причине. Это, конечно, можно было бы решить, если бы GDScript
включал что-то вроде randi_range()
, но я видел на других форумах, что это проблема с 2014 года, и до сих пор нет решения.
Q: Учитывая, что это не вариант, кто-нибудь знает способ вернуть случайное число в пределах диапазона, которое не содержит 0 и является положительным целым числом, которое не требует оператор%, чтобы диктовать диапазон?
Не поймите меня неправильно, я люблю движок Godot и ценю его за то, что он есть, но иногда код требует слишком много "борьбы", чтобы справиться с моим умственным здоровьем.
Любая помощь будет принята с благодарностью.
Заранее спасибо ...