swift:如何从1到3个项目中随机删除?

swift:如何从1到3个项目中随机删除?,swift,random,hidden,arc4random,Swift,Random,Hidden,Arc4random,我的代码只随机删除一枚硬币。我如何从1到3枚硬币中随机取出 @IBAction func endTurn(sender: UIButton!) { if coins.count > 0 { // @IBOutlet var coins: [UIButton]! (21 coins) let index: Int = Int(arc4random_uniform(UInt32(coins.count))) coins[index].hidden = t

我的代码只随机删除一枚硬币。我如何从1到3枚硬币中随机取出

@IBAction func endTurn(sender: UIButton!) {
    if coins.count > 0 { // @IBOutlet var coins: [UIButton]! (21 coins)
        let index: Int = Int(arc4random_uniform(UInt32(coins.count)))
        coins[index].hidden = true
        self.coins.removeAtIndex(index)
        if coins.isEmpty {
            println("GameOver")
        }
    }
}
试试这个

let numberToDelete = Int(arc4random_uniform(UInt32(3))) + 1

for i in 0..<numberToDelete{
    let indexToDelete = Int(arc4random_uniform(UInt32(coins.count)))
    coins.removeAtIndex(indexToDelete)
    if coins.isEmpty{
        break;
    }
}
if coins.isEmpty{
    println("GameOver")
}
let numberToDelete=Int(arc4random_uniform(UInt32(3)))+1

对于0中的i..对于随机数,我建议使用此扩展名

extension Int {
    static func random(range: Range<Int> ) -> Int {
        var offset = 0

        if range.startIndex < 0 {
            offset = abs(range.startIndex)
        }

        let min = UInt32(range.startIndex + offset)
        let max = UInt32(range.endIndex   + offset)

        return Int(min + arc4random_uniform(max - min)) - offset
    }
}

在1和3之间随机选择一个for循环调用你的代码?这里已经回答了注意:使用arc4random而不是rand这很好,恭喜。但是我认为如果range.startIndex<0{
var i = Int.random(1...5)