每次按下按钮时,我都会迅速生成一个随机数(仅0-2)。但是我不希望它连续两次生成相同的数字。
这是我所做的,但是没有用。

var currentNumber:Int = 5
var randomNumber:Int = 0

do {
    randomNumber = Int(arc4random_uniform(UInt32(3)))
} while randomNumber == currentNumber

currentNumber = randomNumber

最佳答案

您需要将randomNumber设置为ViewController的属性,以便在按键之间记住该属性。每次只有2个有效的随机数,因此请生成一个在01范围内的数字,如果它与您之前的数字匹配,则将其更改为2

class ViewController: UIViewController {
    // Give randomNumber an initial value
    var randomNumber = Int(arc4random_uniform(UInt32(3)))

    @IBAction func buttonPressed(button: UIButton) {
        let currentNumber = randomNumber
        randomNumber = Int(arc4random_uniform(UInt32(2)))
        if currentNumber == randomNumber {
            randomNumber = 2
        }
    }
}


这样做的优点是每次按下按钮仅需要1个随机数。

关于ios - 如何确保生成的随机数不等于下一个生成的数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31487302/

10-10 21:08