private void checkForBorderCollision() {
    // if the puck leaves the bottom of the screen
    if (puck.getCenter().y >= screenHeight) {
      puck.setSpeedX(0.0f);
      puck.setSpeedY(0.0f);
      fail = true;
    }
    // if the puck crashes against the wall

    float borderXLeft =
        (float) ((screenWidth * (screenHeight - 1.5 * puck.getCenter().y)) / (6 * screenHeight));
    float borderXRight = screenWidth - borderXLeft;

    if (puck.getCollisionRect().left <= borderXLeft) {

      puck.setSpeedX(-puck.getSpeedX() * 0.9f);
      puck.setPosX((int) (borderXLeft + 2));
      puck.playBarrierSound();
    }

    if (puck.getCollisionRect().right >= borderXRight) {
      puck.setSpeedX(-puck.getSpeedX() * 0.9f);
      puck.setPosX((int) (borderXRight - puck.getWidth() - 2));
      puck.playBarrierSound();
    }
  }
  private boolean checkForGoal() {
    // if the puck stops at the keeper
    boolean collision = false;

    if (rectCollision(keeper.getCollisionRect(), puck.getCollisionRect())) {
      puck.setSpeedX(0);
      puck.setSpeedY(0);
      fail = true;
      collision = true;
      // if the puck goes behind the line
    } else if (puck.getCollisionRect().top <= 150) {
      puck.setSpeedX(0);
      puck.setSpeedY(0);
      collision = true;
      if (puck.getCenter().x >= screenWidth / 2 + screenWidth / 9
          || puck.getCenter().x <= screenWidth / 2 - screenWidth / 9) {

        fail = true;
      } else {
        goal = true;
      }
    }
    return collision;
  }
 private void checkForDefenderCollision() {
   for (Defender defender : staticDefenderList) {
     if (rectCollision(defender.getCollisionRect(), puck.getCollisionRect())) {
       puck.setSpeedX(0.0f);
       puck.setSpeedY(0.0f);
       fail = true;
     }
     if (rectCollision(defender.getCollisionRect(), player.getCollisionRect())) {
       player.setSpeedX(0.0f);
       player.setSpeedY(0.0f);
       puck.setSpeedX(0.0f);
       puck.setSpeedY(0.0f);
       fail = true;
     }
   }
   for (MobileDefender defender : mobileDefenderList) {
     if (rectCollision(defender.getCollisionRect(), puck.getCollisionRect())) {
       puck.setSpeedX(0.0f);
       puck.setSpeedY(0.0f);
       fail = true;
     }
     if (rectCollision(defender.getCollisionRect(), player.getCollisionRect())) {
       player.setSpeedX(0.0f);
       player.setSpeedY(0.0f);
       puck.setSpeedX(0.0f);
       puck.setSpeedY(0.0f);
       fail = true;
     }
   }
   for (SmartDefender defender : smartDefenderList) {
     if (rectCollision(defender.getCollisionRect(), puck.getCollisionRect())) {
       puck.setSpeedX(0.0f);
       puck.setSpeedY(0.0f);
       fail = true;
     }
     if (rectCollision(defender.getCollisionRect(), player.getCollisionRect())) {
       player.setSpeedX(0.0f);
       player.setSpeedY(0.0f);
       puck.setSpeedX(0.0f);
       puck.setSpeedY(0.0f);
       fail = true;
     }
   }
 }