我想知道如何使它不會連續兩次被選中。可以說圖片給出了一個數字1-3。如果選擇圖片1,則圖片1將不會被選擇。如果選擇圖片3,則可以再次選擇圖片1,等等。創建一個非重複的隨機數
我知道我不得不使用while
聲明,但我不知道如何。繼承人我有什麼截至目前:
- (void)chooseBackgroundImage{
if(thisNumber % 10 == 0){
int chooseBackgroundImage = arc4random() % 7;
switch (chooseBackgroundImage) {
case 0:
backgroundImage.image = [UIImage imageNamed:@"CyanToYellowBackground.png"];
break;
case 1:
backgroundImage.image = [UIImage imageNamed:@"GreenToBlueBackground.png"];
break;
case 2:
backgroundImage.image = [UIImage imageNamed:@"OrangeToGreenBackground.png"];
break;
case 3:
backgroundImage.image = [UIImage imageNamed:@"OrangeToPurpleBackground.png"];
break;
case 4:
backgroundImage.image = [UIImage imageNamed:@"PurpleToCyanBackground.png"];
break;
case 5:
backgroundImage.image = [UIImage imageNamed:@"RedToBlueBackground.png"];
break;
case 6:
backgroundImage.image = [UIImage imageNamed:@"YellowToRedBackground.png"];
break;
}
}
}
我也嘗試使用:
- (void)chooseBackgroundImage{
if(slogansGenerated % 10 == 0){
int chooseBackgroundImage = arc4random() % 7;
while(chooseBackgroundImage == oldChooseBackgroundImage){
switch (chooseBackgroundImage) {
case 0:
backgroundImage.image = [UIImage imageNamed:@"CyanToYellowBackground.png"];
break;
case 1:
backgroundImage.image = [UIImage imageNamed:@"GreenToBlueBackground.png"];
break;
case 2:
backgroundImage.image = [UIImage imageNamed:@"OrangeToGreenBackground.png"];
break;
case 3:
backgroundImage.image = [UIImage imageNamed:@"OrangeToPurpleBackground.png"];
break;
case 4:
backgroundImage.image = [UIImage imageNamed:@"PurpleToCyanBackground.png"];
break;
case 5:
backgroundImage.image = [UIImage imageNamed:@"RedToBlueBackground.png"];
break;
case 6:
backgroundImage.image = [UIImage imageNamed:@"YellowToRedBackground.png"];
break;
}
int oldChooseBackgroundImage = chooseBackroundImage
}
}
但似乎沒有任何工作。有什麼辦法可以創建一個非重複的隨機數字嗎?
我想我知道你想要什麼,添加一個iVar,即currentSelection,然後使用if語句,檢查當前圖片是新選中的圖片 – DogCoffee