如何使用 Swift 在范围 (10...20) 内生成随机数 [英] How to generate a random number in a range (10...20) using Swift

查看:18
本文介绍了如何使用 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆