对于一个项目,我需要使用随机数生成器来提供随机数作为 Fisher-Yates Shuffle 的一部分。我同时使用randomize()
和randi()%1+50
方法来获取我的随机数。
然而,这样做不会让我的 Fisher-Yates 洗牌器倒计时到n=0
,因为如果这样做,它会抛出一个错误:
运算符中除以零 %
指向 % 所在的发电机范围。但是,我可以通过使用来解决这个问题rand_range()
,因为rand_range()
返回的是浮点数而不是整数,我不得不对结果进行四舍五入,这有时会导致重复的数字,这是我无法拥有的。
ceil()
并且floor()
出于同样的原因也是不可能的。当然,如果GDScript
包含类似的东西,这一切都可以解决,randi_range()
但我在其他论坛上看到这自 2014 年以来一直是一个问题,并且仍然没有解决方案。
问:鉴于这不是一个选项,有没有人知道一种方法来返回一个范围内的随机数,该范围内不包括 0 并且是一个不需要 % 运算符来指示范围的正整数?
不要误会我的意思,我喜欢 Godot 引擎,并欣赏它的本质,但有时代码需要太多的“摔跤”才能让我的精神健全来处理。
任何帮助将不胜感激。提前致谢...