Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在objective-c中随机化数组中的4个对象,但我需要根据设定的数字进行计数和随机化对象_Objective C_Nsarray - Fatal编程技术网

在objective-c中随机化数组中的4个对象,但我需要根据设定的数字进行计数和随机化对象

在objective-c中随机化数组中的4个对象,但我需要根据设定的数字进行计数和随机化对象,objective-c,nsarray,Objective C,Nsarray,好的,我会尽量让它不要像标题那样让人困惑 我有4个UIImageView,view1、view1、view3和view4。我需要根据我正在进行的游戏中某个玩家的难度和深度,对他们进行随机分组,并对计数进行随机分组 所以我有一个数组,比如说,[currentSequence],它包含这4个UIImageView。嗯,我需要能够完全随机化。我说,这可能是里面的东西。vie1、vie1、vie3、view3、view3、view4、view4、view1、view1、view2等 这是一个记忆匹配游戏

好的,我会尽量让它不要像标题那样让人困惑

我有4个UIImageView,view1、view1、view3和view4。我需要根据我正在进行的游戏中某个玩家的难度和深度,对他们进行随机分组,并对计数进行随机分组

所以我有一个数组,比如说,[currentSequence],它包含这4个UIImageView。嗯,我需要能够完全随机化。我说,这可能是里面的东西。vie1、vie1、vie3、view3、view3、view4、view4、view1、view1、view2等

这是一个记忆匹配游戏。所以秩序很重要。我需要将这些物体随机放置一次并保持,直到玩家进入新一轮并制作新的一组时,我将它们清除

我还计划在一轮中使用有限数量的序列,如6。因此,如果我们在序列1,将出现的视图可以是,view1,view2,view2,view4。然后序列二以相同的顺序开始,但它将添加更多的对象

想想老把戏吧,西蒙

现在,我只需要一个解决方案,对有限的一组对象(4)进行随机计数和对象


谢谢。

试试这样:

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];
}

虽然他没有洗牌,但物体可以重复,也不必全部出现。我尝试了后一种随机化的解决方案,这确实随机化了,但我想我可能还不是完全清楚。我只使用了4个UIImageView,但我不仅需要将它们随机化,还需要(随机)乘以数组中这些ImageView的引用数。我有视图1、视图2、视图3和视图4。我需要这是完全随机的一个预先确定的数字。我计划根据用户所处的轮数递增该数字。因此,如果我在第1轮,在该数组中有一个上限,比如说,20个视图。第二轮?设置为30,等等。所以这4个视图需要以随机方式重复。比如说,在第一轮中,在数组中,它是view1、view2、view3、view3、view1、view1、view4、view4、view2、view2、view2、view4等等。然后下一轮,我需要更多这些。但在两轮之间,我计划有一套6个序列。每个序列还将添加(例如)要高亮显示的X个视图,以便用户以适当的顺序复制轻敲。谢谢我希望这有帮助。我想我已经想出了一个解决办法。我稍后会尝试它,希望能用我的解决方案更新并结束它,如果可以的话works@MikeS好东西,希望你的解决方案有效:)
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];
}