Si tienes la matriz con sus datos, lo único que tienes que hacer es comprobar que el color de las casillas adyacentes sea el mismo.
Algo del estilo de (mal código incoming...)
Código Comparar:
Ver originalfor a = 1; a = maxfilas; a++;{
for b = 1; b = maxcolumnas; b++;{
if((posicion.color(a,b) == posicion.color(a-1,b) == posicion.color(a-2,b)){
destruir();
}
}
}
Esto lo tendrías que aplicar, lógicamente, para cada una de las cuatro posibilidades en ángulo recto, y otras cuatro si admites diagonales. Luego, tan sólo tendrías que arrastrar los valores superiores para cubrir las casillas que eliminas.
Lo que yo haría sería codificar con un valor entero el color en cuestión, y igualar a 0 las casillas "destruidas". Así, no hace falta que "recuerdes" qué casillas has destruido, basta con que leas la matriz y vayas permutando de abajo a arriba con su valor inmediatamente superior, algo así:
Código Destruir:
Ver originalfor a = maxfilas; a = 2; a--;{
for b 1= ; b = maxcolumnas; b++;{
if posicion.valor(a,b) == 0{
posicion.valor(a,b)=posicion.valor(a+1,b);
posicion.valor(a,b)=0;
}
}
}
y luego, sustituyes la última fila con un valor aleatorio, utilizando el (random MOD númerodecolores)+1 (nota: dados mis escasos conocimientos, y mi imposibilidad para hacer funcionar en el pasado correctamente la función rand, por favor, que alguien con más seso ayude a este mozo).
Saludos,