- if ('N' == dirs[i_dirs] && pos_yx.y > 0)
- {
- neighbor_scores[i_dirs] = score_map[pos_i - world.map.size.x];
- }
- else if ('E' == dirs[i_dirs] && pos_yx.x < world.map.size.x - 1)
- {
- neighbor_scores[i_dirs] = score_map[pos_i + 1];
- }
- else if ('S' == dirs[i_dirs] && pos_yx.y < world.map.size.y - 1)
- {
- neighbor_scores[i_dirs] = score_map[pos_i + world.map.size.x];
- }
- else if ('W' == dirs[i_dirs] && pos_yx.x > 0)
- {
- neighbor_scores[i_dirs] = score_map[pos_i - 1];
- }
+ neighbors[0] = score_map[pos_i - world.map.size.x];
+ }
+ if (open_north && open_east)
+ {
+ neighbors[1] = score_map[pos_i - world.map.size.x + 1];
+ }
+ if (open_east)
+ {
+ neighbors[2] = score_map[pos_i + 1];
+ }
+ if (open_east && open_south)
+ {
+ neighbors[3] = score_map[pos_i + 1 + world.map.size.x];
+ }
+ if (open_south)
+ {
+ neighbors[4] = score_map[pos_i + world.map.size.x];
+ }
+ if (open_south && open_west)
+ {
+ neighbors[5] = score_map[pos_i + world.map.size.x - 1];
+ }
+ if (open_west)
+ {
+ neighbors[6] = score_map[pos_i - 1];
+ }
+ if (open_west && open_north)
+ {
+ neighbors[7] = score_map[pos_i - 1 - world.map.size.x];