How to generate a random number in a range (10 ... 20) using Swift

I can choose a random number for my items in my game, but is it possible to choose a random number between 2 numbers?

so instead

let number = (arc4random_uniform(100)) 

I would like something like this:

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

or something like that? Now, if I get a weapon, it could be anything on my list. Thus, I could make sure that only the first few had a fall for a particular monster, or at a higher level they would drop better weapons, not lower levels.

+5
source share
1 answer

Xcode 10.2 • Swift 5 or later

 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 } } } 

Note: for older versions of Swift, check the edit history.

Using:

 (10...20).random // 16 (0...1).random(10) // [0, 1, 0, 0, 1, 1, 1, 1, 1, 0] 
+9
source

Source: https://habr.com/ru/post/1243274/


All Articles