code: static boolean intersect(int[] verts, int a, int b, int c, int d) {
          if (intersectProp(verts, a, b, c, d))
              return true;
          else if (between(verts, a, b, c) || between(verts, a, b, d) || between(verts, c, d, a)
                  || between(verts, c, d, b))
              return true;
          else
              return false;
      }
docs: Returns true iff segments ab and cd intersect, properly or improperly.