0

すべての画像を一度通過するまで画像を繰り返さないランダム画像ジェネレーターを作成するにはどうすればよいですか?

例えば:

-(IBAction)ランダム画像ボタン {

int randomimages = rand() % 5;

switch (randomimages) {

    case 0:
        imageview.image = [UIImage imageNamed:@"IMAGE_001.png"];
        break;
    case 1:
        imageview.image = [UIImage imageNamed:@"IMAGE_002.png"];
        break;
    case 2:
        imageview.image = [UIImage imageNamed:@"IMAGE_003.png"];
        break;
    case 3:
        imageview.image = [UIImage imageNamed:@"IMAGE_004.png"];
        break;
    case 4:
        imageview.image = [UIImage imageNamed:@"IMAGE_005.png"];
        break;

default:

        break;

}

画像が 1、4、2、5、4、3 の順に表示された場合、5 枚の画像すべてが表示されるまで「4」が再び表示されないようにするにはどうすればよいですか?

ご協力いただきありがとうございます!

4

2 に答える 2

1

画像名を NSMutableArray に保存し、配列をシャッフルします。たとえば、 この SO answerのようなメソッドを介して

次に、配列をループします。

于 2012-07-17T13:57:53.107 に答える
0

NSMutableArray を作成し、0、1、2、3、4 を配置してから、乱数が選択されるたびに次のように削除します。

[myNSMutableArray removeObjectAtIndex:myRandNumber];


To fill the gap, all elements beyond index are moved by subtracting 1 from their index.

次に、次のようにして新しいランダムを選択するだけです。

int randomimages = rand() % 4; //4 would of course be a int var that you substract everytime a new random is generated.

等々。

于 2012-07-17T13:58:55.047 に答える