我正在製作遊戲,並且一直在嘗試製作隨機移動。這是我的代碼。最小和最大功能不工作Swift
let actualDuration = NSTimeInterval(random(min(): CGFloat(3.0), max: CGFloat(4.0)))
最小和最大不工作,請幫助。
我正在製作遊戲,並且一直在嘗試製作隨機移動。這是我的代碼。最小和最大功能不工作Swift
let actualDuration = NSTimeInterval(random(min(): CGFloat(3.0), max: CGFloat(4.0)))
最小和最大不工作,請幫助。
與.NET Framework或JDK不同,沒有一個函數需要min
和max
參數來生成一個隨機數。 :(
如果你想生成3和4之間的隨機數,你應該使用arc4random_uniform
函數生成0到999,然後再之間的數字除以1000,這個數字並加3:
let randomNumber = Double(arc4random_uniform(1000))
let actualDuration = CGFloat(randomNumber/1000 + 3)
讓我解釋一下這是如何工作的。
randomNumber
999是介於0和好嗎?現在,當你除以1000,它變得比1,即0〜0.999少一個數字,你加這個號碼3,結果變成3到4之間的隨機數,這就是你想要的。
如果您想要更精確的雙精度,您可以生成一個介於0和9999之間的數字並將其除以10000.您明白我的意思了!
非常感謝您,如果您在Saoods上發佈3和4 CGFLOAT後,兩種版本都可以正常工作 –
@Ethan馬庫斯
嘗試這樣
let minValue = 3
let maxValue = 4
let actualDuration = NSTimeInterval(minValue + (random() % (maxValue - minValue)))
我不認爲您的代碼可以生成3到4之間的隨機數 – Sweeper
它應該是'分鐘:',而不是'分鐘():'? –
你可以發佈你的隨機方法定義嗎? –