从数组中调用随机数时,不会连续两次重复相同的数字

时间:2015-02-03 13:57:27

标签: ios swift random sprite-kit

我有一个包含8 CGPoints的数组:

let easyArray = [CGPointMake(0,0), CGPointMake(126.6,0), CGPointMake(253.4,0), CGPointMake(0,197.5), CGPointMake(126.7,197.5), CGPointMake(253.4,197.5), CGPointMake(0,395), CGPointMake(126.7,395), CGPointMake(253.4,395)]

然后我有一个使用随机函数移动到其中一个点的对象:

//Moving the object
let easyPos = randomInt(0,8)
let moveSelector = SKAction.moveTo(easyArray5s[easyPos], duration: 0)
easySelector5s.runAction(moveSelector)

//Random Function
func randomInt(min: Int, max:Int) -> Int {
return min + Int(arc4random_uniform(UInt32(max - min + 1)))
}

我遇到的问题是,有时对象会移动到一个位置,然后再次停留在同一位置。换句话说,相同的位置将一个接一个地使用两次。我怎样才能做到这一点,以免发生这种情况。我正在使用swift。

2 个答案:

答案 0 :(得分:1)

将选定的点移动到数组的末尾(最后一个点移动到所选位置 - 即切换它们)。并且不要在下一个随机选择中包含最后一个点(只需从arc4random_uniform中删除+1)。

答案 1 :(得分:0)

好像你想做 -

return min + Int(arc4random_uniform(UInt32(max - min))) + 1