Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted as C++ by Beno ( 7 years ago )
std::set<Tile> Map::get_tiles_in_radius(const int i, const int j, const int r) const
{
std::set<Tile> s;
s.insert(tile_at(i,j));
Coordinate tracker(i,j);
for (int t=1;t<r+1;t++)
{
tracker.x=j-t;
for (int g=0;g<6;g++)
{
DIRECTION dir;
switch(g)
{
case 0:
dir=DIRECTION::SOUTH_EAST;
break;
case 1:
dir=DIRECTION::SOUTH;
break;
case 2:
dir=DIRECTION::SOUTH_WEST;
break;
case 3:
dir=DIRECTION::NORTH_WEST;
break;
case 4:
dir=DIRECTION::NORTH;
break;
case 5:
dir=DIRECTION::NORTH_EAST;
break;
}
for (int h=0;h<i;h++)
{
s.insert(tile_at(tracker));
tracker=std::get<0>(tile_in_direction(tracker,dir));
}
}
}
return s;
}
Revise this Paste