/** * Busca explosiones en todo el tablero y si encuentra una propaga la explosi�n, baja los * caramelos y hace una llamada recursiva */ public Tablero explosionesEnCadena(Tablero t) { for (int x1 = 0; x1 < t.getAlto(); x1++) { for (int y1 = 0; y1 < t.getAncho(); y1++) { Coordenada c = new Coordenada(x1, y1); if (this.generoExplosion(t, c)) { t.llenarHuecos(); t = this.explosionesEnCadena(t); } } } return t; }
public void setUp() { explosion = new Explosion(5, "Rojo"); cor = new Coordenada(2, 1); cor3 = new Coordenada(1, 0); car1 = mock(Caramelo.class); car2 = mock(Caramelo.class); car3 = mock(Caramelo.class); caramelos[0][0] = car2; caramelos[0][1] = car1; caramelos[0][2] = car2; caramelos[1][0] = car2; caramelos[1][1] = car1; caramelos[1][2] = car2; caramelos[2][0] = car1; caramelos[2][1] = car1; caramelos[2][2] = car1; caramelos[0][3] = car2; caramelos[1][3] = car3; caramelos[2][3] = car3; caramelos[0][4] = car3; caramelos[1][4] = car3; caramelos[2][4] = car3; vecino1.add(arriba); vecino2.add(arriba); vecino2.add(arriba); nivel = mock(Nivel.class); t = new Tablero(); t.setAlto(3); t.setAncho(5); t.setCaramelos(caramelos); t.setNivel(nivel); when(nivel.getObjetivos()).thenReturn(objetivos); when(car1.getColor()).thenReturn("Verde"); when(car2.getColor()).thenReturn("Rojo"); when(car3.getColor()).thenReturn("vacio"); }
/** * @param t * @param c * @param vecino1 * @param vecino2 * @return true si el color del caramelo en c es el mismo que el de sus vecinos */ public boolean explosionHacia(Tablero t, Coordenada c, Coordenada vecino1, Coordenada vecino2) { String colorOriginal = t.colorCarameloEn(c); String colorVecino1 = t.colorCarameloEn(vecino1); String colorVecino2 = t.colorCarameloEn(vecino2); return (colorOriginal.equals(colorVecino1)) && (colorOriginal.equals(colorVecino2)); }