簡體   English   中英

Swift-生成介於0.1和0.6之間的隨機整數

[英]Swift - generate random Integer between 0.1 and 0.6

我在Swift嘗試生成0.1到0.6之間的隨機數時遇到了麻煩

我想在一個簡單的游戲中引入微延遲,以使其看起來像iPhone在響應之前必須“思考”。

我發現各種片段都可以生成一個隨機數(沒有一個顯示如何執行十進制數)。

我找到了一段可以延遲的代碼段(如果我對它有效的數字進行硬編碼)

我嘗試使用此代碼開始生成一個隨機數,將其除以10即可將6變成0.6 ..

// delay before playing
let lower : UInt32 = 1
let upper : UInt32 = 6
let delayTime = arc4random_uniform(upper - lower) + lower

delayTime = delayTime / 10
let delay = delayTime * Double(NSEC_PER_SEC)
let time = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))

dispatch_after(time, dispatch_get_main_queue()) {
    self.aiTurn()
}

Xcode告訴我

delayTime = delayTime / 10

無法分配'let'值'delayTime'-所以很明顯我不能將delayTime的值除以10

Xcode還告訴我,

let delay = delayTime * Double(NSEC_PER_SEC)

二進制運算符*不能應用於類型為'UInt32'和'Double'的操作數

我知道我正在混合使用Int,UInt32,Int64和Doubles-但我不知道如何避免這種情況-非常感謝任何幫助

謝謝

好的,這是工作代碼-感謝@mireke的幫助

// delay before playing
    var lower : UInt32 = 1
    var upper : UInt32 = 6
    var delayTime = arc4random_uniform(upper - lower) + lower
    var delayTimer = Double(delayTime) / 10
    var delay = delayTimer * Double(NSEC_PER_SEC)
    var time = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))
    dispatch_after(time, dispatch_get_main_queue()) {
        self.aiTurn()
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM