Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int* usedNumbers=(int*) calloc(_totalCount, sizeof(int)); //создание динамического массива используемых номеров изображений
- for(int i=0;i<_totalCount;i++)//цикл генерации изображений
- {
- usedNumbers[i]=-1;//отечаем номер в i-й позиции, как неиспользуемый
- while(1)//цикл подбора номера изображения
- {
- int value=rand()%_totalCount;//генерируем случайное число от 0 до _totalCount-1
- int used=0;//признак уникальности номера
- for(int j=0;j<=i;j++)//перебираем все сохранённые номера
- if(usedNumbers[j]==value)//если номер ранее встречался
- used=1;//помечаем сгенерированное число как неуникальное
- if(!used)//если сгенерированное число уникальное (ранее не использовалось)
- {
- for(int j=0;j<2;)//цикл подбора позиции для двух экземпляров изображения
- {
- int x=rand()%MapSize;//случайно генерируем кооридинату x изображения
- int y=rand()%MapSize;//случайно генерируем координату y изображения
- if(Images[x][y]==NULL)//если в позиции (x;y) ещё нет изображения
- {
- Images[x][y]=Bitmaps[value];//помещаем туда изображение под сгенерированным номером
- j++;//увеличиваем счетчик экземпляров
- }
- }
- usedNumbers[i]=value;//помещаем номер изображения в список использованных
- break;//выходим из цикла подбора изображения
- }
- }
- }
- free(usedNumbers);//освобождаем память, выделенную на массив использованных номеров изображений
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement