0

わかりました、これをタイトルほど混乱させないようにします。

私は4つのUIImageViews、view1、view1、view3、view4を持っています。そして、私が取り組んでいるゲームで、特定の難易度とプレーヤーのレベルの深さに基づいて、それらをランダム化し、カウントをランダム化する必要があります。

[currentSequence] などの配列があり、これらの 4 つの uiimageviews が含まれています。まあ、私はそれを完全にランダム化できる必要があります。たとえば、これがその中に含まれている可能性があります。vie1、view1、vie3、view3、view3、view4、view4、view1、view1、view2 など。

メモリーマッチングゲームです。だから順番が大事。これらのオブジェクトを一度ランダム化して、プレイヤーが新しいラウンドに入り、新しいセットが作成されたときにそれらを一掃するまで保持する必要があります。

また、1 ラウンドのシーケンス数を 6 などに制限する予定です。したがって、シーケンス 1 の場合、表示されるビューは、view1、view2、view2、view4 のいずれかになります。次に、シーケンス 2 が同じ順序で開始されますが、さらにいくつかのオブジェクトが追加されます。

古いゲームを考えてみてください、サイモン。

現時点では、オブジェクトの限られたセットに対して、カウントとオブジェクトをランダム化するためのソリューションが必要です (4)。

ありがとう。

4

1 に答える 1

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];
}
于 2013-06-21T06:01:08.010 に答える