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 .
fuente

Respuestas:
Pyth , 32
Salida:
Conexiones, gracias al corrector de @ githubphagocyte:
Combina el truco de byte nulo de @ grc y la sintaxis extremadamente corta de Pyth. Hice mi propia cuadrícula por el placer de hacerlo.
Explicación:
jes la unión de cuerdas de python.des el espacio\0es la secuencia de escape para el byte nulo. Es un NOP cuando se imprime, por lo que la tercera línea tiene exactamente dos espacios al frente. Además, tenga en cuenta que las cadenas pueden terminarse en EOL en Pyth, así como también entre comillas.fuente
GolfScript (41 caracteres)
Demostración en línea
Gráfico de conectividad:
fuente
Python, 49
Ejemplo:
Creo que ahora se conecta correctamente, pero es posible que haya perdido algo nuevamente.
fuente
F4parece conectado aG1, que no es válidoMarbelous
164158143utilizaba el árbol de marcas, ya que estaba casi perfectamente optimizado para Marbelous . El código en este caso es solo el código ascci para todos los caracteres (incluidos los espacios y las nuevas líneas) de izquierda a derecha, delimitados por espacios.
Salida:
Un mejor enfoque de Marbelous
135129Éste genera el mismo árbol con un espacio adicional antes y después de cada línea, funciona alimentando los literales en una subrutina que imprime un espacio antes de imprimir el literal. Y solo imprime un espacio si el literal es un espacio (20 HEX)
fuente
BrainF * ck 669
Hecho este para las risas. Emite exactamente lo mismo que el ejemplo.
Proporcionará otra solución más tarde.No puedo pensar en una forma inteligente de hacer esto en Lua, así que me limitaré a este :)Salida
fuente
PHP 46
Esto se parecía más a la resolución de acertijos que a la programación, por lo que mi respuesta se parece más a la solución de acertijos que al código. Sin embargo, es un programa PHP válido, así que lo estoy enviando.
Actualiza lo mismo en Perl. La longitud sigue siendo 46:
fuente
HTML, 55
código
salida:
fuente
Bash + coreutils, 46
Ahora prestando descaradamente el árbol óptimo de @ core1024 :
Salida:
fuente
STATA 63
Editar: ahora mi propia solución. Deberían ser todas las letras.
fuente
Javascript 83
Comenzaré por codificar SU solución
fuente
alertlugar deconsole.logPHP, 69
da
fuente
"/\w/",'\0 '