Cita: COMO hacer para que las pelotas salgan juntas de un color para poder reventarlas y luego unir las filas/columnas y seguir jugando
Pues eso no tiene nada que ver con la parte gráfica, esa es la lógica de negocio. Lo que tu quieres es saber los algoritmos o estructura que hace que ese juego funcione, independientemente del lenguaje o del aspecto gráfico que tenga.
Nunca he hecho algo así y seguro que hay lógicas mucho mejores, pero se me ocurre que lo que puedes hacer es utilizar una linkedList de bolas por cada columna.
Cuando seleccionas una bola, buscas por encima y por debajo hasta que aparezca una bola de otro color. Tendrías la ubicación de todas las bolas de ese grupo A de mismo color.
Después te vas a la columna de su izquierda, y por cada bola del grupo A, compruebas las tres posiciones con las que podría tocarse, y si son del mismo color añádela a un nuevo grupo B. A partir de la bola con índice más alto del grupo B añade las bolas superiores de su mismo color hasta que llegues a una de distinto color. Lo mismo para la bola de índice más bajo hacia abajo.
Repite esta operación con la columna de la izquierda del grupo B y así sucesivamente.
Repite lo mismo por la derecha del grupo A.
Finalmente, une todos los grupos, y ya está. Tienes todas las bolas de un mismo color en contacto a partir de una seleccionada.
Si decides borrar las bolas del supergrupo de las listas de columna, las bolas que están por encima en cada columna bajarán una posición por cada bola borrada.
Cuando tengas tu programa estaría bien que dijeses cómo lo hiciste finalmente.