position Maze::get_opp_side(position p){ if (!edge_condition(p)){ if (data[p + 1] == SPACE) return p - 1; if (data[p - 1] == SPACE) return p + 1; if (data[p + m_size] == SPACE) return p - m_size; if (data[p - m_size] == SPACE) return p + m_size; } return 0; }
int body_of_program (struct field **space_array, struct field **array_b, struct config_info *info) { if (cp_array (space_array,array_b) < 0) { exit(-2); printf("F*ck! \n"); } if (info->edge_conditions == 0) edge_condition(array_b); else edge_cond_sample(array_b,info->edge_conditions); climate_change(space_array, array_b); status(space_array, array_b,info); return 0; }
void Maze::AddWall(position place){ if (!edge_condition(place) && !In_wall_list(place) && data[place] != SPACE) m_wall_list.push_back(place); }
void Maze::AddSpace(position place){ if (!edge_condition(place)) data[place] = SPACE; }