Я создаю игру с помощью SpriteKit. У меня есть 8 разных цветных шаров, расположенных на 8 различных обозначенных CGPoints на экране. Как только пользователь доберется до определенного балла, я хотел бы рандомизировать цвета шаров, чтобы все были разными цветами, но я хотел бы получить этот результат без дублирования цветов и типов.Ранжирование значений объекта без дублирования
Я добавил шары в качестве объектов в глобальный NSMutableArray и установил метод для перечисления массива. Затем я написал метод arc4random, чтобы выбрать случайный тип цвета из массива, а затем применить его к старому типу шара. К сожалению, я получаю несколько дубликатов. Есть ли у кого-нибудь предложения помочь мне рандомизировать мои типы мячей без дублирования?
FYI, я потратил достаточно времени, чтобы прочитать другие методы рандомизации, и ни один из них, кажется, не обязательно отвечает на мой вопрос. Я нахожусь в крайнем сроке. Может кто-нибудь, пожалуйста, помогите мне?
-(void)ballRotation{
NSLog(@"initial ball list: %@",_ballList);
[_ballList enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
int selectedIndex = arc4random() % _ballList.count;
NSLog(@"Selected Index: %i", selectedIndex);
//get a remain list of temp
Ball *newBall = _ballList[idx];
//get the ball at the current _ballList index
Ball *oldBall = _ballList[selectedIndex];
//change the ball in the old position to have the type & texture of the randomly selected ball
oldBall.Type = newBall.Type;
oldBall.texture = newBall.texture;
NSLog(@"new ball list: %lu", newBall.Type);
NSLog(@"new ball list: %@", newBall.texture);
[_ballList removeObjectAtIndex:selectedIndex];
}];
}
Возможный дубликат [Случайное число без повторения] (http://stackoverflow.com/questions/11578816/random-number-without-repeating) – trudyscousin