Arrays 如何按时间顺序在数组中移动?

Arrays 如何按时间顺序在数组中移动?,arrays,swift,func,Arrays,Swift,Func,我正在开发一个拖放游戏,用户将标签移动到相应的节点 我目前有以下代码: func setupDragLabel(){ let random = Int(arc4random_uniform(1)) if random == 0 { let numbersArray = ["one", "two", "three", "four", "five"] let index = Int(arc4random_unifrom(UInt32(numbersA

我正在开发一个拖放游戏,用户将标签移动到相应的节点

我目前有以下代码:

func setupDragLabel(){
    let random = Int(arc4random_uniform(1))

    if random == 0 {
        let numbersArray = ["one", "two", "three", "four", "five"]
        let index = Int(arc4random_unifrom(UInt32(numbersArray.count)))
        label.text = numbersArray[index]
        label.name = "numbers"
        }
    else{
        let lettersArray = ["a", "b", "c", "d", "e"]
        let index = Int(arc4random_uniform(UInt32(lettersArray.count)))
        label.text = lettersArray[index]
        label.name = "letters"
    }
    ((self.addChild(label))
}
然后结束触摸:

override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
    if label.name == "numbers"{
        if numbersBin.frame.contains(label.position){
            label.removeFromParent()
            setupDragLabel()
        }
    }
    if label.name == "letters" {
        if lettersBin.frame.contains(label.position){
            label.removeFromParent()
            setupDragLabel)
        }
    }
}
override func touchesend(touch:Set,带有事件:UIEvent?){
如果label.name==“数字”{
如果numbersBin.frame.contains(label.position){
label.removeFromParent()
setupDragLabel()
}
}
如果label.name==“字母”{
如果框架中的字母包含(标签位置){
label.removeFromParent()
(德拉格拉贝尔)
}
}
}

目前,该函数一直在运行,从数组中随机选择。但是,我想对其进行设置,使函数
setupDragLabel()
在每个数组中移动,当它到达两个数组的末尾时,它将移动到下一个屏幕。我将如何更改当前代码(我知道这意味着删除arc4random,但不确定如何在顶部修复该代码),以及我需要编写什么函数才能继续操作

我建议将
numbersArray
lettersArray
设置为变量,然后从这些数组中删除已使用的元素

var numbersArray = ["one", "two", "three", "four", "five"]
var lettersArray = ["a", "b", "c", "d", "e"]

func setupDragLabel(){
    let random = Int(arc4random_uniform(1))

    if random == 0, numbersArray.count > 0 {
        let index = Int(arc4random_uniform(UInt32(numbersArray.count)))
        label.text = numbersArray[index]
        numbersArray.remove(at: index)
        label.name = "numbers"
        self.addChild(label)
    }
    else if lettersArray.count > 0 {
        let index = Int(arc4random_uniform(UInt32(lettersArray.count)))
        label.text = lettersArray[index]
        label.name = "letters"
        self.addChild(label)
    }
}

这似乎是可行的,但我需要写什么才能让它选择一个新的整数(例如:如果它选择1,并且lettersArray.count为0,我应该写什么才能让它随机选择另一个整数,直到它达到1)?如果
lettersArray.count
为0,则不会执行任何操作,因为你有这个条件
lettersArray.count>0
对,所以我需要一行写着
如果random==0,numbersArray.count=0
,让它返回到let random=Int。。。我该怎么写呢?你的意思是:如果
random==0
numbersArray.count==0
那么你想从
lettersArray
中随机选择吗?是的,这正是我的意思!