/**
   * @param t
   * @param c
   * @return
   */
  public boolean explotaHorizontal(Tablero t, Coordenada c) {
    List<Movimiento> izq1 = new ArrayList<Movimiento>();
    izq1.add(new Izquierda());
    List<Movimiento> izq2 = new ArrayList<Movimiento>();
    izq2.add(new Izquierda());
    izq2.add(new Izquierda());
    List<Movimiento> der1 = new ArrayList<Movimiento>();
    der1.add(new Derecha());
    List<Movimiento> der2 = new ArrayList<Movimiento>();
    der2.add(new Derecha());
    der2.add(new Derecha());

    Coordenada izq = c.coordenadaResultante(izq1);
    Coordenada izqIzq = c.coordenadaResultante(izq2);
    Coordenada der = c.coordenadaResultante(der1);
    Coordenada derDer = c.coordenadaResultante(der2);

    return this.explosionHacia(t, c, izq, izqIzq)
        || this.explosionHacia(t, c, der, derDer)
        || this.explosionHacia(t, c, izq, der);
  }
  /**
   * @param t
   * @param c
   * @return devuelve si se genero una explosión en sentido vertical u horizontal dependiendo de los
   *     parametros
   */
  public boolean explotaVertical(Tablero t, Coordenada c) {
    List<Movimiento> arriba1 = new ArrayList<Movimiento>();
    arriba1.add(new Arriba());
    List<Movimiento> arriba2 = new ArrayList<Movimiento>();
    arriba2.add(new Arriba());
    arriba2.add(new Arriba());
    List<Movimiento> abajo1 = new ArrayList<Movimiento>();
    abajo1.add(new Abajo());
    List<Movimiento> abajo2 = new ArrayList<Movimiento>();
    abajo2.add(new Abajo());
    abajo2.add(new Abajo());

    Coordenada arr = c.coordenadaResultante(arriba1);
    Coordenada arrArr = c.coordenadaResultante(arriba2);
    Coordenada aba = c.coordenadaResultante(abajo1);
    Coordenada abaAba = c.coordenadaResultante(abajo2);

    return this.explosionHacia(t, c, arr, arrArr)
        || this.explosionHacia(t, c, aba, abaAba)
        || this.explosionHacia(t, c, arr, aba);
  }