To show 25 images randomly out of 40 images in a grid view

前端 未结 4 974
醉梦人生
醉梦人生 2021-01-24 15:45

I am creating an iphone app in which I need to create a grid view of 25 images. I am doing that by taking 25 images in an array, and displaying them by using for loop by changin

相关标签:
4条回答
  • 2021-01-24 16:08

    Create an array of 41 numbers (0-40), shuffle them using a partial Fisher-Yates shuffle and use the first 25 elements of the array.

    Pseudo-code (random(x) returns a random number from 0 to x inclusive):

    array = [0, 1, 2, ..., 40]
    for i in 0, 1, ..., 24 do
        swap array[i], array[i + random(40 - i)]
    truncate array to 25 elements.
    
    0 讨论(0)
  • 2021-01-24 16:08

    You essentially want to randomize the order of the images and then pick the first 25. I don't know exactly how you are arranging your data structures, but here is an example with integers:

    for (int x = 39; x > 0; x--)
    {
      int tmp = element[x];
      int newLoc = random()%(x+1);
      element[x] = element[newLoc];
      element[newLoc] = tmp;
    }
    

    I'm assuming that element contains your values that you want to mix up.

    0 讨论(0)
  • 2021-01-24 16:10
    int random = arc4random() % 40;
    

    gives a random number between 0 to 40, from that you choose the image

    0 讨论(0)
  • 2021-01-24 16:20
    1. create a set
    2. create a random number between 0 and 40 and put it in set
    3. check set size
    4. if set size is less than 25, go to step 2
    5. convert set to array

    This is one way to do it and certainly there are better and faster ways, but if you want simplicity, use something like this or peoro's suggestion.

    0 讨论(0)
提交回复
热议问题