每次按下按钮时,我都会在swift中生成一个随机数(仅为0-2)。但我不希望它连续两次生成相同的数字。 这就是我所做的,但它不起作用。
var currentNumber:Int = 5
var randomNumber:Int = 0
do {
randomNumber = Int(arc4random_uniform(UInt32(3)))
} while randomNumber == currentNumber
currentNumber = randomNumber
答案 0 :(得分:0)
请注意,如果您阻止相同的数字连续出现两次,则您的序列不再是随机/伪随机数。但是,如果必须,您可以将最新值与之前的值进行比较,然后重试,直到它们不同为止。
答案 1 :(得分:0)
您需要将randomNumber
作为ViewController
的属性,以便在按下按钮时记住它。每次只有2个有效随机数,因此请生成0
到1
范围内的数字,如果它与之前的数字匹配,则将其更改为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
}
}
}
这样做的好处是每按一次按钮只需要一个随机数。