Welcome, guest! Login / Register - Why register?
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

Your Name: Code Language: