Swift - 生成 0.1 到 0.6 之间的随机整数
Swift - generate random Integer between 0.1 and 0.6
我在 Swift 尝试生成 0.1 到 0.6 之间的随机数时遇到问题
我想在一个简单的游戏中引入微延迟,让它看起来像 iPhone 在响应之前必须 "think"。
我找到了各种生成随机数的片段(none 展示了如何计算小数)。
我找到了一个延迟的代码片段(如果我硬编码它有效的数字)
我正在尝试使用此代码开始生成随机数,将其除以 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()
}
我在 Swift 尝试生成 0.1 到 0.6 之间的随机数时遇到问题
我想在一个简单的游戏中引入微延迟,让它看起来像 iPhone 在响应之前必须 "think"。
我找到了各种生成随机数的片段(none 展示了如何计算小数)。
我找到了一个延迟的代码片段(如果我硬编码它有效的数字)
我正在尝试使用此代码开始生成随机数,将其除以 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()
}