Advertisement
Guest User

Untitled

a guest
May 21st, 2018
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.39 KB | None | 0 0
  1.     int* usedNumbers=(int*) calloc(_totalCount, sizeof(int)); //создание динамического массива используемых номеров изображений
  2.     for(int i=0;i<_totalCount;i++)//цикл генерации изображений
  3.     {
  4.         usedNumbers[i]=-1;//отечаем номер в i-й позиции, как неиспользуемый
  5.         while(1)//цикл подбора номера изображения
  6.         {
  7.             int value=rand()%_totalCount;//генерируем случайное число от 0 до _totalCount-1
  8.             int used=0;//признак уникальности номера
  9.             for(int j=0;j<=i;j++)//перебираем все сохранённые номера
  10.                 if(usedNumbers[j]==value)//если номер ранее встречался
  11.                     used=1;//помечаем сгенерированное число как неуникальное
  12.             if(!used)//если сгенерированное число уникальное (ранее не использовалось)
  13.             {
  14.                 for(int j=0;j<2;)//цикл подбора позиции для двух экземпляров изображения
  15.                 {
  16.                     int x=rand()%MapSize;//случайно генерируем кооридинату x изображения
  17.                     int y=rand()%MapSize;//случайно генерируем координату y изображения
  18.                     if(Images[x][y]==NULL)//если в позиции (x;y) ещё нет изображения
  19.                     {
  20.                         Images[x][y]=Bitmaps[value];//помещаем туда изображение под сгенерированным номером
  21.                         j++;//увеличиваем счетчик экземпляров
  22.                     }
  23.                 }
  24.                 usedNumbers[i]=value;//помещаем номер изображения в список использованных
  25.                 break;//выходим из цикла подбора изображения
  26.             }            
  27.         }
  28.     }
  29.     free(usedNumbers);//освобождаем память, выделенную на массив использованных номеров изображений
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement