![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Supongo que la forma más simple es recorrer la matriz "Terreno" buscando espacio suficiente.
Si la matriz "casa" es de 3x2, buscarás desde la primera posicion hasta la longitud del terreno - 3. for i := 0 to Terreno.Largo - Casa.Largo Cuando encuentras un lugar sin "peldaño" buscas los 3 siguientes para ver si están vacíos para construir la casa for j := i to i + Casa.Largo Si las tres posiciones están limplias, haces lo mismo para las posiciones que ocuparía la casa en las siguientes líneas for k := l to Casa.Alto for m := i to i + Casa.Largo Todo esto sería mejor hacerlo con while para que ni bien encuentres una celda ocupada salgas de la búsqueda y sigas con la siguiente celda. Si también tienes que buscar la casa en otra orientación, deberías ver primero que no sea simetrica después de girarla (un cuadrado por ejemplo) y repetir la búsqueda |
|
#2
|
||||
|
||||
|
No lo probé porque no tengo Delphi a mano, pero supongo que es aproximandamente lo que quieres:
Recorre de arriba a abajo y de izquierda a derecha el terreno. Si encuentra una celda vacía recorre de arriba a abajo y de izquierda a derecha las posiciones que ocuparía la casa. Si durante la búsqueda encuentra una celda ocupada, avanza la posición, porque estoy seguro de que no entrará.
|
|
#3
|
|||
|
|||
|
muchisimas gracias duilioisola, mientras esperaba una respuesta me puse a hacerlo y efectivamente lo hice practicamente IGUAL a lo que me decis, pero estaba MAL, jaja, yo lo que hacia era recorrer todo el terreno y verificar si no habia posiciones ocupadas:
1- Si habia: Seguia recorriendo 2- Si no habia: "Recorria solo de izquierda a derecha para verificar que la casa entre (sin que hubiese una posicion ocupada)" Efectivamente funcionaba (eso me parecia), pero claro, solo con matrices cuadras, ya que era lo mismo recorrer de una u otra forma, pero cuando la matriz no era cuadrada y la casa podia entrar en forma vertical, entonces no andaba. Viendo tu ejercicio, me aclaro la idea a la perfeccion... Le hice algunas modificaciones (sobre todo para adaptarlo a C++), y me anda de lujo Muchisimas gracias duilioisola, te agradezco por tu tiempo, y no solo era lo que pedia sino mas todavia... |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| El proyecto Matriz | poliburro | La Taberna | 1 | 03-11-2007 02:33:03 |
| matriz de 4ª dimension? | (MAJ) | La Taberna | 7 | 30-04-2007 21:26:53 |
| matriz editable | jsanchez | OOP | 11 | 20-01-2006 15:28:41 |
| matriz 3 dimensiones | Lidia | SQL | 2 | 12-12-2005 18:59:58 |
| Guardar matriz? | danytorres | Varios | 1 | 27-10-2003 04:10:23 |
|