如何使用Swift生成(10 ... 20)范围内的随机数 [英] How to generate a random number in a range (10...20) using Swift
本文介绍了如何使用Swift生成(10 ... 20)范围内的随机数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我可以为游戏中的物品选择一个随机数,但 是否可以从2个数字之间选择一个随机数?
I'm able to pick a random number for my items in my game but is it possible to pick a random number between 2 numbers?
所以而不是
let number = (arc4random_uniform(100))
我想要这样的东西:
let number = (arc4random_uniform(10...20))
还是类似的东西? 现在,如果我得到了放下武器的信息,那么它可能就是清单中的所有内容. 通过这种方式,我可以做到,只有前几个怪物会掉落特定的怪物,或者在更高级别时,他们会掉落更好的武器,而不再是低水平的武器.
or something like that? Now if I get a weapon drop it can be everything in my list. This way I could make it so that only the first few would have a drop for a specific monster or at higher level they would drop better weapons and not the low levels anymore.
推荐答案
Xcode 11•Swift 5.1或更高版本
extension Range where Bound: FixedWidthInteger {
var random: Bound { .random(in: self) }
func random(_ n: Int) -> [Bound] { (0..<n).map { _ in random } }
}
extension ClosedRange where Bound: FixedWidthInteger {
var random: Bound { .random(in: self) }
func random(_ n: Int) -> [Bound] { (0..<n).map { _ in random } }
}
注意:对于较早的Swift版本,请检查编辑历史记录
Note: For older Swift versions check the edit history
用法:
(10...20).random // 16
(0...1).random(10) // [0, 1, 0, 0, 1, 1, 1, 1, 1, 0]
这篇关于如何使用Swift生成(10 ... 20)范围内的随机数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文