如何使用Swift生成范围(10 ... 20)中的随机数[重复]

问题描述 投票:5回答:1

这个问题在这里已有答案:

我可以在我的游戏中为我的项目选择一个随机数,但是可以在2个数字之间选择一个随机数吗?

而不是

let number = (arc4random_uniform(100))

我想要这样的东西:

let number = (arc4random_uniform(10...20))

或类似的东西?现在,如果我得到武器掉落,它可以是我列表中的所有内容。通过这种方式,我可以做到这一点,只有前几个会对特定怪物有所下降,或者在更高级别,他们会丢弃更好的武器而不是低等级。

swift random range
1个回答
9
投票

Xcode 10.2•Swift 5或更高版本

extension Range where Bound: FixedWidthInteger {
    var random: Bound {
        return .random(in: self)
    }
    func random(_ n: Int) -> [Bound] {
        return (0..<n).map { _ in random }
    }
}
extension ClosedRange where Bound: FixedWidthInteger  {
    var random: Bound {
        return .random(in: self)
    }
    func random(_ n: Int) -> [Bound] {
        return (0..<n).map { _ in random }
    }
}

注意:对于较旧的Swift版本,请检查编辑历史记录

用法:

(10...20).random    // 16
(0...1).random(10)  // [0, 1, 0, 0, 1, 1, 1, 1, 1, 0]
© www.soinside.com 2019 - 2024. All rights reserved.