public Rectangle combineRectangles(Rectangle rect) {
    int x1, y1, x2, y2;

    x1 = Math.min(this.x1, rect.getX1());
    y1 = Math.min(this.y1, rect.getY1());
    x2 = Math.max(this.x2, rect.getX2());
    y2 = Math.max(this.y2, rect.getY2());
    return new Rectangle(x1, y1, x2, y2);
  };
  public Rectangle intersectionOfREctangles(Rectangle rect) {
    int x1, y1, x2, y2;

    x1 = Math.max(this.x1, rect.getX1());
    y1 = Math.max(this.y1, rect.getY1());
    x2 = Math.min(this.x2, rect.getX2());
    y2 = Math.min(this.y2, rect.getY2());

    if ((x1 > x2) || (y1 > y2)) return new Rectangle(0, 0, 0, 0);
    return new Rectangle(x1, y1, x2, y2);
  };
 public static boolean isCollision(Rectangle r1, Rectangle r2) {
   return !(r1.getX2() < r2.getX1()
       || r1.getX1() > r2.getX2()
       || r1.getY2() < r2.getY1()
       || r1.getY1() > r2.getY2());
 }