+static char rand_target_dir(char * dirs, uint16_t cmp, uint16_t * targets)
+{
+ char candidates[N_DIRS];
+ uint8_t n_candidates = 0;
+ uint8_t i;
+ for (i = 0; i < N_DIRS; i++)
+ {
+ if (cmp == targets[i])
+ {
+ candidates[n_candidates] = dirs[i];
+ n_candidates++;
+ }
+ }
+ return n_candidates ? candidates[rrand() % n_candidates] : 0;
+}
+
+
+