好的,我会试着让它不像标题那样令人困惑。
我有4个UIImageViews,view1,view1,view3和view4。在我正在制作的游戏中,我需要将它们随机化并根据玩家所处的某个难度和等级随机化计数。
所以我有一个数组,比如说,[currentSequence]它包含了4个uiimageviews。好吧,我需要能够完全随机化它。说,这可能是它的内容。 vie1,view1,vie3,view3,view3,view4,view4,view1,view1,view2等等。
这是一款记忆匹配游戏。所以订单很重要。我需要将这些对象随机化一次并保持,直到我在玩家进入新一轮并制作新套装时擦除它们。
我还计划在一轮中使用有限数量的序列,例如6.因此,如果我们在序列1处,将出现的视图可以是view1,view2,view2,view4。然后序列两个以相同的顺序开始,但它会添加更多的对象。
想想老游戏,西蒙。
现在我只需要一个解决方案来随机化计数和对象,对于一组有限的对象(4)。
感谢。
答案 0 :(得分:0)
尝试这样的事情:
NSUInteger capacity = 20;
NSArray *objects = @[@(1), @(2), @(3), @(4)];
NSMutableArray *randomized = [NSMutableArray arrayWithCapacity:capacity];
for (int i = 0; i < capacity; i++) {
NSUInteger rnd = floor(arc4random() % 4);
randomized[i] = objects[rnd];
}
但这不会随机化放置在randomized
数组中的对象数量。
要将其随机化,请尝试以下方法:
NSArray *objects = @[@(1), @(2), @(3), @(4)];
NSMutableArray *randomized = [@[] mutableCopy];
NSUInteger terminationUnlikeliness = 10; /* increase to make termination less likely */
for (int i = 0; floor(arc4random() % terminationUnlikeliness) != 0; i++) {
NSUInteger rnd = floor(arc4random() % 4);
randomized[i] = objects[rnd];
}