Introducción
En la mayoría de las fuentes de todos los caracteres del alfabeto en mayúsculas, además BDOcuenta con líneas individuales de aproximadamente tocar algunas de las cuatro esquinas del rectángulo de delimitación del personaje: ACEFGHIJKLMNPQRSTUVWXYZ.
Por ejemplo, las dos patas de un A"toque" las esquinas inferior izquierda e inferior derecha del personaje. Del mismo modo, Ctoca sus esquinas superior e inferior derecha (es un poco curva pero está lo suficientemente cerca). Lsolo toca sus esquinas superiores izquierda e inferior derecha con líneas simples. La esquina inferior izquierda de Les un vértice, no el final de una sola línea.
Aquí hay una tabla de qué personajes tocan qué esquinas de acuerdo con la fuente de Stack Exchange que veo (y espero que veas). 1es para arriba a la izquierda, 2es para arriba a la derecha, 3abajo a la izquierda, 4abajo a la derecha.
A: 3 4
C: 2 4
E: 2 4
F: 2 3
G: 2
H: 1 2 3 4
I: 1 2 3 4
J: 1 3
K: 1 2 3 4
L: 1 4
M: 3 4
N: 2 3
P: 3
Q: 4
R: 3 4
S: 2 3
T: 1 2
U: 1 2
V: 1 2
W: 1 2
X: 1 2 3 4
Y: 1 2
Z: 1 4
Preparar
Imagine que estas líneas que tocan las esquinas se extienden en la dirección de la esquina que tocan para que los arreglos de estos caracteres en una cuadrícula se puedan "conectar".
Por ejemplo, todos los personajes en
A
C X
están conectados porque la parte inferior izquierda Ay superior derecha de Cconnect y la parte inferior derecha Ay superior izquierda de Xconnect.
Sin embargo,
CAX
no tiene conexiones porque las conexiones solo ocurren diagonalmente de un personaje a otro .
Desafío
Escriba el programa más corto posible (en bytes) que muestre todos los caracteres ACEFGHIJKLMNPQRSTUVWXYZen un gran árbol completamente conectado, de acuerdo con las reglas anteriores. Cada personaje debe aparecer exactamente una vez. Use espacios para espacios vacíos.
Ejemplo
Se puede llegar a todo en este árbol de 23 letras desde cualquier otra cosa a través de las conexiones diagonales definidas anteriormente:
Q
A J R
C U S Y
I M N
E H X
F L T
G Z K P
V W
Notas
- Puede codificar su solución.
- Su salida solo debe contener
ACEFGHIJKLMNPQRSTUVWXYZespacios y líneas nuevas.BDONo será utilizado. - Los espacios iniciales / finales están bien siempre que todas las conexiones estén colocadas correctamente.
- La cuadrícula de salida no debe tener más de 30 por 30 caracteres (incluidas líneas nuevas y espacios).
- Solo se consideran las conexiones de esquina. La parte inferior de
Yno se conecta a nada. Debe usar las conexiones de esquina de la tabla anterior. - No todas las esquinas conectables necesitan conectarse a algo. Las esquinas conectables y no conectables pueden bordearse entre sí.
- Salida a stdout. No hay entrada
- Incluir un gráfico de conectividad hecho con barras como lo ha hecho Peter Taylor es un toque útil, pero no es obligatorio.
Actualización:
githubhagocyte ha realizado un verificador de validez de árbol alfabético en Github .