[ Foro de Pascal ]
Hola, espero que puedan ayudarme con un problema que estoy teniendo para hacer un programa que resuelva lo siguiente:
Hay una matriz YxX que tiene casilleros ocupados (representados con 1) y vacíos (0).
A su vez hay otra matriz mas pequeña con un patrón dibujado con 1. Hay que buscar dentro de la primer matriz, un espacio donde quepa el patrón de la segunda. (Donde haya un patrón de ceros, igual al de unos en la otra).
Desde ya muchas gracias.
Hugo pon un ejemplo para poder ayudarte y quede mejor explicado lo que necesitas, tengo algunas dudas quiza con un ejemplo podamos entenderte mejor.
Confírmanos si te refieres a esto:
Ver si una matriz como
111111111
100011111
101111111
100011111
111111111
Se podría rellenar con otra como
0000
0111
0100
0111
¿Es así? En ese caso, ¿se considera una respuesta válida algo como la siguiente, que "cabe en el hueco" pero que no rellena por completo la matriz original?
0000
0111
0100
0100
Como dice Nacho, si el patrón "entra" en la matriz, se considera correcto, no es necesario que ocupe todo el espacio vacío.
Entonces sería básicamente recorrer ambas matrices con un doble "for". Si en algún punto ambas tienen 1, "chocarían" y no se podrían superponer; si en todas las posiciones, los 1 de una coinciden con 0 de la otra sí, se podrían superponer.
Si además las matrices son de distinto tamaño, y la pequeña se podría colocar en distintas posiciones de la grande, necesitarías otro doble "for" para probar a partir de todos los posibles puntos de origen.
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)