Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: Hackware en Agosto 25, 2010, 02:46:57 AM

Título: Agrupar celdas semejantes adyacentes
Publicado por: Hackware en Agosto 25, 2010, 02:46:57 AM
?Saludos, comunidad!

Esta es la situaci?n en la que me encuentro... Imaginen un tablero de 8x8 con celdas de colores distintos. Necesito crear un algoritmo que identifique grupos de al menos 4 celdas adyacentes del mismo color y las borre del tablero, pero no se me ocurre c?mo ?Alguien sabe c?mo hacer esto o tiene alguna idea?

Gracias de antemano. :)
Título: Re: Agrupar celdas semejantes adyacentes
Publicado por: Killer en Agosto 26, 2010, 08:18:32 AM
En lo personal yo usar?a un script recursivo y una lista, el script checaria las celdas adyacentes para checar si son del color correcto y agregarlas a la lista, y luego checar las celdas alrededor de las checadas, menos las que ya est?n en la lista, al final si la lista es mayor a 4 elimina todas las instancias que contenga.

Claro, todo depende la forma en que lo estes haciendo. Te dejo un ejemplo con el m?todo del que hablo.
Título: Re: Agrupar celdas semejantes adyacentes
Publicado por: Hackware en Agosto 26, 2010, 08:53:54 PM
Much?simas gracias Killer, tu script es justo lo que me estaba faltando, no creo tener problemas en adaptarlo a mis necesidades. S?lo me cabe una duda insignificante ?Qu? diferencia habr?a si modifico la ?ltima parte del script as??

ORIGINAL
for (i=ds_list_size(Lista);i>1;i-=1){
obj = ds_list_find_value(Lista,i-1);
with (obj) instance_destroy();
instance_destroy();
}
ds_list_destroy(Lista);


MODIFICADO
for (i=ds_list_size(Lista);i>0;i-=1){
obj = ds_list_find_value(Lista,i-1);
with (obj) instance_destroy();
}
ds_list_destroy(Lista);


Me lo pregunto porque ambas parecieron funcionar del mismo modo.

Por cierto, para llevar mi gratitud m?s all? de este hilo me gustar?a agregarte a los cr?ditos ?Prefieres que te nombre como Killer o que utilice tu nombre real (que no conozco :-[)?

?Saludos! :)
Título: Re: Agrupar celdas semejantes adyacentes
Publicado por: Killer en Agosto 27, 2010, 02:30:23 AM
No habr?a diferencia alguna, simplemente se me olvido modificar esa parte cuando estaba limpiando el script  :-[

Y respecto a los cr?ditos, no es necesario que me menciones, pero si igual quieres hacerlo con solo Killer esta bien.