我可以在我的游戏中为我的项目选择一个随机数,但是 是否有可能在两个数字之间选择一个随机数?
所以而不是
let number = (arc4random_uniform(100))
我想要这样的事情:
let number = (arc4random_uniform(10...20))
或类似的东西? 现在,如果我得到武器掉落,它可以是我列表中的所有内容。 通过这种方式,我可以做到这一点,只有前几个对于一个特定的怪物会有一个下降,或者在更高的等级,它们会掉落更好的武器而不再是低等级。
答案 0 :(得分:9)
Xcode 10•Swift 4.2
extension Range where Bound == Int {
var random: Int {
return Int.random(in: self)
}
func random(_ n: Int) -> [Int] {
return (0..<n).map { _ in random }
}
}
extension ClosedRange where Bound == Int {
var random: Int {
return Int.random(in: self)
}
func random(_ n: Int) -> [Int] {
return (0..<n).map { _ in random }
}
}
Xcode 9•Swift 4
extension Range where Bound == Int {
var random: Int {
return lowerBound + numericCast(arc4random_uniform(numericCast(count)))
}
func random(_ n: Int) -> [Int] {
return (0..<n).map { _ in random }
}
}
extension ClosedRange where Bound == Int {
var random: Int {
return lowerBound + numericCast(arc4random_uniform(numericCast(count)))
}
func random(_ n: Int) -> [Int] {
return (0..<n).map { _ in random }
}
}
Xcode 8.3.2•Swift 3.1
extension Range where Bound: Strideable, Bound == Int {
var random: Int {
return lowerBound + Int(arc4random_uniform(UInt32(count)))
}
func random(_ n: Int) -> [Int] {
return (0..<n).map { _ in random }
}
}
extension ClosedRange where Bound: Strideable, Bound == Int {
var random: Int {
return lowerBound + Int(arc4random_uniform(UInt32(count)))
}
func random(_ n: Int) -> [Int] {
return (0..<n).map { _ in random }
}
}
<强>用法:强>
(10...20).random // 16
(0...1).random(10) // [0, 1, 0, 0, 1, 1, 1, 1, 1, 0]