作者:青烟_I乀n-a_396 | 来源:互联网 | 2022-11-30 02:32
1> Robert Dresl..:
使用随机播放
我想你只需要从ballArray中获得5个不同的随机池球名称.所以你不需要生成任何随机数.只是buttonPressed
从改组的ballArray创建一个常量
let shuffledBallArray = ballArray.shuffled()
现在只需设置如下图像:
poolBallView1.image = UIImage(named: shuffledBallArray[0])
poolBallView2.image = UIImage(named: shuffledBallArray[1])
...
所以你的buttonPressed
行动应该是这样的:
@IBAction func buttonPressed(_ sender: UIButton) {
let shuffledBallArray = ballArray.shuffled()
poolBallView1.image = UIImage(named: shuffledBallArray[0])
poolBallView2.image = UIImage(named: shuffledBallArray[1])
poolBallView3.image = UIImage(named: shuffledBallArray[2])
poolBallView4.image = UIImage(named: shuffledBallArray[3])
poolBallView5.image = UIImage(named: shuffledBallArray[4])
}
创建唯一的随机数
或者,您可以创建功能,为您提供5个唯一的随机数
func generateNumbers(repetitions: Int, maxValue: Int) -> [Int] {
var numbers = [Int]()
for _ in 1...repetitions {
var n: Int
repeat {
n = Int.random(in: 1...maxValue)
} while numbers.contains(n)
numbers.append(n)
}
return numbers
}
并且buttonPressed
只是为这个随机数组创建常量并设置图像而不保存任何带有硬编码50个名字的ballArray中的图像名称
@IBAction func buttonPressed(_ sender: UIButton) {
let randomNumbers = generateNumbers(repetitions: 5, maxValue: 50)
poolBallView1.image = UIImage(named: "poolBall\(randomNumbers[0])")
poolBallView2.image = UIImage(named: "poolBall\(randomNumbers[1])")
poolBallView3.image = UIImage(named: "poolBall\(randomNumbers[2])")
poolBallView4.image = UIImage(named: "poolBall\(randomNumbers[3])")
poolBallView5.image = UIImage(named: "poolBall\(randomNumbers[4])")
}