public void check_collisions(ShipFire shipFire) {
    Iterator<Invader> it = invaders.iterator();

    while (shipFire.not_destroyed() && it.hasNext()) {
      Invader invader = it.next();
      if (invader.is_alive() && shipFire.collide_with(invader)) {
        shipFire.change_state_to_explosion(invader);
        invader.explode();
        gc.update_point(invader.getPoint());
      }
    }
  }