所以我要做的就是调用一个函数,该函数只运行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()
}
感谢。
答案 0 :(得分:3)
请记住,函数是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()
}
答案 1 :(得分:1)
使用arc4random()
或arc4random_uniform()
生成随机数。使用例如切换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)
}
}
答案 2 :(得分:1)
看看这里:
https://stackoverflow.com/a/24098445/4906484
然后:
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)
}