Спойлер
Код: Выделить всё
void view_flasher_0(){
}
void view_flasher_1(){
}
void view_flasher_2(){
}
void view_flasher_3(){
}
void view_flasher_4(){
}
void view_flasher_5(){
}
typedef void (*pfun_t)(void);
pfun_t rnd_arr[] = {
view_flasher_0,
view_flasher_1,
view_flasher_2,
view_flasher_3,
view_flasher_4,
view_flasher_5,
};
#define MAX_EFFECTS (sizeof(rnd_arr)/sizeof(rnd_arr[0]))
void swap(pfun_t *val1, pfun_t *val2){
pfun_t t = *val1;
*val1 = *val2;
*val2 = t;
}
...........................
for(int i=0; i<100; i++){ // Перемешиваем
uint8_t a = rand()%MAX_EFFECTS;
uint8_t b = rand()%MAX_EFFECTS;
swap(&rnd_arr[a], &rnd_arr[b]);
}
for(uint8_t i=0; i<MAX_EFFECTS; i++){ // Вывод эффектов
rnd_arr[i]();
}


