Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 如何使函数选择随机路径?_Swift - Fatal编程技术网

Swift 如何使函数选择随机路径?

Swift 如何使函数选择随机路径?,swift,Swift,所以我要做的是调用一个函数,它只运行4个可能函数中的1个,所以它随机决定执行哪一个 在本例中,我尝试随机选择的4个函数是moveUp()moveDown()moveRight()和moveLeft() 这就是我现在所拥有的,它并不是真的运作良好。我找不到任何帮助 func moveComputerPlayer() { //This is where I have no idea what to do. "randomly choose to run: moveRight(), moveLeft

所以我要做的是调用一个函数,它只运行4个可能函数中的1个,所以它随机决定执行哪一个

在本例中,我尝试随机选择的4个函数是moveUp()moveDown()moveRight()和moveLeft()

这就是我现在所拥有的,它并不是真的运作良好。我找不到任何帮助

func moveComputerPlayer() {

//This is where I have no idea what to do.
"randomly choose to run: moveRight(), moveLeft(), moveUp(), moveDown()


}
谢谢。

使用
arc4random()
arc4random\u uniform()
生成随机数。例如,使用switch case语句将数字与其中一个函数相关联

就你而言:

func moveComputerPlayer() {
let rd = Int(arc4random_uniform(4) + 1)
switch rd {
case 1:
    moveRight()
case 2:
    moveLeft()
case 3:
    moveUp()
case 4:
    moveDown()
default:
   print(rd)
}

}
使用
arc4random()
arc4random\u uniform()
生成随机数。例如,使用switch case语句将数字与其中一个函数相关联

就你而言:

func moveComputerPlayer() {
let rd = Int(arc4random_uniform(4) + 1)
switch rd {
case 1:
    moveRight()
case 2:
    moveLeft()
case 3:
    moveUp()
case 4:
    moveDown()
default:
   print(rd)
}

}
  • 创建一个可能的函数/方法数组
  • 选择一个随机元素
  • 调用所选函数
  • 记住,函数是Swift中的类型

    func moveUp() {}
    func moveDown() {}
    func moveLeft() {}
    func moveRight() {}
    
    func moveComputerPlayer() {
        let moves = [
            moveUp,
            moveDown,
            moveLeft,
            moveRight,
        ]
    
        let randomIndex = Int(arc4random_uniform(UInt32(moves.count)))
        let selectedMove = moves[randomIndex]
        selectedMove()
    }
    
  • 创建一个可能的函数/方法数组
  • 选择一个随机元素
  • 调用所选函数
  • 记住,函数是Swift中的类型

    func moveUp() {}
    func moveDown() {}
    func moveLeft() {}
    func moveRight() {}
    
    func moveComputerPlayer() {
        let moves = [
            moveUp,
            moveDown,
            moveLeft,
            moveRight,
        ]
    
        let randomIndex = Int(arc4random_uniform(UInt32(moves.count)))
        let selectedMove = moves[randomIndex]
        selectedMove()
    }
    
    请看这里:

    然后:

      let diceRoll = Int(arc4random_uniform(4) + 1)
    
    switch (diceRoll) {
        case 1: 
            moveRight()
        case 2:
            moveLeft()
        case 3:
            moveUp()
        case 4:
            moveDown()
        default: 
            print("Something was wrong:" + diceRoll)
    }
    
    请看这里:

    然后:

      let diceRoll = Int(arc4random_uniform(4) + 1)
    
    switch (diceRoll) {
        case 1: 
            moveRight()
        case 2:
            moveLeft()
        case 3:
            moveUp()
        case 4:
            moveDown()
        default: 
            print("Something was wrong:" + diceRoll)
    }
    

    这也太好了!这也太好了!