public bool Crosses(Plus p) { int hdif = Math.Abs(p.x - x), vdif = Math.Abs(p.y - y); if ((hdif <= side && vdif <= p.side) || (hdif <= p.side && vdif <= side)) { return true; } else if (x == p.x && ((y - side <= p.y + p.side) || (y + side >= p.y - p.side))) { return true; } else if (y == p.y && ((x - side <= p.x + p.side) || (x + side >= p.x - p.side))) { return true; } return false; }