Hola muy buenas estoy desarrollando el juego de "puzzle bobble". Antes de nada estoy programando en JAVA. El código que muestro a continuación es para desarrollar la trayectoria del disparo, creando los margenes laterales, etc.
public void imprimirPosicionesDisparo(int pos, char[][] tablero){
int borde=tablero[0].length-1;
col=4+pos; //Columna inicial del cañon
fil=12; //Fila inicial del cañon
boolean derecha=false; //Indica si se mueve a la derecha o a la izquierda.
int aa = (int) (Math.random()*7);
if(pos>0) derecha=true; //Si la posición es positiva se mueve a la derecha.
//Para cada fila contando desde la inicial hasta la primera del tablero.
for(; fil>=0; fil--){
//Si está fuera del tablero por la izquierda...
if(col<0){
col=1; //... lo posicionamos en la columna 1,
derecha=!derecha; // y cambiamos el valor del boolean a su contrario.
//Si está fuera del tablero por la derecha...
} // fin del if
else if(col>borde){
col=borde-1; //... lo posicionamos en la columna borde menos 1,
derecha=!derecha; // y cambiamos el valor del boolean a su contrario.
} // fin del else if
System.out.println("[" + fil + ", " + col + "]");
generarBurbuja(aa, tablero);
if(pos!=0){ //Si la posición es distinta de 0, comprobamos si el lanzamiento
if(derecha){ // va a derecha o izquierda, y aumentamos o decrementamos el
valor de la columna según el caso.
col++;
}
if(!derecha){
col--;
}
}// fin del if
} // final del for global
}//final del método imprimirPosicionesDisparo
Hasta aquí todo correcto, el problema es que este disparo atraviesa todas las burbujas que hay en el tablero, por cierto el tablero es de 14x9, y yo lo que quiero es que cuando este haciendo la trayectoria la burbuja se detenga cuando colisione contra otra burbuja, al igual que se detiene cuando colisiona con el margen superior. En la práctica que estoy realizando me aconsejan el uso del ArrayList. Llevo más de una semana intentado descubrir el resultado correcto para que la burbuja lanzada se detenga al colisionar contra otras burbujas, por favor estoy desesperado he probado con if, while, do-while, etc. y no encuentro la solución. Por favor si sabeis como lo puedo conseguir decirme como, gracias de antemano.