gpt4 book ai didi

swift - 如何在 Swift 中每 10 秒重复生成一个 1 到 75 之间的随机数

转载 作者:行者123 更新时间:2023-11-28 12:21:18 25 4
gpt4 key购买 nike

我在 Swift 中有以下代码,试图获得一个简单的随机数生成器作为游戏模拟器。

var randomNumber = 0

override func viewDidLoad() {
super.viewDidLoad()

randomNumber = Int(arc4random_uniform(74) + 1)

label.text = "\(randomNumber)"

}

我是 Swift 编程的新手,但我知道使用 timer()import Foundation 来使用定时器功能,但我不确定如何实现和使其每 10 秒在标签中出现一个新数字。感谢您的帮助。

最佳答案

使用 10 秒间隔的 Timernumbers 数组中提取一个新数字。从数组中删除号码,这样您就不会两次调用同一个号码。当按下 stop 按钮,或者您的号码不足时,调用 timer 上的 invalidate 来停止它。

class BingoCaller: UIViewController {
@IBOutlet weak var label: UILabel!

var numbers = Array(1...75)
let letters = ["B", "I", "N", "G", "O"]
var timer: Timer?

override func viewDidLoad() {
timer = Timer.scheduledTimer(withTimeInterval: 10, repeats: true) { timer in
let index = Int(arc4random_uniform(UInt32(self.numbers.count)))
let number = self.numbers.remove(at: index)
self.label.text = "\(self.letters[(number - 1) / 15])-\(number)"
if self.numbers.isEmpty {
timer.invalidate()
}
}
}

@IBAction func stop(_ button: UIButton) {
timer?.invalidate()
}
}

后续步骤的建议:

  1. 将拉取的数字添加到第二个数组中。使用该数组填充 tableView,以便 Gran 能够在有人喊“宾果游戏!”时查看数字。
  2. 使用 AVSpeechSynthesizer 让 iPhone 真正说出数字。
  3. 添加一个重置按钮以开始新游戏。将 numbers 初始化为 Array(1...75),将 calledNumbers 初始化为 [] 并重新开始。将 Timer 循环移动到它自己的函数中是个好主意,这样它就可以从 start 按钮调用。

关于swift - 如何在 Swift 中每 10 秒重复生成一个 1 到 75 之间的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44740198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com