Example #1
0
void Well::addFigure(const Figure &f)
{
    for(int y=0; y<4; ++y)
        for(int x=0; x<4; ++x)
        {
            int wx = x + f.x(),
                wy = y + f.y();
            if(wx >= 0 && wx < width_ && wy >= 0 && wy < height_ )
                map_[wy][wx] = map_[wy][wx] | f.map(x, y);
        }
}
Example #2
0
bool Well::isCollision(const Figure &f) const
{
    for(int y=0; y<4; ++y)
        for(int x=0; x<4; ++x)
        {
            if(f.map(x, y))
            {
                int wx = x + f.x(),
                    wy = y + f.y();
                if(wx < 0 || wx >= width_ || wy < 0 || wy >= height_  || map_[wy][wx])
                    return true;
            }
        }
    return false;
}