Inspirado en este pequeño juego .
Desafío
Dada como entrada la posición inicial de una cuadrícula (siempre 5x5), así:
-ABCD
-A---
---C-
---BD
--E-E
Necesita conectar las letras (las mismas letras juntas), eliminando todos los -
espacios vacíos . Las letras serán siempre A,B,C,D and E
.
Cada par de letras debe estar conectado por una sola línea no ramificada que puede doblarse en ángulo recto (usando la misma letra para representar la línea).
Se garantiza que la entrada tendrá cada letra inicial exactamente 2 veces y siempre tendrá todas las letras iniciales AE.
La entrada se puede leer desde stdin, o una sola cadena como arg para alguna función, o incluso una matriz / matriz / lista de caracteres, la forma más conveniente de su lenguaje de codificación.
¡Dado que este es el código de golf más corto, el código en bytes gana!
Ejemplo
No solo hay una solución para cada problema, sino que las reglas se aplican a todos (sin espacios vacíos ni letras separadas). Y se garantiza que la entrada tenga al menos una salida correcta.
Comencemos conectando las letras A:
AABCD
AA---
AA-C-
AA-BD
AAE-E
Ahora, conectando las letras B:
AABCD
AAB--
AABC-
AABBD
AAE-E
Ahora, conectando las letras C:
AABCD
AABC-
AABC-
AABBD
AAE-E
Ahora, conectando las letras D:
AABCD
AABCD
AABCD
AABBD
AAE-E
Y, finalmente, las letras E:
AABCD
AABCD
AABCD
AABBD
AAEEE
Otras muestras
input:
E--E-
BB-C-
AD---
---C-
AD---
output:
EEEEE
BBECE
ADECE
ADECE
ADEEE
input:
A----
---B-
-C-C-
-D-D-
BE-EA
output:
AAAAA
BBBBA
BCCCA
BDDDA
BEEEA
A-E
?Respuestas:
Perl,
130128127 bytesIncluye +4 para
-n0
(el programa no funciona desde la línea de comandos, por lo-
que también se cuenta el espacio)Llame con la entrada en STDIN:
Terminar con
^D
o^Z
lo que sea que cierre STDIN en su sistemaconnectletters.pl
:fuente