• Publicidad

Duda con arrays

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Duda con arrays

Notapor creating021 » 2008-04-23 18:40 @820

Tengo algo como esto:

1 1 1 0 1 0
1 0 1 1 0 1
1 0 1 0 1 0
1 1 1 0 0 0


¿Cómo puedo separar cada figura formada?

Hay que tener en cuenta que cada figura es diferente (las cosas se ponen difíciles al tener más figuras) y una está junto a la otra (además yo no conozco las figuras a buscar).

¿Alguna idea?
Expect the worst, is it the least you can do?
Avatar de Usuario
creating021
Perlero frecuente
Perlero frecuente
 
Mensajes: 595
Registrado: 2006-02-23 16:17 @720
Ubicación: Frente al monitor

Publicidad

Notapor explorer » 2008-04-23 18:56 @831

¿Qué es una 'figura'?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14477
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor creating021 » 2008-04-23 19:09 @839

explorer escribiste:¿Qué es una 'figura'?

rae.es escribiste:Forma exterior de un cuerpo por la cual se diferencia de otro.


Digamos que tengo un cuadrado en ASCII y lo meto en un array:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my @cuadrado = (
1, 1, 1, 1,
1, 0, 0, 1,
1, 0, 0, 1,
1, 1, 1, 1
);
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


O un triángulo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
 my @triangulo = (
0, 0, 1, 0, 0,
0, 1, 0, 1, 0,
1, 1, 1, 1, 1
);
 
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Si en un archivo tengo muchas de estas figuras, todas juntas... ¿Cómo las puedo separar?
Expect the worst, is it the least you can do?
Avatar de Usuario
creating021
Perlero frecuente
Perlero frecuente
 
Mensajes: 595
Registrado: 2006-02-23 16:17 @720
Ubicación: Frente al monitor

Notapor explorer » 2008-04-23 19:21 @848

Falta por definir muchas cosas de este problema...

¿Cómo es de grande el escenario del trabajo? ¿No hay límite o digamos que no está definido?

¿Cuántas figuras distintas hay? ¿Son conocidas? ¿Son conocidas sus dimensiones o formas?

Una posible solución sería:
* Empezar por separar las figuras que están aisladas. Una figura aislada es la que tiene un borde de '0' alrededor de ellas
* Del resto, hay que hacer operaciones de localización e identificación de cada posible figura, para quitarlas una a una.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14477
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor creating021 » 2008-04-23 20:09 @881

¿Cómo es de grande el escenario del trabajo? ¿No hay límite o digamos que no está definido?

No hay límites ni está definido.
¿Cuántas figuras distintas hay? ¿Son conocidas? ¿Son conocidas sus dimensiones o formas?

No tengo predefinido nada, de hecho es un mapa (no hay figuras redondas, todas son formadas con líneas rectas).
* Empezar por separar las figuras que están aisladas. Una figura aislada es la que tiene un borde de '0' alrededor de ellas
* Del resto, hay que hacer operaciones de localización e identificación de cada posible figura, para quitarlas una a una.


Tomo nota :lol: y gracias.
Expect the worst, is it the least you can do?
Avatar de Usuario
creating021
Perlero frecuente
Perlero frecuente
 
Mensajes: 595
Registrado: 2006-02-23 16:17 @720
Ubicación: Frente al monitor

Notapor explorer » 2008-04-24 02:39 @152

creating021 escribiste:
¿Cuántas figuras distintas hay? ¿Son conocidas? ¿Son conocidas sus dimensiones o formas?

No tengo predefinido nada, de hecho es un mapa (no hay figuras redondas, todas son formadas con líneas rectas).

Vale. No hay figuras predefinidas. No sabemos su tamaño, su orientación, número de lados, etc. etc.

En el primer ejemplo, entonces, hay dos cuadrados pegados...

creating021 escribiste:
* Empezar por separar las figuras que están aisladas. Una figura aislada es la que tiene un borde de '0' alrededor de ellas
* Del resto, hay que hacer operaciones de localización e identificación de cada posible figura, para quitarlas una a una.


Tomo nota :lol: y gracias.
Este es un bonito ejercicio para Perl... a ver si la gente se anima y aporta soluciones creativas.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14477
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor creating021 » 2008-04-26 14:21 @639

Al final lo he hecho con fuerza bruta :)

Al ser un mapa, tengo definido el tamaño (de "X" y "Y") y solo necesito dos bucles, recorro cada carácter en sentido de "X" y verifico en "Y"
Otro truco es que tomo sólo lo de adentro (es lo único que necesito).
Expect the worst, is it the least you can do?
Avatar de Usuario
creating021
Perlero frecuente
Perlero frecuente
 
Mensajes: 595
Registrado: 2006-02-23 16:17 @720
Ubicación: Frente al monitor


Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron